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 >= #{params.starttime} + </if> + <if test="params.endtime != null and params.endtime != ''"> + and dd.createat <= #{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 >= #{starttime} + </if> + <if test="endtime != null and endtime != ''"> + and do.createat <= #{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 >= #{params.starttime} + </if> + <if test="params.endtime != null and params.endtime != ''"> + and do.createat < #{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 >= #{params.starttime} + </if> + <if test="params.endtime != null and params.endtime != ''"> + and do.createat < #{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 >= #{params.starttime} + </if> + <if test="params.endtime != null and params.endtime != ''"> + and do.createat < #{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