javascript
SpringBoot+MyBatisPlus+Swagger2.7规范开发接口流程(以废料包材入库与出库为例)
場景
SpringBoot+Swagger2實現(xiàn)可視化API文檔流程:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/93616618
項目中引入swagger2.7參照上文。
業(yè)務需求
廢料入庫接口
上位機掃描托盤碼,傳遞給接口作為參數(shù),后臺查詢托盤上的物料。
跟據(jù)收貨單查詢托盤上的物料,因為托盤回收后可以重復利用,所以在查詢托盤上所對應的物料時
需要對查詢結果List進行篩選。選擇距離當前時間最近的的一個實體類所對應的物料編號。
然后根據(jù)物料編號查詢出物料的基本信息,基本信息中有包裝是否可以回收和托盤是否回收這兩個屬性。
如果包裝可以回收則將包裝入廢料庫的時間賦值,如果托盤可以回收則將托盤入廢料庫的時間賦值。
賦值完成后將廢料回收記錄的實體類存入數(shù)據(jù)庫。
廢料出庫接口
廢料庫是有容量的,等廢料存滿了后要運走,此時還要調(diào)接口,記錄出廢料庫時間。
調(diào)用此接口時上位機傳遞運輸類型標識量,如果參數(shù)為1,則表示運輸包裝廢料所有沒有出廢料庫的,即包裝出庫時間為空的。如果參數(shù)為2,則表示運輸托盤廢料所有沒有托盤出庫時間的。
查詢之后將出庫時間依次賦值。
實現(xiàn)
數(shù)據(jù)庫設計
?
廢料入庫接口
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);}具體實現(xiàn)類代碼
@Transactional@Overridepublic Json IWmsWastePackageRecoveryInWareHouseRecord(String trayCode) {Json json = new Json();try{WmsWastePackageRecoveryRecord wmsWastePackageRecoveryRecord = new WmsWastePackageRecoveryRecord();wmsWastePackageRecoveryRecord.setTrayNumber(trayCode);//通過托盤號根據(jù)收貨單查詢物料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();}//根據(jù)物料編號查詢物料基本信息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());}}//存數(shù)據(jù)庫wmsWastePackageRecoveryRecordMapper.insert(wmsWastePackageRecoveryRecord);json.success();json.setMsg("廢料包材入庫成功");}else{json.fail();json.setMsg("沒有找到該托盤所對應的的物料信息");}}else{json.fail();json.setMsg("沒有找到該托盤所對應的收貨單中的物料信息");}}catch (Exception e){json.fail();json.setMsg("廢料包材入庫出現(xiàn)異常");}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);}具體實現(xiàn)類代碼
@Transactional@Overridepublic 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;}效果
廢料入庫測試結果
?
廢料出庫測試結果
?
總結
以上是生活随笔為你收集整理的SpringBoot+MyBatisPlus+Swagger2.7规范开发接口流程(以废料包材入库与出库为例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中获取实体List中某时间属性离
- 下一篇: Linux-服务器远程控制