批量插入

SQL部分
<!-- 新增订单安装记录-->
<insert id="saveInstallDetail" parameterType="ArrayList">
INSERT INTO tb_order_install_detail (
order_install_id,
goods_name,
is_cancel
)
VALUES
<foreach item="item" index="index" collection="list" separator=",">
(
#{item.orderInstallId},
#{item.goodsName},
#{item.isCancel}
)
</foreach>
</insert>
接口实现类
@Override
@Transactional
public TbOrderInstallInfoVo create(TbOrderInstallInfoVo vo) throws Exception {
// 1.根据erp发货ID 获取 发货记录ID和方案ID
TbOrderInstallInfoVo deliveVo = sqlSessionTemplate.selectOne("TbOrderInstallInfoMapper.findByDelivelId", vo);
if(null == deliveVo){
throw new InvalidRequestException("未找到发货记录");
}
vo.setOrderDelivelId(deliveVo.getOrderDelivelId());
vo.setSchemeId(deliveVo.getSchemeId());
// 2. 将新的TbOrderInstallInfoVo对象插入到订单安装记录表中
sqlSessionTemplate.insert("TbOrderInstallInfoMapper.saveInstallInfo", vo);
// 3. 拆分字符串goodsStrs,将信息插入安装明细表中 格式:橱柜~0,马桶~0,瓷砖~1
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
String[] goods = vo.getGoodsStrs().split(",");
if (null != goods) {
for (String s : goods) {
Map<String, Object> map = new HashMap<String, Object>();
String[] goodsDetail = s.split("~");
if (2 == goodsDetail.length) {
map.put("orderInstallId", vo.getOrderInstallId());
map.put("goodsName", goodsDetail[0]);
// "0"代表未取消 "1"代表已取消
if ("0".equals(goodsDetail[1]) ) {
map.put("isCancel", "Y");
}else {
map.put("isCancel", "N");
}
}
list.add(map);
}
}
sqlSessionTemplate.insert("TbOrderInstallInfoMapper.saveInstallDetail", list);
return vo;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值