You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-spms-java/src/main/resources/mybatis/mapper/inout/IoOrderInvoiceMapper.xml

174 lines
7.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inout.IoOrderInvoiceMapper">
<insert id="insertInvoice" parameterType="com.glxp.api.entity.inout.IoOrderInvoiceEntity">
INSERT INTO io_order_invoice(orderIdFk, bindRlFk, batchNo, productDate, expireDate)
values (#{orderIdFk},
#{bindRlFk},
#{batchNo},
#{productDate},
#{expireDate})
</insert>
<select id="selectOrderInvoice" parameterType="com.glxp.api.req.inout.IoOrderInvoiceRequest"
resultType="com.glxp.api.entity.inout.IoOrderInvoiceEntity">
SELECT ic.*, bp.cpmctymc, bp.ggxh
FROM io_order_invoice ic
LEFT JOIN basic_udirel bu ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
and bp.id > 1
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk}
</if>
<if test="bindRlFk != null">
AND ic.bindRlFk = #{bindRlFk}
</if>
<if test="batchNo != null and batchNo != ''">
AND ic.batchNo = #{batchNo}
</if>
<if test="batchNo == null || batchNo == ''">
AND (ic.batchNo is null or ic.batchNo = '')
</if>
</where>
GROUP BY ic.id
</select>
<select id="filterGroupBy" parameterType="com.glxp.api.req.inout.IoOrderInvoiceRequest"
resultType="com.glxp.api.res.inout.IoOrderInvoiceResponse">
SELECT ic.id,
ic.orderIdFk,
ic.bindRlFk,
ic.batchNo,
ic.productDate,
ic.expireDate,
ic.machineNo,
ic.invoiceCode,
ic.invoiceEncode,
ic.invoiceDate,
ic.updateTime,
ic.createUser,
ic.createTime,
ic.updateUser,
ic.remark,
ic.licenseUrl,
ic.bizIdFk,
io.coName,
ic.price,
io.spec,
bp.measname,
io.manufacturer,
io.certCode,
io.reCount,
io.count,
io.nameCode
FROM io_order_invoice ic
INNER JOIN io_order_detail_code io ON ic.orderIdFk = io.orderIdFk
LEFT JOIN basic_udirel bu
ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
left join io_order ioo on ioo.billNo = ic.orderIdFk
<where>
<if test="invoiceCode != null and invoiceCode != ''">
AND ic.invoiceCode = #{invoiceCode}
</if>
<if test="machineNo != null and invoiceCode != ''">
AND ic.machineNo = #{machineNo}
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND date_format(ic.invoiceDate, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d')
</if>
<if test="invoiceEncode != null and invoiceEncode != ''">
AND ic.invoiceEncode = #{invoiceEncode}
</if>
<if test="supId != null and supId != ''">
AND ioo.customerId = #{supId}
</if>
<if test="productType != null and productType != ''">
AND ioo.productType = #{productType}
</if>
</where>
GROUP BY ic.invoiceEncode
order by ic.updateTime desc
</select>
<select id="filterInvoice" parameterType="com.glxp.api.req.inout.IoOrderInvoiceRequest"
resultType="com.glxp.api.res.inout.IoOrderInvoiceResponse">
SELECT io.nameCode,
ic.id,
ic.orderIdFk,
ic.bindRlFk,
ic.batchNo,
ic.productDate,
ic.expireDate,
ic.machineNo,
ic.invoiceCode,
ic.invoiceEncode,
ic.invoiceDate,
ic.updateTime,
ic.createUser,
ic.createTime,
ic.updateUser,
ic.remark,
ic.licenseUrl,
ic.bizIdFk,
io.coName,
io.price,
io.spec,
bp.measname,
io.manufacturer,
io.certCode,
io.reCount,
io.count,
bp.bzgg
FROM io_order_invoice ic
INNER JOIN io_order_detail_code io ON ic.orderIdFk = io.orderIdFk
LEFT JOIN basic_udirel bu
ON bu.id = ic.bindRlFk
LEFT JOIN basic_products bp ON bu.uuid = bp.uuid
<where>
<if test="orderIdFk != null and orderIdFk != ''">
AND ic.orderIdFk = #{orderIdFk}
</if>
<if test="bindRlFk != null">
AND ic.bindRlFk = #{bindRlFk}
</if>
<if test="batchNo != null and batchNo != ''">
AND ic.batchNo = #{batchNo}
</if>
<if test="invoiceEncode != null and invoiceEncode != ''">
AND ic.invoiceEncode = #{invoiceEncode}
</if>
</where>
group by io.id
order by ic.updateTime desc
</select>
<select id="filterByInvoiceCode" parameterType="com.glxp.api.req.inout.IoOrderInvoiceRequest"
resultType="com.glxp.api.res.inout.IoOrderResponse">
select io.*,
(select name from basic_bussiness_type bus where bus.action = io.action) billTypeName,
(select name from auth_dept ad where ad.code = io.deptCode) deptName,
(select name from auth_warehouse aw where aw.code = io.invCode) invName,
(select employeeName from auth_user au where au.id = io.createUser) createUserName,
(select employeeName from auth_user au2 where au2.id = io.updateUser) updateUserName,
(select employeeName from auth_user au3 where au3.id = io.reviewUser) reviewUserName,
(select employeeName from auth_user au4 where au4.id = io.checkUser) checkUserName,
(select name from auth_dept ad2 where ad2.code = io.fromDeptCode) fromDeptName,
(select name from auth_warehouse aw2 where aw2.code = io.fromInvCode) fromInvName,
(select name from basic_corp bc where bc.erpId = io.fromCorp) fromCorpName,
(select name from basic_corp bc where bc.erpId = io.customerId) customerName
from io_order as io
inner join io_order_invoice ioi on io.billNo = ioi.orderIdFk
<where>
<if test="invoiceEncode != null">
AND ioi.invoiceEncode = #{invoiceEncode}
</if>
</where>
group by io.billNo;
</select>
</mapper>