干燥机配套车间生产管理系统/云平台服务端
baoshiwei
2023-12-06 cbc10fe4a6d385de784bd5ee276f84361382810b
车间大屏增加统计数据
已修改6个文件
63 ■■■■■ 文件已修改
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/OpcController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/listener/InitListener.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
@@ -170,6 +170,17 @@
    private String level;
    /**
     * 干燥减少重量
     */
    private Double reduce;
    /**平均汽耗**/
    private Double steamAvg;
    /**平均电耗**/
    private Double wattAvg;
    public DryOrderVo(RealTimeDataVo realTimeDataVo) {
        this.id = IdUtil.fastSimpleUUID();
        this.code = realTimeDataVo.getWorkorder();
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -45,17 +45,25 @@
        return dryRealTimeDataService.queryMachineRealTImeData(realTimeDataVo);
    }
    @ApiOperation(value="获取车间统计数据", notes="通过租户ID获取车间统计数据")
    @GetMapping("/workshopStatistics")
    public Result<?> workshopStatistics(RealTimeDataVo realTimeDataVo) {
        return dryRealTimeDataService.queryWorkshopStatistics(realTimeDataVo);
    }
    /**
     * 1001 风箱升     1002 风箱降
     * 1003 滚筒升     1004 滚筒降
     * 1005 滚筒正转    1006 滚筒反转
     * 1007 设备停止
     * 1007 设备停止    1010 干燥启动
     * 1011 前门开关    1012 后门开关
     * 1013 热风启动    1014 开门观察
     * 1015 出料按钮
     */
    @ApiOperation(value="发送控制指令", notes="向服务端发送控制指令,由服务端通过socket转发给控制模块")
    @PostMapping("/sendCommand")
    public Result<?> sendCommand(@RequestBody CommandMessageVo msgVo) {
        return dryRealTimeDataService.sendSocketMsg(msgVo);
    }
}
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/OpcController.java
@@ -11,7 +11,6 @@
import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;
import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.dry.common.OPCUA;
import org.jeecg.modules.dry.entity.DryOpcDevice;
import org.jeecg.modules.dry.service.IDryOpcDeviceService;
import org.jeecg.modules.dry.vo.CommandMessageVo;
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/listener/InitListener.java
@@ -7,7 +7,6 @@
import org.eclipse.milo.opcua.sdk.client.OpcUaClient;
import org.jeecg.modules.dry.common.CacheConstants;
import org.jeecg.modules.dry.common.CommonDict;
import org.jeecg.modules.dry.common.OPCUA;
import org.jeecg.modules.dry.vo.DryFault;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
@@ -10,4 +10,6 @@
    Result<?> queryMachineRealTImeData(RealTimeDataVo realTimeDataVo);
    Result<?> sendSocketMsg(CommandMessageVo msgVo);
    Result<?> queryWorkshopStatistics(RealTimeDataVo realTimeDataVo);
}
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
@@ -16,7 +16,6 @@
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.modules.dry.api.JeecgSystemApi;
import org.jeecg.modules.dry.common.CacheConstants;
import org.jeecg.modules.dry.entity.*;
import org.jeecg.modules.dry.service.*;
@@ -82,7 +81,7 @@
    @Transactional
    public Result<?> realTimeDataHandle(RealTimeDataVo realTimeDataVo) {
        TenantContext.setTenant(realTimeDataVo.getTenantid()+"");
        log.info("实时数据:"+realTimeDataVo.toString());
       // log.info("实时数据:"+realTimeDataVo.toString());
        // 1 查询或创建工单
@@ -387,4 +386,37 @@
     //   });
        return Result.OK();
    }
    @Override
    public Result<?> queryWorkshopStatistics(RealTimeDataVo realTimeDataVo) {
        LambdaQueryWrapper<DryEquipment> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DryEquipment::getTenantId, realTimeDataVo.getTenantid());
        queryWrapper.eq(DryEquipment::getEnable, "Y");
        List<DryEquipment> dryEquipments = equipmentService.list(queryWrapper);
        DryOrderVo orderVo = new DryOrderVo();
        if (dryEquipments != null && dryEquipments.size() > 0) {
            dryEquipments.stream().forEach(item -> {
                DryOrderVo order = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid() + "_" + item.getCode());
                if (order != null) {
                    orderVo.setEnvHum(order.getEnvHum());
                    orderVo.setEnvTemp(order.getEnvTemp());
                    double watt = order.getWatt() - order.getDetailList().get(0).getWatt();
                    orderVo.setWatt(orderVo.getWatt()==null? watt : orderVo.getWatt() + watt);
                    double steam = order.getSteam() - order.getDetailList().get(0).getSteam();
                    orderVo.setSteam(orderVo.getSteam()==null? steam : orderVo.getSteam() + steam);
                    orderVo.setOriginWeight(orderVo.getOriginWeight()==null? order.getOriginWeight(): orderVo.getOriginWeight() + order.getOriginWeight());
                    double yield = order.getOriginWeight()*(1-(order.getInitial()/100))/(1-(order.getTarget()/100));
                    orderVo.setYield(orderVo.getYield()==null? yield: orderVo.getYield() + yield);
                    double sub = order.getOriginWeight() - order.getYield();
                    orderVo.setReduce(orderVo.getReduce()==null? sub: orderVo.getReduce() + sub);
                }
            });
        }
        //redisUtil.get(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode()
        return Result.OK(orderVo);
    }
}