1、mapper
public interface WmsSendOrderLinesMapper extends BaseMapperPlus<WmsSendOrderLinesMapper, WmsSendOrderLines, WmsSendOrderLinesVo> {
List<WmsSendOrderLines> getBindProductLines(@Param(Constants.WRAPPER) Wrapper<WmsSendOrderLinesBo> queryWrapper);
}
2、xml
<select id="getBindProductLines" resultType="com.smart.wms.send.bean.WmsSendOrderLines">
select wsol.*, wp.bind_id
from wms_send_order_lines wsol
left join wms_product wp on wp.id = wsol.product_id
${ew.getCustomSqlSegment}
</select>
3、service
List<WmsSendOrderLines> getBindProductLines(WmsSendOrderLinesBo bo);
4、serviceImpl
@Override
public List<WmsSendOrderLines> getBindProductLines(WmsSendOrderLinesBo bo) {
return baseMapper.getBindProductLines(buildBindQueryWrapper(bo));
}
private QueryWrapper<WmsSendOrderLinesBo> buildBindQueryWrapper(WmsSendOrderLinesBo bo) {
QueryWrapper<WmsSendOrderLinesBo> lqw = Wrappers.query();
Map<String, Object> params = bo.getParams();
lqw.eq(bo.getSendOrderId() != null, "wsol.send_order_id", bo.getSendOrderId());
lqw.ge("wsol.product_stock",0);
lqw.nested(wrapper ->
wrapper.eq("wsol.quality_type", "ZP").or().eq("wsol.quality_type", "XTZP")
);
lqw.between(params.get("beginFinishTime") != null && params.get("endFinishTime") != null,
"wsol.finish_time", params.get("beginFinishTime"), params.get("endFinishTime"));
lqw.in(CollUtil.isNotEmpty(bo.getReturnOrderIds()),"wsol.returnOrderIds", bo.getReturnOrderIds());
lqw.groupBy("wsol.return_order_id,wsol.item_bar_code");
return lqw;
}
5、 controller
@RequestMapping("/test")
public void test() {
List<WmsSendOrderLines> orderLinesList = iWmsSendOrderLinesService.getBindProductLines(wmsSendOrderLinesBo);
}