增加 半制品入库接口、成品入库、绑定接口

master
wanghao 2 weeks ago
parent a1ae9be45e
commit 8d93704ae9

@ -1,27 +1,30 @@
package org.dromara.wms.controller;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.web.core.BaseController;
import org.dromara.wms.domain.bo.WmsReturnOrderBo;
import org.dromara.wms.domain.vo.WmsOutstockRecordVo;
import org.dromara.wms.domain.vo.WmsPsmInLoadVo;
import org.dromara.wms.service.IWmsPdaApiService;
import org.dromara.wms.service.IWmsReturnOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.dromara.wms.domain.vo.*;
import org.dromara.wms.service.*;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RequiredArgsConstructor
@RestController
@RequestMapping("/pda")
public class WmsPdaApiController extends BaseController {
@Autowired
private IWmsPdaApiService apiService;
@Autowired
private IWmsReturnOrderService wmsReturnOrderService;
private final IWmsPdaApiService apiService;
private final IWmsReturnOrderService wmsReturnOrderService;
private final IWmsPsmStorePlaceService wmsPsmStorePlaceService;
/**
* 退-
*
*/
@PostMapping("/raw/returnSelectCode")
public R<WmsOutstockRecordVo> returnSelectCode(String code) {
WmsOutstockRecordVo wmsOutstockRecordVo = apiService.returnSelectCode(code);
@ -31,8 +34,12 @@ public class WmsPdaApiController extends BaseController {
}
return R.ok(wmsOutstockRecordVo);
}
/**
* 退
*/
@PostMapping("/raw/returnSubmit")
public R<Void> rawReturnSubmit( @RequestBody WmsReturnOrderBo bo) {
public R<Void> rawReturnSubmit(@RequestBody WmsReturnOrderBo bo) {
Boolean result = wmsReturnOrderService.insertByBo(bo);
if (result) {
apiService.rawReturnSubmitUpdateStateById(bo.getOutstockRecordId());
@ -40,16 +47,78 @@ public class WmsPdaApiController extends BaseController {
return toAjax(result);
}
/**
*
*
* @param vehicleCode
* @param productList list
*/
@PostMapping("/product/bindVehicleSubmit")
public R<Void> bindVehicleSubmit(@RequestParam String vehicleCode,@RequestParam List<String> productList) {
// System.out.println(vehicleCode);
// System.out.println(productList.toString());
return R.ok();
public R<Void> bindVehicleSubmit(@RequestParam String vehicleCode, @RequestParam List<String> productList) {
Boolean result = apiService.bindVehicleSubmit(vehicleCode, productList);
if (result) {
return R.ok();
}
return R.fail();
}
/**
* -
*
* @param code
* @return WmsPsmInLoadVo
*/
@PostMapping("/product/selectVehicleInfo")
public R<WmsPsmInLoadVo> selectVehicleInfo(String code){
WmsPsmInLoadVo wmsPsmInLoadVo=apiService.productSelectVehicleInfo(code);
return R.ok();
public R<WmsPsmInLoadVo> selectVehicleInfo(String code) {
WmsPsmInLoadVo wmsPsmInLoadVo = apiService.productSelectVehicleInfo(code);
if (wmsPsmInLoadVo == null) {
return R.fail("载具编号错误");
}
return R.ok(wmsPsmInLoadVo);
}
@PostMapping("/product/submitInStoreInfo")
public R<Void> productSubmitInStoreInfo(@RequestBody WmsPsmInLoadVo vo) {
// 验证库位条码
WmsPsmStorePlaceVo wmsPsmStorePlace = wmsPsmStorePlaceService.selectStorePlaceInfoByCode(vo.getStorePlaceCode());
if (wmsPsmStorePlace == null) {
return R.fail("库位编码扫描错误");
}
vo.setStoreName(wmsPsmStorePlace.getStoreName());
Boolean result = apiService.productSubmitInStoreInfo(vo);
return result ? R.ok() : R.fail();
}
/**
*
* @param code
*/
@PostMapping("/semi/selectVehicleInfo")
public R<WmsHppInStockDetailVo> semiSelectVehicleInfo(String code) {
WmsHppInStockDetailVo wmsHppInStockDetailVo=apiService.semiSelectVehicleInfo(code);
if (wmsHppInStockDetailVo == null) {
return R.fail("载具没有绑定物料,或者载具编码扫描错误");
}
return R.ok(wmsHppInStockDetailVo);
}
private final IWmsHppStorePlaceService wmsHppStorePlaceService;
/**
*
* @param vo xinx
*/
@PostMapping("/semi/submitInstore")
public R<Void> semiSubmitInStoreInfo(@RequestBody WmsHppInStockDetailVo vo) {
// 验证库位条码
WmsHppStorePlaceVo wmsPsmStorePlace = wmsHppStorePlaceService.selectStorePlaceInfoByCode(vo.getStorePlaceCode());
if (wmsPsmStorePlace == null) {
return R.fail("库位编码扫描错误");
}
vo.setStorePlaceId(wmsPsmStorePlace.getObjId());
Boolean result = apiService.updataInStoreRecord(vo);
return result ? R.ok() : R.fail();
}
}

@ -1,10 +1,7 @@
package org.dromara.wms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;
@ -25,7 +22,7 @@ public class WmsHppStorageDetail {
/**
*
*/
@TableId(type = IdType.AUTO)
@TableId(type = IdType.AUTO,value = "obj_id")
private Long objId;
/**
@ -91,5 +88,7 @@ public class WmsHppStorageDetail {
private String materialCode;
private Long minParkingTime;
private Long maxParkingTime;
}

@ -70,7 +70,7 @@ public class WmsPsmInLoad {
/**
*
*/
private Long loadAmount;
private int loadAmount;
/**
* id
*/

@ -24,6 +24,7 @@ public class WmsPsmInStock{
/**
*
*/
@TableId(type = IdType.AUTO,value = "in_stock_id")
private Long inStockId;
/**

@ -79,6 +79,9 @@ public class WmsHppInStockDetailBo extends BaseEntity {
private BigDecimal instockNum;
private String storePlaceCode;
private String unitName;
}

@ -111,5 +111,6 @@ public class WmsHppInStockDetailVo implements Serializable {
private BigDecimal instockNum;
private String storePlaceCode;
private String materialCode;
private String unitName;
}

@ -105,7 +105,8 @@ public class WmsHppStorageDetailVo implements Serializable {
private Date updateTime;
private String storePlaceCode;
private String materialCode;
private Long minParkingTime;
private Long maxParkingTime;
}

@ -85,6 +85,7 @@ public class WmsPsmStorePlaceVo implements Serializable {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
private String storeCode;
private String storeName;

@ -1,8 +1,10 @@
package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Select;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsHppInStockDetail;
import org.dromara.wms.domain.vo.WmsHppInStockDetailVo;
import org.springframework.stereotype.Repository;
/**
* Mapper
@ -10,6 +12,11 @@ import org.dromara.wms.domain.vo.WmsHppInStockDetailVo;
* @author LionLi
* @date 2025-01-14
*/
@Repository
public interface WmsHppInStockDetailMapper extends BaseMapperPlus<WmsHppInStockDetail, WmsHppInStockDetailVo> {
@Select("select top 1 obj_id,create_time,card_no,shelf_no, grade_code,product_category,\n" +
" material_id,material_spec,instock_num,material_code,unit_name\n" +
"from wms_hpp_in_stock_detail where store_place_id is null and shelf_no=#{code}\n" +
"order by create_time")
WmsHppInStockDetailVo semiSelectVehicleInfo(String code);
}

@ -4,6 +4,7 @@ package org.dromara.wms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsHppStorageDetail;
import org.dromara.wms.domain.vo.WmsHppStorageDetailVo;
import org.springframework.stereotype.Repository;
/**
* Mapper
@ -11,6 +12,7 @@ import org.dromara.wms.domain.vo.WmsHppStorageDetailVo;
* @author LionLi
* @date 2025-01-14
*/
@Repository
public interface WmsHppStorageDetailMapper extends BaseMapperPlus<WmsHppStorageDetail, WmsHppStorageDetailVo> {
}

@ -1,5 +1,6 @@
package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Select;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsHppStorePlace;
import org.dromara.wms.domain.vo.WmsHppStorePlaceVo;
@ -11,5 +12,6 @@ import org.dromara.wms.domain.vo.WmsHppStorePlaceVo;
* @date 2025-01-14
*/
public interface WmsHppStorePlaceMapper extends BaseMapperPlus<WmsHppStorePlace, WmsHppStorePlaceVo> {
@Select("select top 1 obj_id,store_id,store_place_code,store_place_name from wms_hpp_store_place where store_place_code=#{storePlaceCode}")
WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode);
}

@ -1,9 +1,25 @@
package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.wms.domain.WmsPsmInLoad;
import org.dromara.wms.domain.WmsPsmInLoadDetail;
import org.dromara.wms.domain.WmsPsmInStock;
import org.dromara.wms.domain.vo.WmsPsmInLoadVo;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface WmsPdaApiMapper {
void rawReturnSubmitUpdateStateById(@Param("warehouseId") Long warehouseId);
int bindVehicleSubmitInsertInLoad(@Param("wmsPsmInLoad") WmsPsmInLoad wmsPsmInLoad);
void bindVehicleSubmitInsertInLoadDetail(@Param("id") Long inLoadId, @Param("list") List<String> productList);
WmsPsmInLoadVo productSelectVehicleInfo(String code);
void insertInStockDetail(@Param("id") Long inStockId, @Param("list") List<WmsPsmInLoadDetail> list);
void insertPsmStorage(@Param("list") List<WmsPsmInLoadDetail> list,@Param("data") WmsPsmInStock vo);
}

@ -3,6 +3,7 @@ package org.dromara.wms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsPsmInLoadDetail;
import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo;
import org.springframework.stereotype.Repository;
/**
* Mapper
@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo;
* @author LionLi
* @date 2025-01-15
*/
@Repository
public interface WmsPsmInLoadDetailMapper extends BaseMapperPlus<WmsPsmInLoadDetail, WmsPsmInLoadDetailVo> {
}

@ -3,6 +3,7 @@ package org.dromara.wms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsPsmInStock;
import org.dromara.wms.domain.vo.WmsPsmInStockVo;
import org.springframework.stereotype.Repository;
/**
* Mapper
@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.WmsPsmInStockVo;
* @author LionLi
* @date 2025-01-15
*/
@Repository
public interface WmsPsmInStockMapper extends BaseMapperPlus<WmsPsmInStock, WmsPsmInStockVo> {
}

@ -1,5 +1,6 @@
package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Select;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsPsmStorePlace;
import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
@ -11,5 +12,8 @@ import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
* @date 2025-01-15
*/
public interface WmsPsmStorePlaceMapper extends BaseMapperPlus<WmsPsmStorePlace, WmsPsmStorePlaceVo> {
@Select("select top 1 store_place_id,store_place_code, store_place_name, place.store_id," +
"sap_code, store_code, store_name,store_type_id from wms_psm_store_place place " +
"left join dbo.wms_psm_store wps on place.store_id = wps.store_id where store_place_code=#{storePlaceCode} ")
WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode);
}

@ -5,6 +5,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.wms.domain.bo.WmsHppStorePlaceBo;
import org.dromara.wms.domain.vo.WmsHppStorePlaceVo;
import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
import java.util.Collection;
import java.util.List;
@ -66,4 +67,6 @@ public interface IWmsHppStorePlaceService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode);
}

@ -1,12 +1,23 @@
package org.dromara.wms.service;
import org.dromara.wms.domain.vo.WmsHppInStockDetailVo;
import org.dromara.wms.domain.vo.WmsOutstockRecordVo;
import org.dromara.wms.domain.vo.WmsPsmInLoadVo;
import java.util.List;
public interface IWmsPdaApiService {
WmsOutstockRecordVo returnSelectCode(String code);
void rawReturnSubmitUpdateStateById(Long warehouseId);
WmsPsmInLoadVo productSelectVehicleInfo(String code);
Boolean bindVehicleSubmit(String vehicleCode, List<String> productList);
Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo);
WmsHppInStockDetailVo semiSelectVehicleInfo(String code);
Boolean updataInStoreRecord(WmsHppInStockDetailVo vo);
}

@ -2,6 +2,7 @@ package org.dromara.wms.service;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.wms.domain.WmsPsmStorePlace;
import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo;
import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo;
@ -65,4 +66,6 @@ public interface IWmsPsmStorePlaceService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode);
}

@ -140,4 +140,9 @@ public class WmsHppStorePlaceServiceImpl implements IWmsHppStorePlaceService {
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode) {
return baseMapper.selectStorePlaceInfoByCode(storePlaceCode);
}
}

@ -1,28 +1,34 @@
package org.dromara.wms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.BaseMapper;
import org.dromara.common.core.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.wms.domain.*;
import org.dromara.wms.domain.vo.BaseMaterialInfoVo;
import org.dromara.wms.domain.vo.WmsHppInStockDetailVo;
import org.dromara.wms.domain.vo.WmsOutstockRecordVo;
import org.dromara.wms.domain.vo.WmsPsmInLoadVo;
import org.dromara.wms.mapper.WmsOutstockRecordMapper;
import org.dromara.wms.mapper.WmsPdaApiMapper;
import org.dromara.wms.mapper.WmsPsmInLoadMapper;
import org.dromara.wms.mapper.*;
import org.dromara.wms.service.IWmsPdaApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
@RequiredArgsConstructor
@Service
public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
@Autowired
private WmsOutstockRecordMapper wmsOutstockRecordMapper;
@Autowired
private WmsPdaApiMapper apiMapper;
@Autowired
private WmsPsmInLoadMapper psmInLoadMapper;
private final WmsOutstockRecordMapper wmsOutstockRecordMapper;
private final WmsPdaApiMapper apiMapper;
private final WmsHppInStockDetailMapper baseMapper;
private final WmsPsmInStockMapper wmsPsmInStockMapper;
private final WmsPsmInLoadDetailMapper wmsPsmInLoadDetailMapper;
@Override
public WmsOutstockRecordVo returnSelectCode(String code) {
@ -46,8 +52,90 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
@Override
public WmsPsmInLoadVo productSelectVehicleInfo(String code) {
QueryWrapper<WmsPsmInLoad> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("toolingBarcode", code).eq("storePlaceCode",null);
return psmInLoadMapper.selectVoOne(queryWrapper);
return apiMapper.productSelectVehicleInfo(code);
}
@Override
public Boolean bindVehicleSubmit(String vehicleCode, List<String> productList) {
String userId = String.valueOf(LoginHelper.getUserId());
WmsPsmInLoad wmsPsmInLoad = new WmsPsmInLoad();
wmsPsmInLoad.setToolingBarcode(vehicleCode);
wmsPsmInLoad.setLoadAmount(productList.size());
wmsPsmInLoad.setCreateBy(userId);
int tag = apiMapper.bindVehicleSubmitInsertInLoad(wmsPsmInLoad);
if (tag == 1) {
apiMapper.bindVehicleSubmitInsertInLoadDetail(wmsPsmInLoad.getInLoadId(), productList);
return true;
}
return false;
}
@Translation(type = "Exception")
@Override
public Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo) {
// 插入入库记录主表
WmsPsmInStock wmsPsmInStock = new WmsPsmInStock();
BeanUtils.copyProperties(vo, wmsPsmInStock);
wmsPsmInStock.setInAmount(vo.getLoadAmount());
wmsPsmInStock.setCreateBy(LoginHelper.getUserId() + "");//创建人
int insert = wmsPsmInStockMapper.insert(wmsPsmInStock);
if (insert == 1) {
System.out.println();
// 查询成品条码表
QueryWrapper<WmsPsmInLoadDetail> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("in_load_id", vo.getInLoadId());
List<WmsPsmInLoadDetail> list = wmsPsmInLoadDetailMapper.selectList(queryWrapper);
apiMapper.insertInStockDetail(wmsPsmInStock.getInStockId(), list);
apiMapper.insertPsmStorage(list, wmsPsmInStock);
return true;
}
// 插入入库主表
// WmsPsmInStockBo bo = new WmsPsmInStockBo();
// bo.setStoreName(vo.getStoreName());
// bo.setToolingBarcode(vo.getToolingBarcode());
// bo.setMaterialId(vo.getMaterialId());
// bo.
return false;
}
@Override
public WmsHppInStockDetailVo semiSelectVehicleInfo(String code) {
return baseMapper.semiSelectVehicleInfo(code);
}
private final WmsHppInStockDetailMapper hppInStockDetailMapper;//入库记录
private final WmsHppStorageDetailMapper hppStorageDetailMapper;//库存表
private final BaseMaterialInfoMapper baseMaterialInfoMapper;//物料基础信息
@Override
public Boolean updataInStoreRecord(WmsHppInStockDetailVo vo) {
LambdaUpdateWrapper<WmsHppInStockDetail> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(WmsHppInStockDetail::getObjId, vo.getObjId())
.set(WmsHppInStockDetail::getStorePlaceId, vo.getStorePlaceId())
.set(WmsHppInStockDetail::getUpdateTime, DateUtils.getTime())
.set(WmsHppInStockDetail::getUpdateBy, LoginHelper.getUsername());
int rows = hppInStockDetailMapper.update(null, lambdaUpdateWrapper);
if (rows > 0) {
// System.out.println("更新成功");
WmsHppStorageDetail hppStorageDetail = new WmsHppStorageDetail();
BeanUtils.copyProperties(vo, hppStorageDetail);
hppStorageDetail.setObjId(null);
hppStorageDetail.setStorageNum(vo.getInstockNum());
BaseMaterialInfoVo baseMaterialInfoVo= baseMaterialInfoMapper.selectVoById(vo.getMaterialId());
hppStorageDetail.setMinParkingTime(baseMaterialInfoVo.getMinParkingTime());
hppStorageDetail.setMaxParkingTime(baseMaterialInfoVo.getMaxParkingTime());
hppStorageDetailMapper.insert(hppStorageDetail);
return true;
}
return false;
}
}

@ -140,4 +140,9 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService {
}
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode) {
return baseMapper.selectStorePlaceInfoByCode(storePlaceCode);
}
}

@ -9,5 +9,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update wms_outstock_record set return_flag= '1' where outstock_record_id=#{warehouseId}
</update>
<insert id="bindVehicleSubmitInsertInLoad" parameterType="org.dromara.wms.domain.WmsPsmInLoad" useGeneratedKeys="true" keyProperty="inLoadId">
INSERT INTO wms_psm_in_load (tooling_barcode, material_id, material_spe, check_grade_code,
load_amount, material_code)
VALUES (#{wmsPsmInLoad.toolingBarcode}, null, null, null, #{wmsPsmInLoad.loadAmount}, null);
</insert>
<insert id="bindVehicleSubmitInsertInLoadDetail">
INSERT INTO wms_psm_in_load_detail (in_load_id, material_id,
material_spe, tyre_no, check_grade_code)
VALUES
<foreach item="item" index="index" collection="list" separator=",">
( #{id}, null, null,#{item}, null)
</foreach>
</insert>
<resultMap id="WmsPsmInLoadVoResultMap" type="org.dromara.wms.domain.vo.WmsPsmInLoadVo">
<result column="in_load_id" property="inLoadId"/>
<result column="tooling_barcode" property="toolingBarcode"/>
<result column="material_id" property="materialId"/>
<result column="material_code" property="materialCode"/>
<result column="check_grade_code" property="checkGradeCode"/>
<result column="material_spe" property="materialSpe"/>
<result column="load_amount" property="loadAmount"/>
</resultMap>
<select id="productSelectVehicleInfo" resultMap="WmsPsmInLoadVoResultMap">
SELECT top 1 in_load_id,
tooling_barcode,
material_id,
material_spe,
check_grade_code,
load_amount,
material_code
FROM wms_psm_in_load
WHERE tooling_barcode = #{code} AND store_place_code IS NULL
ORDER BY create_time DESC
</select>
<insert id="insertInStockDetail" >
INSERT INTO wms_psm_in_stock_detail (in_stock_id, material_id, material_spe, tyre_no, check_grade_code)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{id}, #{item.materialId}, #{item.materialSpe}, #{item.tyreNo},#{item.checkGradeCode} )
</foreach>
</insert>
<insert id="insertPsmStorage">
INSERT INTO wms_psm_storage (create_by, material_id, material_spe, tyre_no, check_grade_code, store_name,
store_place_code, tooling_barcode)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{data.createBy}, #{item.materialId}, #{item.materialSpe}, #{item.tyreNo},#{item.checkGradeCode},#{data.storeName},
#{data.storePlaceCode},#{data.toolingBarcode})
</foreach>
</insert>
</mapper>

Loading…
Cancel
Save