SpringBoot+MyBatisPlus+Swagger2.7规范开发接口流程(以废料包材入库与出库为例)

场景

SpringBoot+Swagger2实现可视化API文档流程:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/93616618

项目中引入swagger2.7参照上文。

业务需求

废料入库接口

上位机扫描托盘码,传递给接口作为参数,后台查询托盘上的物料。

跟据收货单查询托盘上的物料,因为托盘回收后可以重复利用,所以在查询托盘上所对应的物料时

需要对查询结果List进行筛选。选择距离当前时间最近的的一个实体类所对应的物料编号。

然后根据物料编号查询出物料的基本信息,基本信息中有包装是否可以回收和托盘是否回收这两个属性。

如果包装可以回收则将包装入废料库的时间赋值,如果托盘可以回收则将托盘入废料库的时间赋值。

赋值完成后将废料回收记录的实体类存入数据库。

废料出库接口

废料库是有容量的,等废料存满了后要运走,此时还要调接口,记录出废料库时间。

调用此接口时上位机传递运输类型标识量,如果参数为1,则表示运输包装废料所有没有出废料库的,即包装出库时间为空的。如果参数为2,则表示运输托盘废料所有没有托盘出库时间的。

查询之后将出库时间依次赋值。

实现

数据库设计

 

废料入库接口

Controller层代码

 @Description("废料包材回收入库记录")
    @RequestMapping(value="/wastePackageRecoveryInWareHouseRecord",method =RequestMethod.POST)
    @ResponseBody
    @ApiOperation(value="废料包材回收入库记录", notes="上位机扫码,点击回收按钮进行废料包材回收入库")
    @ApiImplicitParam(name = "trayCode", value = "托盘编码", required = true, dataType = "String",paramType="query")
    public  Json IWmsWastePackageRecoveryInWareHouseRecord(String trayCode) {
        return this.wmsMasterCleanFinishService.IWmsWastePackageRecoveryInWareHouseRecord(trayCode);
    }

具体实现类代码

@Transactional
    @Override
    public Json IWmsWastePackageRecoveryInWareHouseRecord(String trayCode) {
        Json json = new Json();
        try{
            WmsWastePackageRecoveryRecord wmsWastePackageRecoveryRecord = new WmsWastePackageRecoveryRecord();
            wmsWastePackageRecoveryRecord.setTrayNumber(trayCode);
            //通过托盘号根据收货单查询物料
            QueryWrapper<WmsReceiveOrderDetails> receiveOrerDeatilsWrapper = new QueryWrapper<WmsReceiveOrderDetails>();
            receiveOrerDeatilsWrapper.eq("salver_code",trayCode)
                    .eq("deleted_flag",0);
            List<WmsReceiveOrderDetails> receiveOrderDetailList = receiveOrderDetailsMapper.selectList(receiveOrerDeatilsWrapper);
            if(receiveOrderDetailList!=null){
                String materialNumber = receiveOrderDetailList.get(0).getMaterielNumber();
                for (int i =0;i+1<receiveOrderDetailList.size();i++){
                    if(receiveOrderDetailList.get(i).getGmtCreat().getTime() < receiveOrderDetailList.get(i+1).getGmtCreat().getTime());
                    materialNumber=receiveOrderDetailList.get(i+1).getMaterielNumber();
                }
                //根据物料编号查询物料基本信息
                QueryWrapper<BusMaterielInfo> materialInfoWrapper = new QueryWrapper<BusMaterielInfo>();
                materialInfoWrapper.eq("materiel_number",materialNumber)
                        .eq("deleted_flag",0);
                BusMaterielInfo busMaterielInfo = materielInfoMapper.selectOne(materialInfoWrapper);
                if(busMaterielInfo!=null){
                    if(busMaterielInfo.getPackageRecoveryFlag()==true){
                        wmsWastePackageRecoveryRecord.setPackageInTime(new Date());
                    }else{
                        if(busMaterielInfo.getTrayRecoveryFlag()==true){
                            wmsWastePackageRecoveryRecord.setTrayInTime(new Date());
                        }
                    }
                    //存数据库
                    wmsWastePackageRecoveryRecordMapper.insert(wmsWastePackageRecoveryRecord);
                    json.success();
                    json.setMsg("废料包材入库成功");
                }else{
                    json.fail();
                    json.setMsg("没有找到该托盘所对应的的物料信息");
                }
            }else{
                json.fail();
                json.setMsg("没有找到该托盘所对应的收货单中的物料信息");
            }
        }catch (Exception e){
            json.fail();
            json.setMsg("废料包材入库出现异常");
        }
        return json;
    }

废料出库接口

Controller层代码

 @Description("废料包材回收出库记录")
    @RequestMapping(value="/wastePackageRecoveryOutWareHouseRecord",method =RequestMethod.POST)
    @ResponseBody
    @ApiOperation(value="废料包材回收出库记录", notes="上位机扫码,点击回收按钮进行废料包材回收出库")
    @ApiImplicitParam(name = "wastePackageFlag", value = "废材包料入库标识:1-回收包装 2-回收托盘 ", required = true, dataType = "Integer",paramType="query")
    public  Json IWmsWastePackageRecoveryOutWareHouseRecord(Integer wastePackageFlag) {
        return this.wmsMasterCleanFinishService.IWmsWastePackageRecoveryOutWareHouseRecord(wastePackageFlag);
    }

具体实现类代码

@Transactional
    @Override
    public Json IWmsWastePackageRecoveryOutWareHouseRecord(Integer wastePackageFlag) {
        Json json = new Json();
        try{
            //包装出库
            if(wastePackageFlag==1){
                QueryWrapper<WmsWastePackageRecoveryRecord> wastePackageRecoveryOutWrapper = new QueryWrapper<WmsWastePackageRecoveryRecord>();
                wastePackageRecoveryOutWrapper.isNull("package_out_time")
                        .eq("deleted_flag",0);
                List<WmsWastePackageRecoveryRecord> wmsWastePackageRecoveryRecordList = wmsWastePackageRecoveryRecordMapper.selectList(wastePackageRecoveryOutWrapper);
                for (WmsWastePackageRecoveryRecord wmsWastePackageRecoveryRecord:wmsWastePackageRecoveryRecordList
                        ) {
                    wmsWastePackageRecoveryRecord.setPackageOutTime(new Date());
                    wmsWastePackageRecoveryRecordService.updateById(wmsWastePackageRecoveryRecord);
                }
            }
            //包装出库
            if(wastePackageFlag==2){
                QueryWrapper<WmsWastePackageRecoveryRecord> wastePackageRecoveryOutWrapper = new QueryWrapper<WmsWastePackageRecoveryRecord>();
                wastePackageRecoveryOutWrapper.isNull("tray_out_time")
                        .eq("deleted_flag",0);
                List<WmsWastePackageRecoveryRecord> wmsWastePackageRecoveryRecordList = wmsWastePackageRecoveryRecordMapper.selectList(wastePackageRecoveryOutWrapper);
                for (WmsWastePackageRecoveryRecord wmsWastePackageRecoveryRecord:wmsWastePackageRecoveryRecordList
                        ) {
                    wmsWastePackageRecoveryRecord.setTrayOutTime(new Date());
                    wmsWastePackageRecoveryRecordService.updateById(wmsWastePackageRecoveryRecord);
                }
            }
            json.success();
            json.setMsg("废料包材出库成功");
        }catch (Exception e){
            json.fail();
            json.setMsg("废料包材出库异常");
        }
        return json;
    }

效果

废料入库测试结果

 

废料出库测试结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
课程介绍 仓库管理系统主要功能有采购入库,采购退货,销售出库,销售退货,仓库盘点,库存报表,Excel导入导出,按钮级权限控制及系统日志等功能,系统采用SpringBoot ,mybatis,easyui,ajax,mssql数据库等技术开发。提供所有源代码下载,系统功能完善,可直接运行。开发环境项目开发语言:SpringBoot ,mybatis,easyui,ajax,mssql数据库项目运行环境:jdk1.8及以上版本,tomcat8.0及以上版本,sql server2005及以上版本项目开发工具: 本项目开发工具是Intellij Idea课程目标掌握SpringBoot等技术,熟悉仓库管理系统主要功能,采购入库,采购退货,销售出库,销售退货,仓库盘点,系统报表,权限控制及日志等50多门JAVA系列全套课程,包括大一新生到大四毕业的所有JAVA系列技术专业课程,项目实战,商业项目等;基础课程:JAVA初级工程师: 1、计算机基础 2、HTML语言基础 3、C语言从入门到精通+贪吃蛇游戏 4、贪吃蛇游戏 5、SQL SERVER数据库基础 6、JAVA从入门到精通+推箱子游戏+QQ即时通讯软件 7、推箱子游戏; 8、仿QQ即时通讯软件;JAVA中级工程师: 9、SQLSERVER数据库高级 10、SQLSERVER从入门到精通(基础+高级) 11、JavaScript从入门到精通, 12、JSP从入门到精通+点餐系统, 13、JSP从入门到精通+在线视频学习教育平台, 14、JSP从入门到精通+大型电商平台; 15、XML从入门到精通, 16、数据结构(JAVA版),JAVA高级工程师: 17、Oracle数据库从入门到精通, 18、ajax+jquery从入门到精通, 19、EasyUI从入门到精通,SSH框架: 20、Struts2从入门到精通课程, 21、Hibernate从入门到精通课程, 22、Spring从入门到精通课程; 23、Echarts从入门到精通, 24、Excel基于POI的导入导出工作流框架: 25、Activiti流程框架从入门到精通 26、JBPM流程框架从入门到精通SSM框架: 27、MyBatis从入门到精通 28、Spring MVC从入门到精通 29、Spring Boot入门到精通 30、Spring Cloud入门到精通面试题: 31、职业生涯规划及面试题集锦商业项目: 32、微信公众号在线支付系统 33、微信生活缴费在线支付系统 34、支付宝生活缴费在线支付系统 35、在线考试系统 36、人脸识别智能考试系统(人工智能AI) 37、仓库管理及质量追溯系统 38、房屋出租管理系统APP(身份证识别) 39、手机订餐管理系统, 40、CRM客户关系管理系统 41、大型房地产CRM销售管理系统 42、CMPP2,CMPP3移动网关系统 43、仓库管理系统(SpringBoot) 44、影院在线售票系统(仿猫眼电影)人工智能: 45、人脸识别在线考试系统 46、人脸识别系统项目实战 47、车牌识别停车场管理系统 48、身份证识别系统项目实战 49、营业执照识别系统项目实战 50、名片识别管理系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

霸道流氓气质

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

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

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

打赏作者

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

抵扣说明:

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

余额充值