谷粒商城day65-仓储服务-API-仓库管理-合并采购需求+领取采购单+完成采购

LTE 中UE的Cat类型详细协议介绍 什么是Cat.0?   Cat.即UE-Category,根据3GPP的定义,UE-Category分为1~10共10个等级,其中Cat.1-5为R8定义,Cat.6-8为R10定义,Cat.9-10为R11定义。 如上图,UE-Category主要定义了UE终端能支持的上下行速率。   Cat.0是被写入3GPP Rel.12标准,支持更低速率、更低功耗版本的LTE终端等级。Cat.0 和 Cat.1都是指向广阔的物联网市场,实现更低功耗、更低成本物联网设备连接到LTE网络。支持更低Category,对 阅读详情

1.流程图

 2.代码

合并采购需求到采购单

大致逻辑:把采购需求上的采购单ID记为该采购单的,若没选择采购单或者没有那么生成一张采购单

然后把采购需求与采购单的时间与状态修改了

    @Transactional
    @Override
    public void mergePurchase(MergeVo mergeVo) {
        Long purchaseId = mergeVo.getPurchaseId();
        if(purchaseId == null){
            //1、新建一个
            PurchaseEntity purchaseEntity = new PurchaseEntity();

            purchaseEntity.setStatus(WareConstant.PurchaseStatusEnum.CREATED.getCode());
            purchaseEntity.setCreateTime(new Date());
            purchaseEntity.setUpdateTime(new Date());
            this.save(purchaseEntity);
            purchaseId = purchaseEntity.getId();
        }

        //TODO 确认采购单状态是0,1才可以合并

        List<Long> items = mergeVo.getItems();
        Long finalPurchaseId = purchaseId;
        List<PurchaseDetailEntity> collect = items.stream().map(i -> {
            PurchaseDetailEntity detailEntity = new PurchaseDetailEntity();

            detailEntity.setId(i);
            detailEntity.setPurchaseId(finalPurchaseId);
            detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.ASSIGNED.getCode());
            return detailEntity;
        }).collect(Collectors.toList());


        detailService.updateBatchById(collect);

        PurchaseEntity purchaseEntity = new PurchaseEntity();
        purchaseEntity.setId(purchaseId);
        purchaseEntity.setUpdateTime(new Date());
        this.updateById(purchaseEntity);
    }

领取采购单

这个操作一般是采购人员在手机APP上领取,代码操作也是对采购需求与采购单改时间改状态

    /**
     *
     * @param ids 采购单id
     */
    @Override
    public void received(List<Long> ids) {
        //1、确认当前采购单是新建或者已分配状态
        List<PurchaseEntity> collect = ids.stream().map(id -> {
            PurchaseEntity byId = this.getById(id);
            return byId;
        }).filter(item -> {
            if (item.getStatus() == WareConstant.PurchaseStatusEnum.CREATED.getCode() ||
                    item.getStatus() == WareConstant.PurchaseStatusEnum.ASSIGNED.getCode()) {
                return true;
            }
            return false;
        }).map(item->{
            item.setStatus(WareConstant.PurchaseStatusEnum.RECEIVE.getCode());
            item.setUpdateTime(new Date());
            return item;
        }).collect(Collectors.toList());

        //2、改变采购单的状态
        this.updateBatchById(collect);



        //3、改变采购项的状态
        collect.forEach((item)->{
            List<PurchaseDetailEntity> entities = detailService.listDetailByPurchaseId(item.getId());
            List<PurchaseDetailEntity> detailEntities = entities.stream().map(entity -> {
                PurchaseDetailEntity entity1 = new PurchaseDetailEntity();
                entity1.setId(entity.getId());
                entity1.setStatus(WareConstant.PurchaseDetailStatusEnum.BUYING.getCode());
                return entity1;
            }).collect(Collectors.toList());
            detailService.updateBatchById(detailEntities);
        });

    }

完成采购

各采购详情可能成功可能失败,成功的入库,增加对应仓库中对应商品的库存,失败的记录原因,一旦有一个失败采购单就算出现异常

记录下来,并更新相关时间字段

        //2、改变采购项的状态
        Boolean flag = true;
        List<PurchaseItemDoneVo> items = doneVo.getItems();

        List<PurchaseDetailEntity> updates = new ArrayList<>();
        for (PurchaseItemDoneVo item : items) {
            PurchaseDetailEntity detailEntity = new PurchaseDetailEntity();
            if(item.getStatus() == WareConstant.PurchaseDetailStatusEnum.HASERROR.getCode()){
                flag = false;
                detailEntity.setStatus(item.getStatus());
            }else{
                detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.FINISH.getCode());
                ////3、将成功采购的进行入库
                PurchaseDetailEntity entity = detailService.getById(item.getItemId());
                wareSkuService.addStock(entity.getSkuId(),entity.getWareId(),entity.getSkuNum());

            }
            detailEntity.setId(item.getItemId());
            updates.add(detailEntity);
        }

        detailService.updateBatchById(updates);

        //1、改变采购单状态
        PurchaseEntity purchaseEntity = new PurchaseEntity();
        purchaseEntity.setId(id);
        purchaseEntity.setStatus(flag?WareConstant.PurchaseStatusEnum.FINISH.getCode():WareConstant.PurchaseStatusEnum.HASERROR.getCode());
        purchaseEntity.setUpdateTime(new Date());
        this.updateById(purchaseEntity);
    }
    @Override
    public void addStock(Long skuId, Long wareId, Integer skuNum) {
        //1、判断如果还没有这个库存记录新增
        List<WareSkuEntity> entities = wareSkuDao.selectList(new QueryWrapper<WareSkuEntity>().eq("sku_id", skuId).eq("ware_id", wareId));
        if(entities == null || entities.size() == 0){
            WareSkuEntity skuEntity = new WareSkuEntity();
            skuEntity.setSkuId(skuId);
            skuEntity.setStock(skuNum);
            skuEntity.setWareId(wareId);
            skuEntity.setStockLocked(0);
            //TODO 远程查询sku的名字,如果失败,整个事务无需回滚
            //1、自己catch异常
            //TODO 还可以用什么办法让异常出现以后不回滚?高级
            try {
                R info = productFeignService.info(skuId);
                Map<String,Object> data = (Map<String, Object>) info.get("skuInfo");

                if(info.getCode() == 0){
                    skuEntity.setSkuName((String) data.get("skuName"));
                }
            }catch (Exception e){

            }


            wareSkuDao.insert(skuEntity);
        }else{
            wareSkuDao.addStock(skuId,wareId,skuNum);
        }
    }

 

category ue 协议_LTE附着流程详解-UECapabilityInformation 以高通QXDMlog为例解码UECapabilityInformation:在3gpp 36.331中,有个流程是eNB查询UE能力:UECapabilityEnquiry消息,对应逻辑信道为DL-DCCH,使用SRB1承载、RLC AM模式传输,可以查询多个RAT的能力。UE返回UECapabilityInformation,使用SRB1承载,对应逻辑信道为UL-DCCH,返回各个RAT能力。每... 阅读详情

相关推荐

【LTE基础知识】LTE UE Category LTE终端产品工作类型总结

3GPP Release UE 工作类型(User Equipment Category) 最大L1层数据速率 下行 MIMO实现下行速率的最大天线数 最大L1层数据速率 上行 调制方式DL 调制方式UL Release 8 Category 1 10.3 Mbits/s 1 5.2 Mbit/s 64QAM 16QAM Release 8 Categ

守望的距离 7558

UE-Category

“UE category”是一系列的在上行/下行中可变的无线性能参数的集合。 “UE category”中包含了很多的无线特性,其中最重要的一个就是UE(用户设备)支持的速率。 各种“UE Category”和支持速率的对应关系如下表中所示: UE Category 下行峰值速率(Mbps) 下行天线构成 上行峰值速率(Mbps) 上行链路

Marvelous 2508

category ue 协议_LTE中UE能力(UE Capability)的梳理和解析

1.关于LTE中UE能力的问题,也是大家经常提问的地方之一。 比如” UE支持的RAT? / UE支持的Frequecy band ? / UE的功率等级? / UE是否支持CA,且是那种类型的CA? / UE是否支持PS HO ? / UE是否支持SRVCC? / 现在系统间移动性大多采用Redirect而不是PS HO, 是UE能力不支持么? / UE支持哪些安全算法...

weixin_29540599的博客 6929

仓储服务-API-仓库管理

整合ware服务 & 获取仓库列表 对应数据库wms,仓库表: wms_ware_info,代表当前有几个仓库。 wms_ware_sku:那个仓库的哪个商品的库存数量。 ware_order_task: 库存的订单。 ware_order_task_detail:库存订单详情。purchase: 采购单。 purchase_detail:采购单详情 对应服务模块:gulimall_ware 首先把它注册到Naocs 中 在网关处配置一个属于它的路由规则: 编写模糊查询功能: Tips

weixin_44743332的博客 918

基于Java Web SSM框架的仓库管理系统源码

项目概述:基于Java Web SSM框架的仓库管理系统源码,该系统主要采用Java语言开发,辅以JavaScript、CSS和HTML技术,以实现高效、稳定的管理功能。源码包含195个文件,具体文件类型分布如下:Java源文件92个,XML配置文件22个,JSP页面18个,JavaScript脚本15个,CSS样式表11个,PNG图片8张,XLSX表格6个,JPG图片4张,Markdown文档3个,以及Properties配置文件2个。本项目旨在为用户提供一个基于SSM框架的可靠仓库管理解决方案。

网易 广州 梦幻西游端游 客户端社招笔试题 2024

4道算法题,时间2小时,牛客网笔试注:采用OJ模式,需要自己处理输入、输出。

z2014z的博客 1813

category ue 协议_问题1:产品设计者最重要的关心的:UE-CATEGORY

必须承认:在我写作之前对于一些概念是模糊的,是参考文献给我启迪。为了表达我对于参考文献作者对我的帮助和启迪,我把参考文献放在第一部分。3. 3GPP TS36.3064. 3GPP TS36.331UE Category14年夏天,海思高调发布了芯片Kirin920,成为第一款支持CAT6的商用芯片。CAT6瞬间成为了网络热词,那么什么是CAT?CAT是UE-CATEGORY的简称,含义就是字面的...

weixin_33492955的博客 644

对称加密和非对称加密、公钥和私钥、单向认证和双向认证、数字签名、数字证书、根证书

文章目录1. 什么是公钥和私钥?2. 加密算法2.1 对称加密2.2 非对称加密2.2.1 非对称加密的重要性质2.2.2 非对称加密算法应用2.2.2.1 应用1 加密通信2.2.2.1.1 单向认证和双向认证2.2.2.1 应用2 数字签名3. 数字签名3.1 数字签名用法演示3.2 数字签名存在问题4. 数字证书(Digital Certificate)4.1 创建数字证书4.1.1 举例,CA如何给我们签发一个有效证书: 1. 什么是公钥和私钥? 摘自《什么是公钥和私钥?》 公钥(Public Ke

m0_45406092的博客 1万+

5G/NR LTE 学习笔记:3GPP RRC 中的 ue-CategoryDL/ue-CategoryUL 和 ue-Category

UE Category的RRC消息,主要在331中介绍,具体见UE-EUTRA-Capability。 每个field的具体解释见306 (User Equipment (UE) radio access capabilities). ue-CategoryDL/ue-CategoryUL 和 ue-Category ue-Category是最开始的时候协议中的field名称。但是上行和...

ai-phy-mac-com 8329

Windows 64 位系统下安装配置 DOSBox 及 debug.exe

该篇博客同样作为类似问题 “如何在 Windows 64 位系统下进入 debug” 的答案。 很多同学初看王爽的《汇编语言》,或者因为其它原因需要进入 debug 调试模式下学习汇编语言的时候,会发现进入不了,出现类似以下的错误提示。 这是因为他们使用的是 64 位的 Windows 系统(Win 7,Win 8 以及 Win 10 等),而 64 位 Windows 系统不再支持在命令提示符窗口下进入 debug 调试模式。那么对于使用 64 位 Windows 系统的用户来说,该怎样才能够顺利进入 d

加号减减号的博客 5万+

YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程

通过本教程,我们完整地学习了如何使用YOLO11-pose进行关键点检测任务的训练。从数据标注、格式转换到模型训练和评估,每个步骤都提供了详细的代码和说明。更高的精度:随着算法改进,关键点检测的精度将进一步提高实时性能:模型优化将使实时高性能关键点检测成为可能多模态融合:结合深度信息、热成像等多模态数据提升检测能力领域自适应:模型能够更好地适应不同场景和领域希望本教程能够帮助你在自己的项目中成功应用YOLO11-pose进行关键点检测。如果你有任何问题或建议,欢迎在评论区留言讨论!

QQ_778132974的博客 739

谷粒商城全流程总结

谷粒商城全流程笔记总结

weixin_46608852的博客 3308

RKNN 端侧部署必看:YOLOv11 Pose 姿态估计模型转换与性能优化实战

随着人工智能技术在边缘计算领域的快速发展,姿态估计作为计算机视觉的重要分支,在智能监控、人机交互、体感游戏等场景中展现出巨大的应用潜力。本文深入研究了YOLOv11 Pose模型在Rockchip RKNN平台上的部署方案,从理论基础、模型转换、平台优化到实际部署进行了全面阐述。通过详细的技术分析和实验验证,证明了RKNN平台能够有效提升YOLOv11 Pose的推理性能,在RK3588硬件平台上实现了高达100 FPS的实时姿态检测,为边缘计算场景下的姿态估计应用提供了高效的解决方案。

m0_71589036的博客 183

[4G&5G专题-52]:物理层-手机终端能力等级Category

目录 第1章 什么是终端的能力等级Category 第2章 为什么需要定义终端的能力等级(why) 2.1 为什么终端的能力等级Category会不同? 2.2 为什么需要定义需要定义终端的能力等级 第3章 基站空口无线传输的能力 第4章 终端终端的能力等级的内容(what) 4.1 UE Category 4.2UE DL Category 4.3UE ULCategory 第5章终端的能力等级上报的时机与过程(how and when and who) 5.1 基本流程 5...

文火冰糖(王文兵)的博客 4903

2026年CSP-J初赛真题及答案解析

2026年CSP-J初赛真题及题解

王老师青少年编程 1627

RK3568平台(网络篇)添加网络交换芯片RTL8306M

该交换芯片支持I2C、SPI、mdio通信,但是看ast1520的uboot代码采用的是mdio去通信phy芯片的,所以暂时也先采用mdio的方式,需要配置相应的引脚才可以配置成mdio通信模式,具体的配置硬件工程师解决。RTL8306M芯片上可能没有提供MDC/MDIO接口,可以通过GPIO(General Purpose Input/Output)来模拟,GPIO可实现串行输入输出,且一般CPU上会提供很多GPIO接口供用户自定义使用。

weixin_49303682的博客 3935

5G/NR LTE 学习笔记:UE Category 0

UE Cat 0 是从Release 12引入的,目的是为了MTC,即machine type communications,从业务质量和传输速率来看,算是低端终端,可以支持抄表,传感设备的应用。 UE Cat 0 每个TTI最大可传输比特为1000,但是对于SIB,paging,RAR这几类消息,最大TB为2216 bits。这是因为现有的SIB超过了1000 bits,如果是SIB消息,需要...

ai-phy-mac-com 3316

第 2 章:PassThrough 直通滤波

通过设置某个维度(如 x、y、z 或 rgb)的取值范围,仅保留该范围内的点,从而达到**点云裁剪(裁边)**或过滤异常值的目的。所有在该范围之外的点会被移除(可选是否保留);点云中包含背景、地面或传感器噪声,需要过滤;通过 z 轴过滤,只保留桌面上方的物体;多轴组合过滤(如同时过滤 x、y、z);可用于地面剔除、车载点云预处理等场景。不支持一次过滤多个字段,可多次调用;仅处理某一层或某一区域的点云数据。原始点云中包含地面、墙面、背景等;在区域裁剪、前景提取中广泛使用;设定一个轴(如z轴);

yumeiguo的博客 337

谷粒商城实战笔记-97~98-仓储服务-API-仓库管理-采购完整流程

图片展示了一个简化的采购流程。人工创建采购需求:这个阶段通常由内部用户或部门提出购买某种商品或服务的需求。库存预警创建采购需求:如果库存量低于预定的阈值,系统会自动触发一个采购需求。人工合并:在这一环节中,所有的采购需求被汇总在一起,可能通过手动的方式进行整合。系统定时合并:此外,系统也会定期地将采购需求合并成一张采购单。分配给采购人员:一旦生成了采购单,它会被分配给专门负责采购的人员。通知供应商或自主采购:接下来,采购人员要么联系供应商并下单,要么自行完成采购任务。采购单入库。

epitomizelu的专栏 902

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

UE Category

Please refer to 3GPP 36.306 4.1 UE-Category The field ue-Category defines a combined uplink and downlink capability. The parameters set by the UE Category are defined in subclause 4.2. Tables 4.1-1

hzgdiyer的专栏 2239

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LTE - UE Category和速率到底是什么关系?

一般你问那些砖家UE Category N对应的速率是多大时,他会直接把协议里的一张表格发给你,你看到表格后,还是六神无主,因为这个表格只会提供几个你看不懂的非典型大小的bit数(典型数据一般类似1024/32768这类2^n规律的数),然后你问那对应的速率到底是多少?他一般会轻描淡写地回复:自己计算。然后你也不好再问,因为你不想面对一个饱含这样意思的表情"这你都不会啊?!表格都已经写得这么清楚了!" 我也经历过无数次类似的情形,比如当时配置一个环境,涉及到交换机VLAN的配置时,我去请教一个老员工,她.

yu_yuan_hong的专栏 5485

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

UE4——(5)自建的对象类与蓝图的交互

1.Category作用 用于识别自定义组件,分类作用 2.打印输出 添加这一行 UE_LOG(LogTemp,Warning,TEXT("这是打印输出")); 这里我把之前的演员蓝图改了个名,双击进入蓝图编辑界面,点击冰凉后面的+新建一个变量,如下图所示 去掉继承变量就没那么多显示的了 这个眼睛和右边的可编辑实例是一个,表示在蓝图外其他类可以不可以直接编辑这个变量 点击变量类型 选择我们创建的对象类 设置好之后直接拖动放过来 这个类有一个..

去流浪 1453

【Spring Cloud Alibaba】Spring Cloud Alibaba 服务注册与发现实践

1. 简介 服务注册与发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。Nacos Discovery 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery 也将服务实例自身的一些元数据信息-例如 host,port, 健康检查URL,主页等内容注册到 Nacos。Nacos 的获取和启动方式可以参考Nacos 官网。

讯开技术孵化器博客 941

13.仓储服务-API-仓库管理

文章目录1 添加进注册中心2 配置网关3 仓库模糊查询4 查询库存5 查询采购需求6 合并采购需求6.1 采购流程图6.2 创建采购单6.3 查询未领取的采购单6.4 合并采购需求7 领取采购单8 完成采购8.1 创建vo8.2 controller8.3 实现done方法8.4 实现addStock方法8.5 远程调用服务8.6 MyBatis配置8.7 测试 1 添加进注册中心 将ware模块添加进注册中心,配置application.yml cloud: nacos: discovery:

xjhqre的博客 751

logging 日志的使用

logging 记录日志方便了解程序的运行情况,也可以分析用户的操作行为,同时方便开发人员检查 bug。 logging 日志的级别 日志等级可以分为5个,从低到高分别是: DEBUG 程序调试bug时使用 INFO 程序正常运行时使用 WARNING 程序未按预期运行时使用,但并不是错误,如:用户登录密码错误 ERROR 程序出错误时使用,如:IO操作失败 CRITICAL 特别严...

miaozy 374
上一篇: 谷粒商城day64-仓储服务-API-仓库管理-查询库存&创建采购需求
下一篇: 谷粒商城day66-分布式基础篇-总结
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值