From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +0800
Subject: [PATCH] 描述
---
src/main/java/com/gk/firework/Mapper/mybatis/EntryDetailInfoMapper.xml | 354 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 354 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Mapper/mybatis/EntryDetailInfoMapper.xml b/src/main/java/com/gk/firework/Mapper/mybatis/EntryDetailInfoMapper.xml
new file mode 100644
index 0000000..ac8639c
--- /dev/null
+++ b/src/main/java/com/gk/firework/Mapper/mybatis/EntryDetailInfoMapper.xml
@@ -0,0 +1,354 @@
+<?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>
--
Gitblit v1.9.2