當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
場景
SpringBoot項目中實現(xiàn)開放一個接口,接受上位機傳遞的tryCode(托盤編號),進(jìn)而在關(guān)聯(lián)的兩個表中插入數(shù)據(jù)。
效果
接口傳遞參數(shù)
接口返回數(shù)據(jù)
實現(xiàn)
在SpringBoot項目中的Controller
?@Description("掃碼生成單件質(zhì)檢單")@RequestMapping(value="/generatingSingleJianQualityTestOrder",method =RequestMethod.POST)@ResponseBody@ApiOperation(value="生成單件質(zhì)檢單", notes="上位機掃碼,生成單件質(zhì)檢單")@ApiImplicitParam(name = "trayCode", value = "托盤編碼", required = true, dataType = "String")public? Json generatingSingleJianQualityTestOrder(String trayCode) {return this.wmsMasterCleanFinishService.generatingSingleJianQualityTestOrder(trayCode);}注:
?@ApiOperation(value="生成單件質(zhì)檢單", notes="上位機掃碼,生成單件質(zhì)檢單")
?@ApiImplicitParam(name = "trayCode", value = "托盤編碼", required = true, dataType = "String")
這兩個注解是swagger接口說明的注解,如果沒有使用則直接忽略。
SpringBoot+Swagger2實現(xiàn)可視化API文檔流程:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/93616618
接受傳遞過來的trayCode參數(shù),傳遞到service層。
其中Json是封裝的Json數(shù)據(jù)類。
Json代碼
package com.ws.api.sys.vo;import lombok.Data;import java.io.Serializable;@Data public class Json implements Serializable {//默認(rèn)未失敗狀態(tài)private static Json instance;private String msg = "接口訪問失敗";private String title = "失敗提示";private boolean status = false;private int code = 300;private Object data = null;public synchronized static Json getInst() {if(instance==null){instance = new Json();}return instance;}public Json() {super();}public Json success(Object data){this.title = "成功提示";this.msg = "接口訪問成功";this.status = true;this.code = 200;this.data = data;return this;}public Json success(){this.title = "成功提示";this.msg = "接口訪問成功";this.status = true;this.code = 200;this.data = null;return this;}public Json fail(Object data){this.title = "失敗提示";this.msg = "接口訪問失敗";this.status = false;this.code = 300;this.data = data;return this;}public Json fail(){this.title = "失敗提示";this.msg = "接口訪問失敗";this.status = false;this.code = 300;this.data = null;return this;} }?
Service層代碼
?public? Json generatingSingleJianQualityTestOrder(String trayCode);ServiceImpl代碼
@Transactional@Overridepublic Json generatingSingleJianQualityTestOrder(String trayCode){Json json=Json.getInst();try{WmsQualitytesOrder wmsQualitytesOrder = new WmsQualitytesOrder();//質(zhì)檢單號String orderCode = this.iWmsQualitytesOrderService.generatePickNo(new Date());wmsQualitytesOrder.setOrderCode(orderCode);//創(chuàng)建時間wmsQualitytesOrder.setGmtCreat(new Date());//狀態(tài)為 未質(zhì)檢wmsQualitytesOrder.setStatus(0);//發(fā)起機臺固定為清潔車間機臺cj002wmsQualitytesOrder.setInitiaWorkshop("cj002");//質(zhì)檢類型為單件質(zhì)檢wmsQualitytesOrder.setQualifiedType("1");int result = this.wmsQualitytesOrderMapper.insert(wmsQualitytesOrder);if (result > 0){WmsQualitytestListOrder wmsQualitytestListOrder = new WmsQualitytestListOrder();//設(shè)置主表IDwmsQualitytestListOrder.setQualitytestId(wmsQualitytesOrder.getId());//設(shè)置物料名稱BusTrayMateriel busTrayMateriel = new BusTrayMateriel();QueryWrapper<BusTrayMateriel> busTrayMaterielQueryWrapper = new QueryWrapper<>();busTrayMaterielQueryWrapper.eq("tray_number", trayCode);List<BusTrayMateriel> busTrayMaterielList = new ArrayList<BusTrayMateriel>();busTrayMaterielList = busTrayMaterielMapper.selectList(busTrayMaterielQueryWrapper);busTrayMateriel=busTrayMaterielList.get(0);wmsQualitytestListOrder.setMaterielName(busTrayMateriel.getMaterielName());//設(shè)置物料IDwmsQualitytestListOrder.setMaterielId(busTrayMateriel.getId());//設(shè)置物料編號wmsQualitytestListOrder.setMaterielNumber(busTrayMateriel.getMaterielNumber());//設(shè)置物料類別名稱BusMaterielInfo busMaterielInfo = new BusMaterielInfo();QueryWrapper<BusMaterielInfo> busTrayMaterielInfoQueryWrapper = new QueryWrapper<>();busTrayMaterielInfoQueryWrapper.eq("materiel_number", busTrayMateriel.getMaterielNumber());busMaterielInfo = busMaterielInfoMapper.selectOne(busTrayMaterielInfoQueryWrapper);Long materialType = busMaterielInfo.getMaterielType();//碼表SysCode sysCode = new SysCode();QueryWrapper<SysCode> sysCodeQueryWrapper = new QueryWrapper<>();sysCodeQueryWrapper.eq("code_type", "materiel_type");sysCodeQueryWrapper.eq("code_value", materialType);sysCode = codeMapper.selectOne(sysCodeQueryWrapper);wmsQualitytestListOrder.setMaterielTypeName(sysCode.getCodeName());//設(shè)置物料類別wmsQualitytestListOrder.setMaterielType(materialType.intValue());//設(shè)置數(shù)量wmsQualitytestListOrder.setNum(busTrayMaterielList.size());//設(shè)置物料規(guī)格wmsQualitytestListOrder.setMaterielSpec(busMaterielInfo.getMaterielSpec());//設(shè)置單位wmsQualitytestListOrder.setUntiy(busMaterielInfo.getUntiy());//設(shè)置批次?單件質(zhì)檢是否應(yīng)該有批次號//設(shè)置供應(yīng)商批次wmsQualitytestListOrder.setSupplierBatch(busTrayMateriel.getSupplierBatch());//設(shè)置質(zhì)檢類型wmsQualitytestListOrder.setQualifiedType("1");//設(shè)置質(zhì)檢名字wmsQualitytestListOrder.setQualifiedName("單件質(zhì)檢");//設(shè)置是否有批次wmsQualitytestListOrder.setBatchFlag(0);//設(shè)置發(fā)起機臺wmsQualitytestListOrder.setInitiaWorkshop("清潔車間機臺");//設(shè)置是否完成質(zhì)檢wmsQualitytestListOrder.setQualifiedFlag(0);//保存this.iWmsQualitytestListOrderService.save(wmsQualitytestListOrder);json.success();json.setMsg("生成質(zhì)檢單成功");}else{json.fail();json.setMsg("生成質(zhì)檢單主表異常,請聯(lián)系管理員");}}catch (Exception e){json.fail();json.setMsg("生成質(zhì)檢單異常:"+e.toString());}return json;}?
總結(jié)
以上是生活随笔為你收集整理的SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot+Swagger2实
- 下一篇: SpringBoot中yml文件报错:o