<?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.gk.firework.Mapper.EntryDetailInfoMapper" >
|
<resultMap id="BaseResultMap" type="com.gk.firework.Domain.EntryDetailInfo" >
|
<!-- -->
|
<id column="id" property="id" jdbcType="BIGINT" />
|
<result column="entryorder" property="entryorder" jdbcType="VARCHAR" />
|
<result column="directioncode" property="directioncode" jdbcType="VARCHAR" />
|
<result column="itemcode" property="itemcode" jdbcType="VARCHAR" />
|
<result column="productname" property="productname" jdbcType="VARCHAR" />
|
<result column="boxcode" property="boxcode" jdbcType="VARCHAR" />
|
<result column="num" property="num" jdbcType="INTEGER" />
|
<result column="manufacturer" property="manufacturer" jdbcType="VARCHAR" />
|
<result column="createddate" property="createddate" jdbcType="TIMESTAMP" />
|
<result column="modifieddate" property="modifieddate" jdbcType="TIMESTAMP" />
|
<result column="createdby" property="createdby" jdbcType="VARCHAR" />
|
</resultMap>
|
<sql id="Base_Column_List" >
|
<!-- -->
|
id, entryorder, directioncode, productname, num, boxcode, manufacturer, createddate, modifieddate, createdby
|
</sql>
|
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
|
<!-- -->
|
select
|
<include refid="Base_Column_List" />
|
from entrydetail
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<select id="selectDetailPage" resultType="java.util.Map">
|
select
|
ed.id,
|
ed.directioncode,
|
ed.itemcode,
|
ed.productname,
|
case length(ed.directioncode) when 19 then concat(ed.num,"挂") else concat(ed.num,"挂/箱") end num,
|
product.type,
|
product.level,
|
product.explosivecontent,
|
product.specification,
|
product.boxnumber
|
from entrydetail as ed
|
left join product as product on product.directioncode = ed.itemcode and product.isdel = 0
|
where ed.entryorder = #{params.code}
|
<if test="params.starttime != null and params.starttime != ''">
|
and ed.createddate >= #{params.starttime}
|
</if>
|
<if test="params.endtime != null and params.endtime != ''">
|
and ed.createddate <= #{params.endtime}
|
</if>
|
order by ed.createddate
|
</select>
|
|
<select id="getEntryNumByCondition" resultType="decimal">
|
select
|
sum(detail.num/product.boxnumber)
|
from entrydetail as detail
|
left join entryorder as entry on entry.`code` = detail.entryorder
|
left join product on detail.itemcode = product.directioncode
|
<where>
|
entry.type = 1
|
and product.isdel = 0
|
and entry.entrydate >= #{condition.beginDate}
|
and entry.entrydate <= #{condition.endDate}
|
and entry.companynumber = #{condition.companyNumber}
|
<if test="condition.itemCode != null">
|
and product.directioncode = #{condition.itemCode}
|
</if>
|
</where>
|
</select>
|
<select id="getReturnNumByCondition" resultType="decimal">
|
select
|
sum(detail.num/product.boxnumber)
|
from entrydetail as detail
|
left join entryorder as entry on entry.`code` = detail.entryorder
|
left join product on detail.itemcode = product.directioncode
|
<where>
|
entry.type = 2
|
and product.isdel = 0
|
and entry.entrydate >= #{condition.beginDate}
|
and entry.entrydate <= #{condition.endDate}
|
and entry.companynumber = #{condition.companyNumber}
|
<if test="condition.itemCode != null">
|
and product.directioncode = #{condition.itemCode}
|
</if>
|
</where>
|
</select>
|
<select id="selectDetailExport" resultType="java.util.Map">
|
select
|
entryorder.code,
|
entryorder.unit,
|
entryorder.transportcert,
|
ed.id,
|
ed.directioncode,
|
ed.itemcode,
|
ed.productname,
|
case length(ed.directioncode) when 19 then concat(ed.num,"件") else concat(ed.num,"件/箱") end num,
|
product.type,
|
product.level,
|
product.explosivecontent,
|
product.specification
|
from entrydetail as ed
|
left join entryorder as entryorder on entryorder.code = ed.entryorder
|
left join product as product on product.directioncode = ed.itemcode
|
where ed.entryorder = #{code}
|
and product.isdel = 0
|
order by ed.createddate
|
</select>
|
<select id="selectEnterpriseTypeEntry" resultType="java.util.Map">
|
|
select
|
alldata.*,
|
round(
|
<trim suffixOverrides="+">
|
<foreach collection="list" item="item" index="index">
|
alldata.num_${item} +
|
</foreach>
|
</trim>
|
,2) totalcol
|
|
from (
|
|
select
|
tmptmptmp.city name,
|
tmptmptmp.enterprisename
|
<foreach collection="list" item="item" index="index">
|
,MAX(
|
CASE tmptmptmp.type
|
WHEN #{item} THEN
|
round(tmptmptmp.num,2)
|
ELSE
|
0
|
END
|
) num_${item}
|
</foreach>
|
|
from (
|
|
select
|
tmptmp.city,tmptmp.enterprisename,tmptmp.type,sum(tmptmp.num) num
|
from
|
(
|
SELECT
|
e.city,e.enterprisename,eo.companynumber,p.type,sum(ed.num) /p.
|
boxnumber num
|
FROM
|
entrydetail AS ed
|
LEFT JOIN
|
entryorder AS eo ON eo.`code` = ed.entryorder
|
LEFT JOIN product AS p ON p.directioncode = ed.itemcode
|
LEFT JOIN
|
enterprise AS e ON eo.companynumber = e.enterprisenumber
|
where
|
e.
|
enterprisestatus = 'ON'
|
and p.isdel = 0
|
and e.validflag = 1
|
<if test="params.starttime != null and params.starttime != ''">
|
and eo.createddate >= #{params.starttime}
|
</if>
|
<if test="params.endtime != null and params.endtime != ''">
|
and eo.createddate < #{params.endtime}
|
</if>
|
<if test="params.safetysupervision != null and params.safetysupervision != ''">
|
and e.safetysupervision = #{params.safetysupervision }
|
</if>
|
<if test="params.enterprisename != null and params.enterprisename != ''">
|
and e.enterprisename like concat("%",#{params.enterprisename },"%")
|
</if>
|
<if test="params.province != null and params.province != ''">
|
and e.province = #{params.province }
|
</if>
|
<if test="params.city != null and params.city != ''">
|
and e.city = #{params.city }
|
</if>
|
<if test="params.district != null and params.district != ''">
|
and e.district = #{params.district }
|
</if>
|
GROUP BY
|
eo.companynumber,ed.itemcode
|
|
) as tmptmp
|
group by tmptmp.companynumber,tmptmp.type
|
|
|
|
) as tmptmptmp
|
group by tmptmptmp.enterprisename)
|
|
as alldata
|
|
|
|
</select>
|
<select id="selectAllType" resultType="java.util.Map">
|
select
|
lasttmp.*
|
,
|
round(
|
<trim suffixOverrides="+">
|
<foreach collection="list" item="item" index="index">
|
ifnull(lasttmp.num_${item},0) +
|
</foreach>
|
</trim>
|
,2) totalcol
|
from (
|
select
|
'合计' name
|
<foreach collection="list" item="item" index="index">
|
,MAX(
|
CASE tmptmptmp.type
|
WHEN #{item} THEN
|
round(tmptmptmp.num,2)
|
ELSE
|
0
|
END
|
) num_${item}
|
</foreach>
|
from (
|
|
|
select
|
tmptmp.type,sum(tmptmp.num) num
|
from
|
(
|
SELECT
|
e.city,eo.companynumber,p.type,sum(ed.num) /p.
|
boxnumber num
|
FROM
|
entrydetail AS ed
|
LEFT JOIN
|
entryorder AS eo ON eo.`code` = ed.entryorder
|
LEFT JOIN product AS p ON p.directioncode = ed.itemcode
|
LEFT JOIN
|
enterprise AS e ON eo.companynumber = e.enterprisenumber
|
where
|
e.
|
enterprisestatus = 'ON'
|
and p.isdel = 0
|
and e.validflag = 1
|
<if test="params.starttime != null and params.starttime != ''">
|
and eo.createddate >= #{params.starttime}
|
</if>
|
<if test="params.endtime != null and params.endtime != ''">
|
and eo.createddate < #{params.endtime}
|
</if>
|
<if test="params.safetysupervision != null and params.safetysupervision != ''">
|
and e.safetysupervision = #{params.safetysupervision }
|
</if>
|
<if test="params.enterprisename != null and params.enterprisename != ''">
|
and e.enterprisename like concat("%",#{params.enterprisename },"%")
|
</if>
|
<if test="params.province != null and params.province != ''">
|
and e.province = #{params.province }
|
</if>
|
<if test="params.city != null and params.city != ''">
|
and e.city = #{params.city }
|
</if>
|
<if test="params.district != null and params.district != ''">
|
and e.district = #{params.district }
|
</if>
|
GROUP BY
|
eo.companynumber,ed.itemcode
|
|
) as tmptmp
|
group by tmptmp.type
|
|
|
) as tmptmptmp
|
) as lasttmp
|
|
</select>
|
<select id="selectCityTypeEntry" resultType="java.util.Map">
|
select
|
citys.name
|
<foreach collection="list" item="item" index="index">
|
,round(ifnull(num_${item},0),2) num_${item}
|
</foreach>,
|
ifnull(round(
|
<trim suffixOverrides="+">
|
<foreach collection="list" item="item" index="index">
|
alldata.num_${item} +
|
</foreach>
|
</trim>
|
,2),0) totalcol
|
from (
|
select district.name
|
from district
|
where parentcode =(
|
select district.code
|
from district as district
|
where district.name = #{params.province}
|
and type = 1)
|
and type =2
|
) as citys
|
|
left join (
|
select
|
tmptmptmp.city
|
<foreach collection="list" item="item" index="index">
|
,MAX(
|
CASE tmptmptmp.type
|
WHEN #{item} THEN
|
tmptmptmp.num
|
ELSE
|
0
|
END
|
) num_${item}
|
</foreach>
|
|
from (
|
|
select
|
tmptmp.city,tmptmp.type,sum(tmptmp.num) num
|
from
|
(
|
SELECT
|
e.city,eo.companynumber,p.type,sum(ed.num) /p.
|
boxnumber num
|
FROM
|
entrydetail AS ed
|
LEFT JOIN
|
entryorder AS eo ON eo.`code` = ed.entryorder
|
LEFT JOIN product AS p ON p.directioncode = ed.itemcode
|
LEFT JOIN
|
enterprise AS e ON eo.companynumber = e.enterprisenumber
|
where
|
e.
|
enterprisestatus = 'ON'
|
and p.isdel = 0
|
and e.validflag = 1
|
<if test="params.starttime != null and params.starttime != ''">
|
and eo.createddate >= #{params.starttime}
|
</if>
|
<if test="params.endtime != null and params.endtime != ''">
|
and eo.createddate < #{params.endtime}
|
</if>
|
<if test="params.safetysupervision != null and params.safetysupervision != ''">
|
and e.safetysupervision = #{params.safetysupervision }
|
</if>
|
<if test="params.enterprisename != null and params.enterprisename != ''">
|
and e.enterprisename like concat("%",#{params.enterprisename },"%")
|
</if>
|
GROUP BY
|
eo.companynumber,ed.itemcode
|
|
) as tmptmp
|
group by tmptmp.city,tmptmp.type
|
) as tmptmptmp
|
group by tmptmptmp.city
|
) as alldata
|
on citys.name = alldata.city
|
|
</select>
|
</mapper>
|