干燥机配套车间生产管理系统/云平台服务端
zhuguifei
2 天以前 b38019aae593a66c16f7e75d6e37d14eb8d2c42e
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -70,25 +70,24 @@
    private IDryEquipmentService dryEquipmentService;
    @ApiOperation(value="测试", notes="返回Hello")
    @ApiOperation(value = "测试", notes = "返回Hello")
    @GetMapping("/hello")
    public Result<?> sayHello() {
        return Result.ok("Hello");
    }
    @ApiOperation(value="接收实时数据Json", notes="设备实时数据上传")
    @ApiOperation(value = "接收实时数据Json", notes = "设备实时数据上传")
    @PostMapping("/sendRealTimeDataJson")
    public Result<?> realTimeDataJson(@RequestBody RealTimeDataVo realTimeDataVo)  {
    public Result<?> realTimeDataJson(@RequestBody RealTimeDataVo realTimeDataVo) {
        try {
            if (mqttConfig.isEnable() && "user".equals(mqttConfig.getRole())){
            if (mqttConfig.isEnable() && "user".equals(mqttConfig.getRole())) {
                MqttMessage mqttMessage = new MqttMessage();
                mqttMessage.setQos(0);
                mqttMessage.setPayload(JSONObject.toJSONString(realTimeDataVo).getBytes());
                mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA,mqttMessage);
                mqttUtil.getMqttClient().publish(MqttConstant.TENANT_UP_PREFIX_REALTIME_DATA, mqttMessage);
            }
            if ("user".equals(mqttConfig.getRole())){
            if ("user".equals(mqttConfig.getRole())) {
                //处理故障信息
                dryRealTimeDataService.fitFaultRecord(realTimeDataVo);
            }
@@ -100,18 +99,32 @@
        return dryRealTimeDataService.realTimeDataHandle(realTimeDataVo);
    }
    @ApiOperation(value = "接收实时数据Json", notes = "设备实时数据上传")
    @PostMapping("/sendRealTimeDataJson2")
    public Result<?> realTimeDataJson2(@RequestBody RealTimeDataParentVo realTimeDataParentVo) {
        return dryRealTimeDataService.realTimeDataHandle(realTimeDataParentVo);
    }
    @ApiOperation(value="获取设备实时数据", notes="通过租户ID和设备编码获取实时数据")
    @ApiOperation(value = "获取设备实时数据", notes = "通过租户ID和设备编码获取实时数据")
    @GetMapping("/getRealTimeData")
    public Result<?> queryMachineRealTimeData(RealTimeDataVo realTimeDataVo) {
        return dryRealTimeDataService.queryMachineRealTImeData(realTimeDataVo);
    }
    @ApiOperation(value="获取车间统计数据", notes="通过租户ID获取车间统计数据")
    @ApiOperation(value = "获取车间统计数据", notes = "通过租户ID获取车间统计数据")
    @GetMapping("/workshopStatistics")
    public Result<?> workshopStatistics(RealTimeDataVo realTimeDataVo) {
        return dryRealTimeDataService.queryWorkshopStatistics(realTimeDataVo);
    }
    @ApiOperation(value = "获取所有机台", notes = "通过租户ID获取所有机台数据")
    @GetMapping("/queryAllEqps")
    public Result<?> queryAllEqps(DryEquipment equipment) {
        List<DryEquipment> dryEquipments = dryEquipmentService.queryEqusByTenantId(equipment);
        return Result.OK(dryEquipments);
    }
@@ -124,7 +137,7 @@
     * 1013 热风启动    1014 开门观察
     * 1015 出料按钮
     */
    @ApiOperation(value="发送控制指令", notes="向服务端发送控制指令,由服务端通过socket转发给控制模块")
    @ApiOperation(value = "发送控制指令", notes = "向服务端发送控制指令,由服务端通过socket转发给控制模块")
    @PostMapping("/sendCommand")
    public Result<?> sendCommand(@RequestBody CommandMessageVo msgVo) {
        return dryRealTimeDataService.sendSocketMsg(msgVo);
@@ -171,19 +184,20 @@
    /**
     * 根据设备和租户查询该设备类型的干燥配方,将配方转成xml格式,以字符串方式返回
     *
     * @param tenantId
     * @param eqpCode
     * @return
     * @throws JAXBException
     */
    @ApiOperation(value="干燥配方获取", notes="干燥配方下发")
    @ApiOperation(value = "干燥配方获取", notes = "干燥配方下发")
    @GetMapping(value = "/queryFormula")
    public Result<String> queryFormulaByEqpType(Integer tenantId, String eqpCode) throws JAXBException {
        //获取request
        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
        // 获取请求主机的IP地址
        String ip = IpUtils.getIpAddr(request);
        DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(tenantId+ "", eqpCode);
        DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(tenantId + "", eqpCode);
        if (dryEquipment != null) {
            if (dryEquipment.getIp().equals(ip)) {
            } else {
@@ -192,46 +206,46 @@
        } else {
            return Result.error("设备不存在");
        }
            LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
            queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
                    .eq(DryHerbFormula::getTenantId, tenantId);
            List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
            Formulas formulas = new Formulas();
            list.forEach(item -> {
                DryHerbInfo byId = dryHerbInfoService.getById(item.getHerbId());
                if (byId!=null) {
                    item.setPinyin(byId.getPinyin());
                    item.setName(byId.getName());
                }
                Formula formula = new Formula();
                BaseParam baseParam = new BaseParam();
                WaterParam waterParam = new WaterParam();
                TypeParam typeParam = new TypeParam();
                OffsetParam offsetParam = new OffsetParam();
                baseParam.setCode(item.getCode());
                baseParam.setIndex(item.getCode());
                baseParam.setName(item.getName());
                baseParam.setAb(item.getName());
                baseParam.setTyp(item.getCategory());
                waterParam.setDelay(Double.valueOf(item.getDelay()));
                waterParam.setMoisture3(item.getTarget());
                waterParam.setWeight1(Double.valueOf(item.getFeed()));
                waterParam.setTimes(item.getEt());
                waterParam.setTemp1(item.getWindTemp());
                waterParam.setTemp2(item.getEnvTemp());
                waterParam.setTemp3(item.getEnvHum());
                waterParam.setTurntime(item.getTurn());
                typeParam.setMtype(Integer.valueOf(item.getCategory()));
                offsetParam.setMoisoffset(item.getMoisOffset());
                offsetParam.setColdwind(Double.valueOf(item.getCoolingDuration()));
        LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
        queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
                .eq(DryHerbFormula::getTenantId, tenantId);
        List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
        Formulas formulas = new Formulas();
        list.forEach(item -> {
            DryHerbInfo byId = dryHerbInfoService.getById(item.getHerbId());
            if (byId != null) {
                item.setPinyin(byId.getPinyin());
                item.setName(byId.getName());
            }
            Formula formula = new Formula();
            BaseParam baseParam = new BaseParam();
            WaterParam waterParam = new WaterParam();
            TypeParam typeParam = new TypeParam();
            OffsetParam offsetParam = new OffsetParam();
            baseParam.setCode(item.getCode());
            baseParam.setIndex(item.getCode());
            baseParam.setName(item.getName());
            baseParam.setAb(item.getName());
            baseParam.setTyp(item.getCategory());
            waterParam.setDelay(Double.valueOf(item.getDelay()));
            waterParam.setMoisture3(item.getTarget());
            waterParam.setWeight1(Double.valueOf(item.getFeed()));
            waterParam.setTimes(item.getEt());
            waterParam.setTemp1(item.getWindTemp());
            waterParam.setTemp2(item.getEnvTemp());
            waterParam.setTemp3(item.getEnvHum());
            waterParam.setTurntime(item.getTurn());
            typeParam.setMtype(Integer.valueOf(item.getCategory()));
            offsetParam.setMoisoffset(item.getMoisOffset());
            offsetParam.setColdwind(Double.valueOf(item.getCoolingDuration()));
                formula.setBaseParam(baseParam);
                formula.setWaterParam(waterParam);
                formula.setTypeParam(typeParam);
                formula.setOffsetParam(offsetParam);
                formulas.getDryFormulaList().add(formula);
            });
            // 把vos转换成xml
            formula.setBaseParam(baseParam);
            formula.setWaterParam(waterParam);
            formula.setTypeParam(typeParam);
            formula.setOffsetParam(offsetParam);
            formulas.getDryFormulaList().add(formula);
        });
        // 把vos转换成xml
        // 创建JAXBContext实例
        JAXBContext jaxbContext = JAXBContext.newInstance(Formulas.class);
@@ -245,12 +259,12 @@
        StringWriter writer = new StringWriter();
        marshaller.marshal(formulas, writer);
            return Result.OK("请求成功",writer.toString());
        return Result.OK("请求成功", writer.toString());
    }
    @ApiOperation(value="干燥配方上报", notes="干燥配方记录上报")
    @ApiOperation(value = "干燥配方上报", notes = "干燥配方记录上报")
    @PostMapping(value = "/sendFormulaHistory")
    public Result<?> sendFormulaHistory(DryHerbFormulaHisVo hisVo) {
        //获取request