日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot+MyBatisPlus实现插入关联多表数据的接口(企业质检管理举例)

發布時間:2025/3/19 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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实现插入关联多表数据的接口(企业质检管理举例)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。