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.
318 lines
12 KiB
XML
318 lines
12 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.inv.InvProductDetailDao">
|
|
<select id="findGroupBySpace" resultType="com.glxp.api.res.inv.InvProductResponse">
|
|
select ipp.id,
|
|
ipp.nameCode,
|
|
bp.cpmctymc,
|
|
ipp.relId,
|
|
bp.ggxh,
|
|
ipp.batchNo,
|
|
ipp.produceDate,
|
|
ipp.expireDate,
|
|
bp.ylqxzcrbarmc,
|
|
bp.zczbhhzbapzbh,
|
|
sum(ipp.inCount) as inCount,
|
|
sum(ipp.outCount) as outCount,
|
|
sum(ipp.reCount) as reCount,
|
|
basic_corp.name supName,
|
|
ipp.supId,
|
|
auth_dept.name deptName,
|
|
auth_warehouse.name invName,
|
|
as.name spaceName,
|
|
ipp.deptCode,
|
|
ipp.invCode
|
|
from inv_product_detail ipp
|
|
inner join basic_udirel on ipp.relId = basic_udirel.id
|
|
inner join basic_products bp on basic_udirel.uuid = bp.uuid
|
|
left join basic_corp on ipp.supId = basic_corp.erpId
|
|
left join auth_dept on auth_dept.code = ipp.deptCode
|
|
left join auth_warehouse on auth_warehouse.code = ipp.invCode
|
|
left join auth_space `as` on ipp.invSpaceCode = `as`.code
|
|
<where>
|
|
<if test="cpmctymc != null and cpmctymc != ''">
|
|
AND bp.cpmctymc like concat('%', #{cpmctymc}, '%')
|
|
</if>
|
|
<if test="nameCode != null and nameCode != ''">
|
|
AND ipp.nameCode like concat('%', #{nameCode}, '%')
|
|
</if>
|
|
<if test="relIdFk != null and relIdFk != ''">
|
|
AND ipp.relId = #{relIdFk}
|
|
</if>
|
|
<if test="ggxh != null and ggxh != ''">
|
|
AND bp.ggxh like concat('%', #{ggxh}, '%')
|
|
</if>
|
|
<if test="batchNo != null and batchNo != ''">
|
|
AND ipp.batchNo like concat('%', #{batchNo}, '%')
|
|
</if>
|
|
<if test="productionDate != null and productionDate != ''">
|
|
AND ipp.produceDate = #{productionDate}
|
|
</if>
|
|
<if test="expireDate != null and expireDate != ''">
|
|
AND ipp.expireDate = #{expireDate}
|
|
</if>
|
|
<if test="ylqxzcrbarmc != null and ylqxzcrbarmc != ''">
|
|
AND bp.ylqxzcrbarmc like concat('%', #{ylqxzcrbarmc}, '%')
|
|
</if>
|
|
<if test="zczbhhzbapzbh != null and zczbhhzbapzbh != ''">
|
|
AND bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
|
|
</if>
|
|
<if test="supId != null and supId != ''">
|
|
AND ipp.supId = #{supId}
|
|
</if>
|
|
<if test="deptCode != null and deptCode != ''">
|
|
AND ipp.deptCode = #{deptCode}
|
|
</if>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND ipp.invCode = #{invCode}
|
|
</if>
|
|
<if test="invSpaceCode != null and invSpaceCode != ''">
|
|
AND ipp.invSpaceCode = #{invSpaceCode}
|
|
</if>
|
|
|
|
<if test="invCodes != null and invCodes.size() != 0">
|
|
AND ipp.invCode in
|
|
<foreach collection="invCodes" item="item" index="index" open="(" close=")" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
</if>
|
|
</where>
|
|
GROUP BY ipp.relId, ipp.batchNo
|
|
order by ipp.updateTime desc
|
|
</select>
|
|
|
|
<select id="filterInvProductDetailList" resultType="com.glxp.api.entity.inv.InvProductDetailEntity"
|
|
parameterType="com.glxp.api.req.inv.FilterInvProductDetailRequest">
|
|
select *
|
|
from inv_product_detail
|
|
<where>
|
|
<if test="code != null and code != ''">
|
|
AND code = #{code}
|
|
</if>
|
|
<if test="mainAction != null and mainAction != ''">
|
|
AND mainAction = #{mainAction}
|
|
</if>
|
|
<if test="action != null and action != ''">
|
|
AND action = #{action}
|
|
</if>
|
|
<if test="supId != null and supId != ''">
|
|
and supId = #{supId}
|
|
</if>
|
|
<if test="relId != null and relId != ''">
|
|
AND relId = #{relId}
|
|
</if>
|
|
<if test="nameCode != null and nameCode != ''">
|
|
AND nameCode like concat('%', #{nameCode}, '%')
|
|
</if>
|
|
<if test="orderId != null and orderId != ''">
|
|
AND orderId = #{orderId}
|
|
</if>
|
|
<if test="deptCode != null and deptCode != ''">
|
|
AND deptCode = #{deptCode}
|
|
</if>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND invCode = #{invCode}
|
|
</if>
|
|
<if test="invSpaceCode != null and invSpaceCode != ''">
|
|
AND invSpaceCode = #{invSpaceCode}
|
|
</if>
|
|
<if test="batchNo != null and batchNo != ''">
|
|
AND batchNo = #{batchNo}
|
|
</if>
|
|
<if test="batchNo == null and batchNo == ''">
|
|
AND batchNo is null
|
|
</if>
|
|
<if test="productionDate != null and productionDate != ''">
|
|
AND produceDate = #{productionDate}
|
|
</if>
|
|
<if test="expireDate != null and expireDate != ''">
|
|
AND expireDate = #{expireDate}
|
|
</if>
|
|
<if test="productIdList != null and productIdList.size() != 0">
|
|
AND relId in
|
|
<foreach collection="productIdList" item="item" index="index" open="(" close=")" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
</if>
|
|
<if test="updateTime != null and updateTime != ''">
|
|
AND updateTime <![CDATA[ <= ]]> #{updateTime}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<delete id="deleteInvProductDetail">
|
|
delete
|
|
from inv_product_detail
|
|
<where>
|
|
<if test="relId != null and relId != ''">
|
|
AND relId = #{relId}
|
|
</if>
|
|
<if test="batchNo != null and batchNo != '' and batchNo != 'empty'">
|
|
AND batchNo = #{batchNo}
|
|
</if>
|
|
<if test="batchNo == 'empty'">
|
|
AND batchNo is null
|
|
</if>
|
|
<if test="supId != null and supId != ''">
|
|
AND supId = #{supId}
|
|
</if>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND invCode = #{invCode}
|
|
</if>
|
|
</where>
|
|
</delete>
|
|
|
|
<select id="selectPlaceDetailList" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
|
|
select pd.id,
|
|
pd.code,
|
|
pd.relId,
|
|
pd.batchNo,
|
|
pd.produceDate productionDate,
|
|
pd.expireDate,
|
|
bp.ggxh,
|
|
bp.cpmctymc productName,
|
|
bp.zczbhhzbapzbh,
|
|
bp.ylqxzcrbarmc,
|
|
bp.nameCode,
|
|
bp.manufactory,
|
|
ad.name deptName,
|
|
aw.name invName,
|
|
sp.name invSpaceName
|
|
from inv_product_detail pd
|
|
left join basic_udirel bu on pd.relId = bu.id
|
|
left join basic_products bp on bp.uuid = bu.uuid
|
|
left join auth_dept ad on pd.deptCode = ad.code
|
|
left join auth_warehouse aw on pd.invCode = aw.code
|
|
left join auth_space sp on pd.invSpaceCode = sp.code
|
|
and sp.invStorageCode = pd.deptCode and sp.invWarehouseCode = pd.invCode
|
|
<where>
|
|
<if test="deptCode != null and deptCode != ''">
|
|
AND pd.deptCode = #{deptCode}
|
|
</if>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND pd.invCode = #{invCode}
|
|
</if>
|
|
<if test="invSpaceCode != null and invSpaceCode != ''">
|
|
AND pd.invSpaceCode = #{invSpaceCode}
|
|
</if>
|
|
<if test="invSpaceCode == null or invSpaceCode == ''">
|
|
AND (pd.invSpaceCode is null or pd.invSpaceCode = '')
|
|
</if>
|
|
</where>
|
|
group by pd.code
|
|
</select>
|
|
|
|
<update id="batchBindSpace">
|
|
update inv_product_detail
|
|
set invSpaceCode = #{invSpaceCode}
|
|
where id in
|
|
<foreach collection="ids" index="index" item="item" open="(" close=")" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
</update>
|
|
|
|
<select id="selectByInvAndCode" resultType="com.glxp.api.entity.inv.InvProductDetailEntity">
|
|
select *
|
|
from inv_product_detail
|
|
where deptCode = #{deptCode}
|
|
and invCode = #{invCode}
|
|
and code = #{code}
|
|
limit 1
|
|
</select>
|
|
|
|
<select id="selectSupIdByCode" resultType="java.lang.String">
|
|
select supId
|
|
from inv_product_detail
|
|
where code = #{code}
|
|
</select>
|
|
|
|
<select id="selectCountOrderCodes" resultType="java.lang.String">
|
|
select distinct code
|
|
from inv_product_detail
|
|
<where>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND invCode = #{invCode}
|
|
</if>
|
|
<if test="invSpaceCode != null and invSpaceCode != ''">
|
|
AND invSpaceCode = #{invSpaceCode}
|
|
</if>
|
|
<if test="relId != null">
|
|
AND relId = #{relId}
|
|
</if>
|
|
<if test="batchNo != null and batchNo != ''">
|
|
AND batchNo = #{batchNo}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<select id="getInvProductInfo" resultType="com.glxp.api.res.inv.InvPlaceDetailResponse">
|
|
select ipd.code,
|
|
ipd.relId,
|
|
ipd.batchNo,
|
|
ipd.serialNo,
|
|
ipd.invSpaceCode,
|
|
ipd.invCode,
|
|
bp.cpmctymc productName,
|
|
bp.ggxh,
|
|
bp.measname,
|
|
bp.zczbhhzbapzbh,
|
|
bp.manufactory,
|
|
(select name from auth_space s where s.code = ipd.invSpaceCode) invSpaceName,
|
|
(select name from basic_corp bc where bc.erpId = ipd.supId) supName
|
|
from inv_product_detail ipd
|
|
left join basic_udirel bu on bu.id = ipd.relId
|
|
left join basic_products bp on bp.uuid = bu.uuid
|
|
<where>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND ipd.invCode = #{invCode}
|
|
</if>
|
|
<if test="invSpaceCode != null and invSpaceCode != ''">
|
|
AND ipd.invSpaceCode = #{invSpaceCode}
|
|
</if>
|
|
<if test="code != null and code != ''">
|
|
AND ipd.code = #{code}
|
|
</if>
|
|
<if test="orderId != null and orderId != ''">
|
|
AND ipd.orderId = #{orderId}
|
|
</if>
|
|
</where>
|
|
group by ipd.id
|
|
</select>
|
|
|
|
<select id="getInvPlaceOrderList" resultType="com.glxp.api.res.inout.IoOrderResponse">
|
|
select ipd.orderId billNo,
|
|
(select name from basic_bussiness_type where action = o.action) billTypeName,
|
|
o.mainAction,
|
|
o.fromCorp,
|
|
o.corpOrderId,
|
|
o.fromType,
|
|
o.createTime,
|
|
o.auditTime,
|
|
(select employeeName from auth_user where id = o.reviewUser) reviewUserName
|
|
from inv_product_detail ipd
|
|
left join io_order o on ipd.orderId = o.billNo
|
|
<where>
|
|
<if test="invCode != null and invCode != ''">
|
|
AND ipd.invCode = #{invCode}
|
|
</if>
|
|
<if test="orderId != null and orderId != ''">
|
|
AND ipd.orderId like concat('%', #{orderId}, '%')
|
|
</if>
|
|
</where>
|
|
group by ipd.orderId
|
|
</select>
|
|
|
|
<select id="getInventoryQuantity" resultType="Integer">
|
|
|
|
SELECT
|
|
SUM( inCount )- SUM( outCount )
|
|
FROM
|
|
inv_product_detail ipd
|
|
WHERE
|
|
CODE = #{code}
|
|
and (invSpaceCode is null or invSpaceCode = '' )
|
|
</select>
|
|
</mapper>
|