當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
SpringBoot項目中實現開放一個接口,接受上位機傳遞的tryCode(托盤編號),進而在關聯的兩個表中插入數據。
效果
接口傳遞參數
接口返回數據
實現
在SpringBoot項目中的Controller
?@Description("掃碼生成單件質檢單")@RequestMapping(value="/generatingSingleJianQualityTestOrder",method =RequestMethod.POST)@ResponseBody@ApiOperation(value="生成單件質檢單", notes="上位機掃碼,生成單件質檢單")@ApiImplicitParam(name = "trayCode", value = "托盤編碼", required = true, dataType = "String")public? Json generatingSingleJianQualityTestOrder(String trayCode) {return this.wmsMasterCleanFinishService.generatingSingleJianQualityTestOrder(trayCode);}注:
?@ApiOperation(value="生成單件質檢單", notes="上位機掃碼,生成單件質檢單")
?@ApiImplicitParam(name = "trayCode", value = "托盤編碼", required = true, dataType = "String")
這兩個注解是swagger接口說明的注解,如果沒有使用則直接忽略。
SpringBoot+Swagger2實現可視化API文檔流程:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/93616618
接受傳遞過來的trayCode參數,傳遞到service層。
其中Json是封裝的Json數據類。
Json代碼
package com.ws.api.sys.vo;import lombok.Data;import java.io.Serializable;@Data public class Json implements Serializable {//默認未失敗狀態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();//質檢單號String orderCode = this.iWmsQualitytesOrderService.generatePickNo(new Date());wmsQualitytesOrder.setOrderCode(orderCode);//創建時間wmsQualitytesOrder.setGmtCreat(new Date());//狀態為 未質檢wmsQualitytesOrder.setStatus(0);//發起機臺固定為清潔車間機臺cj002wmsQualitytesOrder.setInitiaWorkshop("cj002");//質檢類型為單件質檢wmsQualitytesOrder.setQualifiedType("1");int result = this.wmsQualitytesOrderMapper.insert(wmsQualitytesOrder);if (result > 0){WmsQualitytestListOrder wmsQualitytestListOrder = new WmsQualitytestListOrder();//設置主表IDwmsQualitytestListOrder.setQualitytestId(wmsQualitytesOrder.getId());//設置物料名稱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());//設置物料IDwmsQualitytestListOrder.setMaterielId(busTrayMateriel.getId());//設置物料編號wmsQualitytestListOrder.setMaterielNumber(busTrayMateriel.getMaterielNumber());//設置物料類別名稱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());//設置物料類別wmsQualitytestListOrder.setMaterielType(materialType.intValue());//設置數量wmsQualitytestListOrder.setNum(busTrayMaterielList.size());//設置物料規格wmsQualitytestListOrder.setMaterielSpec(busMaterielInfo.getMaterielSpec());//設置單位wmsQualitytestListOrder.setUntiy(busMaterielInfo.getUntiy());//設置批次?單件質檢是否應該有批次號//設置供應商批次wmsQualitytestListOrder.setSupplierBatch(busTrayMateriel.getSupplierBatch());//設置質檢類型wmsQualitytestListOrder.setQualifiedType("1");//設置質檢名字wmsQualitytestListOrder.setQualifiedName("單件質檢");//設置是否有批次wmsQualitytestListOrder.setBatchFlag(0);//設置發起機臺wmsQualitytestListOrder.setInitiaWorkshop("清潔車間機臺");//設置是否完成質檢wmsQualitytestListOrder.setQualifiedFlag(0);//保存this.iWmsQualitytestListOrderService.save(wmsQualitytestListOrder);json.success();json.setMsg("生成質檢單成功");}else{json.fail();json.setMsg("生成質檢單主表異常,請聯系管理員");}}catch (Exception e){json.fail();json.setMsg("生成質檢單異常:"+e.toString());}return json;}?
總結
以上是生活随笔為你收集整理的SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot+Swagger2实
- 下一篇: SpringBoot中yml文件报错:o