From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: 星期一, 19 六月 2023 14:22:45 +0800
Subject: [PATCH] 描述

---
 src/main/java/com/gk/firework/Mapper/mybatis/DeliveryDetailInfoMapper.xml |  342 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 342 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gk/firework/Mapper/mybatis/DeliveryDetailInfoMapper.xml b/src/main/java/com/gk/firework/Mapper/mybatis/DeliveryDetailInfoMapper.xml
new file mode 100644
index 0000000..2969230
--- /dev/null
+++ b/src/main/java/com/gk/firework/Mapper/mybatis/DeliveryDetailInfoMapper.xml
@@ -0,0 +1,342 @@
+<?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.DeliveryDetailInfoMapper" >
+  <resultMap id="BaseResultMap" type="com.gk.firework.Domain.DeliveryDetailInfo" >
+    <!--          -->
+    <id column="id" property="id" jdbcType="BIGINT" />
+    <result column="deliverycode" property="deliverycode" jdbcType="VARCHAR" />
+    <result column="itemcode" property="itemcode" jdbcType="VARCHAR" />
+    <result column="itemname" property="itemname" jdbcType="VARCHAR" />
+    <result column="directioncode" property="directioncode" jdbcType="VARCHAR" />
+    <result column="createat" property="createat" jdbcType="TIMESTAMP" />
+    <result column="createby" property="createby" jdbcType="VARCHAR" />
+    <result column="num" property="num" jdbcType="INTEGER" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    <!--          -->
+    id, deliverycode, itemcode, itemname, directioncode, createat, createby, num
+  </sql>
+    <select id="selectDetailPage" resultType="java.util.Map">
+      select
+      dd.id,
+      dd.itemcode,
+      dd.itemname,
+      dd.directioncode,
+      case length(dd.directioncode)  when 19 then  concat(dd.num,"挂") else concat(dd.num,"挂/箱") end num,
+      product.type,
+      product.level,
+      product.explosivecontent,
+      product.specification,
+      product.type,
+      product.level,
+      product.boxnumber,
+      product.explosivecontent,
+      product.specification
+      from deliverydetail as dd
+      left join product as product on product.directioncode = dd.itemcode and product.isdel = 0
+      where dd.deliverycode = #{params.code}
+      <if test="params.starttime != null and params.starttime != ''">
+        and dd.createat &gt;= #{params.starttime}
+      </if>
+      <if test="params.endtime != null and params.endtime != ''">
+        and dd.createat &lt;= #{params.endtime}
+      </if>
+      order by dd.createat
+    </select>
+  <select id="selectDetailExport" resultType="java.util.Map">
+    select
+      deliveryorder.ordercode,
+      deliveryorder.shop,
+      deliveryorder.transportcert,
+      dd.id,
+      dd.directioncode,
+      dd.itemcode,
+      dd.itemname,
+      case length(dd.directioncode)  when 19 then  concat(dd.num,"件") else concat(dd.num,"件/箱") end num,
+      product.type,
+      product.level,
+      product.explosivecontent,
+      product.specification
+      from deliverydetail as dd
+      left join deliveryorder as deliveryorder on deliveryorder.ordercode = dd.deliverycode
+      left join product as product on product.directioncode = dd.itemcode and product.isdel = 0
+      where dd.deliverycode = #{code}
+      order by dd.createat
+  </select>
+    <select id="selectEnterpriseDeliveryNumber" resultType="java.math.BigDecimal">
+      SELECT
+      IFNULL(SUM( deliverynum ),0)
+      FROM
+      (
+      SELECT
+      SUM( dd.num )/ p.boxnumber AS deliverynum
+      FROM
+      deliverydetail AS dd
+      LEFT JOIN deliveryorder AS do ON do.`ordercode` = dd.deliverycode
+      LEFT JOIN product AS p ON p.directioncode = dd.itemcode and p.isdel = 0
+      <where>
+        do.companynumber = #{enterprisenumber}
+        <if test="starttime != null and starttime != ''">
+          and do.createat &gt;= #{starttime}
+        </if>
+        <if test="endtime != null and endtime != ''">
+          and do.createat &lt;= #{endtime}
+        </if>
+      </where>
+      GROUP BY
+      dd.itemcode
+      ) temp
+
+    </select>
+    <select id="selectEnterpriseTypeDelivery" 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,do.companynumber,p.type,sum( dd.num ) /p.
+        boxnumber num
+        FROM
+        deliverydetail AS dd
+        LEFT JOIN
+        deliveryorder AS do ON do.`ordercode` = dd.deliverycode
+        LEFT JOIN product AS p ON p.directioncode = dd.itemcode
+        LEFT JOIN
+        enterprise AS e ON do.companynumber = e.enterprisenumber
+        where
+        e.
+        enterprisestatus = 'ON'
+        and p.isdel = 0
+        and e.validflag = 1
+        <if test="params.starttime != null and params.starttime != ''">
+            and do.createat &gt;= #{params.starttime}
+        </if>
+        <if test="params.endtime != null and params.endtime != ''">
+            and do.createat &lt; #{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
+        do.companynumber,dd.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,do.companynumber,p.type,sum(dd.num) /p.
+          boxnumber num
+          FROM
+          deliverydetail AS dd
+          LEFT JOIN
+          deliveryorder AS do ON do.`ordercode` = dd.deliverycode
+          LEFT JOIN product AS p ON p.directioncode = dd.itemcode
+          LEFT JOIN
+          enterprise AS e ON do.companynumber = e.enterprisenumber
+          where
+          e.
+          enterprisestatus = 'ON'
+          and p.isdel = 0
+          and e.validflag = 1
+          <if test="params.starttime != null and params.starttime != ''">
+              and do.createat &gt;= #{params.starttime}
+          </if>
+          <if test="params.endtime != null and params.endtime != ''">
+              and do.createat &lt; #{params.endtime}
+          </if>
+          <if test="params.province != null and params.province != ''">
+              and e.province = #{params.province }
+          </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
+          do.companynumber,dd.itemcode
+
+          ) as tmptmp
+          group by tmptmp.type
+
+
+          ) as tmptmptmp
+          ) as lasttmp
+
+  </select>
+    <select id="selectCityTypeDelivery" 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,do.companynumber,p.type,sum(dd.num) /p.
+        boxnumber num
+        FROM
+        deliverydetail AS dd
+        LEFT JOIN
+        deliveryorder AS do ON do.`ordercode` = dd.deliverycode
+        LEFT JOIN product AS p ON p.directioncode = dd.itemcode
+        LEFT JOIN
+        enterprise AS e ON do.companynumber = e.enterprisenumber
+        where
+        e.
+        enterprisestatus = 'ON'
+        and p.isdel = 0
+        and e.validflag = 1
+        <if test="params.starttime != null and params.starttime != ''">
+            and do.createat &gt;= #{params.starttime}
+        </if>
+        <if test="params.endtime != null and params.endtime != ''">
+            and do.createat &lt; #{params.endtime}
+        </if>
+        <if test="params.province != null and params.province != ''">
+            and e.province = #{params.province }
+        </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
+        do.companynumber,dd.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