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/StockInfoMapper.xml | 1829 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,829 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Mapper/mybatis/StockInfoMapper.xml b/src/main/java/com/gk/firework/Mapper/mybatis/StockInfoMapper.xml
new file mode 100644
index 0000000..9102a9c
--- /dev/null
+++ b/src/main/java/com/gk/firework/Mapper/mybatis/StockInfoMapper.xml
@@ -0,0 +1,1829 @@
+<?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.StockInfoMapper">
+ <resultMap id="BaseResultMap" type="com.gk.firework.Domain.StockInfo">
+ <!-- -->
+ <id column="id" property="id" jdbcType="BIGINT"/>
+ <result column="productid" property="productid" jdbcType="BIGINT"/>
+ <result column="directioncode" property="directioncode" jdbcType="VARCHAR"/>
+ <result column="directionboxcode" property="directionboxcode" jdbcType="VARCHAR"/>
+ <result column="num" property="num" jdbcType="INTEGER"/>
+ <result column="owner" property="owner" jdbcType="VARCHAR"/>
+ <result column="status" property="status" jdbcType="VARCHAR"/>
+ <result column="indate" property="indate" jdbcType="TIMESTAMP"/>
+ <result column="outdate" property="outdate" jdbcType="TIMESTAMP"/>
+ <result column="operator" property="operator" jdbcType="VARCHAR"/>
+ <result column="type" property="type" jdbcType="TINYINT"/>
+ <result column="remark" property="remark" jdbcType="VARCHAR"/>
+ <result column="createdby" property="createdby" jdbcType="VARCHAR"/>
+ <result column="createddate" property="createddate" jdbcType="TIMESTAMP"/>
+ <result column="modifiedby" property="modifiedby" jdbcType="VARCHAR"/>
+ <result column="modifieddate" property="modifieddate" jdbcType="TIMESTAMP"/>
+ <result column="flag" property="flag" jdbcType="TINYINT"/>
+ </resultMap>
+ <resultMap id="StockVoResultMap" type="com.gk.firework.Domain.Vo.StockVo"/>
+ <sql id="Base_Column_List">
+ <!-- -->
+ id, productid, directioncode, directionboxcode, num, owner, status, indate, outdate,
+ operator, type, remark, createdby, createddate, modifiedby, modifieddate, flag
+ </sql>
+ <select id="selectStockByDirection" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from stock${slice}
+ <where>
+ directioncode = #{directionCode}
+ </where>
+ for update
+ </select>
+
+ <select id="selectStockByDireAndUser" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from stock${slice}
+ <where>
+ directioncode = #{directionCode}
+ and (owner = #{companyId} or status = '已售出')
+ </where>
+ </select>
+ <select id="selectEarlyWarn" resultType="com.gk.firework.Domain.StockInfo">
+ SELECT stock.`owner`,
+ SUM(stock.stocknum) as num
+ FROM(
+ select stock.`owner`,sum(stock.num/product.boxnumber) stocknum
+ from stock as stock,product as product
+ where stock.productid = product.id
+ and stock.`status` =''
+ GROUP BY stock.`owner`
+ <foreach collection="slices" item="item" index="index">
+ UNION ALL
+ select stock.`owner`,sum(stock.num/product.boxnumber) stocknum
+ from stock_slice${item} as stock,product as product
+ where stock.productid = product.id
+ and stock.`status` =''
+ GROUP BY stock.`owner`
+ </foreach>
+ ) as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ where enterprise.safetysupervision = #{enterprisetype}
+ GROUP BY stock.`owner`
+ HAVING SUM(stock.stocknum) >= #{min} and SUM(stock.stocknum) < #{max}
+ </select>
+ <select id="selectAlarm" resultType="com.gk.firework.Domain.StockInfo">
+ SELECT stock.`owner`,
+ SUM(stock.stocknum) as num
+ FROM(
+ select stock.`owner`,sum(stock.num/product.boxnumber) stocknum
+ from stock as stock,product as product
+ where stock.productid = product.id
+ and stock.`status` =''
+ GROUP BY stock.`owner`
+ <foreach collection="slices" item="item" index="index">
+ UNION ALL
+ select stock.`owner`,sum(stock.num/product.boxnumber) stocknum
+ from stock_slice${item} as stock,product as product
+ where stock.productid = product.id
+ and stock.`status` =''
+ GROUP BY stock.`owner`
+ </foreach>
+ ) as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ where enterprise.safetysupervision = #{enterprisetype}
+ GROUP BY stock.`owner`
+ HAVING SUM(stock.stocknum) >= #{max}
+ </select>
+ <insert id="insertStockInfo">
+ insert into stock${slice}
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="stockInfo.id != null">
+ id,
+ </if>
+ <if test="stockInfo.productid != null">
+ productid,
+ </if>
+ <if test="stockInfo.directioncode != null">
+ directioncode,
+ </if>
+ <if test="stockInfo.directionboxcode != null">
+ directionboxcode,
+ </if>
+ <if test="stockInfo.num != null">
+ num,
+ </if>
+ <if test="stockInfo.owner != null">
+ owner,
+ </if>
+ <if test="stockInfo.status != null">
+ status,
+ </if>
+ <if test="stockInfo.indate != null">
+ indate,
+ </if>
+ <if test="stockInfo.outdate != null">
+ outdate,
+ </if>
+ <if test="stockInfo.operator != null">
+ operator,
+ </if>
+ <if test="stockInfo.type != null">
+ type,
+ </if>
+ <if test="stockInfo.remark != null">
+ remark,
+ </if>
+ <if test="stockInfo.createdby != null">
+ createdby,
+ </if>
+ <if test="stockInfo.createddate != null">
+ createddate,
+ </if>
+ <if test="stockInfo.modifiedby != null">
+ modifiedby,
+ </if>
+ <if test="stockInfo.modifieddate != null">
+ modifieddate,
+ </if>
+ <if test="stockInfo.flag != null">
+ flag,
+ </if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="stockInfo.id != null">
+ #{stockInfo.id,jdbcType=BIGINT},
+ </if>
+ <if test="stockInfo.productid != null">
+ #{stockInfo.productid,jdbcType=BIGINT},
+ </if>
+ <if test="stockInfo.directioncode != null">
+ #{stockInfo.directioncode,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.directionboxcode != null">
+ #{stockInfo.directionboxcode,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.num != null">
+ #{stockInfo.num,jdbcType=INTEGER},
+ </if>
+ <if test="stockInfo.owner != null">
+ #{stockInfo.owner,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.status != null">
+ #{stockInfo.status,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.indate != null">
+ #{stockInfo.indate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.outdate != null">
+ #{stockInfo.outdate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.operator != null">
+ #{stockInfo.operator,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.type != null">
+ #{stockInfo.type,jdbcType=TINYINT},
+ </if>
+ <if test="stockInfo.remark != null">
+ #{stockInfo.remark,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.createdby != null">
+ #{stockInfo.createdby,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.createddate != null">
+ #{stockInfo.createddate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.modifiedby != null">
+ #{stockInfo.modifiedby,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.modifieddate != null">
+ #{stockInfo.modifieddate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.flag != null">
+ #{stockInfo.flag,jdbcType=TINYINT},
+ </if>
+ </trim>
+ <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+ SELECT LAST_INSERT_ID()
+ </selectKey>
+ </insert>
+ <update id="updateStockInfo" parameterType="com.gk.firework.Domain.StockInfo">
+ <!-- -->
+ update stock${slice}
+ <set>
+ <if test="stockInfo.productid != null">
+ productid = #{stockInfo.productid,jdbcType=BIGINT},
+ </if>
+ <if test="stockInfo.directioncode != null">
+ directioncode = #{stockInfo.directioncode,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.directionboxcode != null">
+ directionboxcode = #{stockInfo.directionboxcode,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.num != null">
+ num = #{stockInfo.num,jdbcType=INTEGER},
+ </if>
+ <if test="stockInfo.owner != null">
+ owner = #{stockInfo.owner,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.status != null">
+ status = #{stockInfo.status,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.indate != null">
+ indate = #{stockInfo.indate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.outdate != null">
+ outdate = #{stockInfo.outdate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.operator != null">
+ operator = #{stockInfo.operator,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.type != null">
+ type = #{stockInfo.type,jdbcType=TINYINT},
+ </if>
+ <if test="stockInfo.remark != null">
+ remark = #{stockInfo.remark,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.createdby != null">
+ createdby = #{stockInfo.createdby,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.createddate != null">
+ createddate = #{stockInfo.createddate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.modifiedby != null">
+ modifiedby = #{stockInfo.modifiedby,jdbcType=VARCHAR},
+ </if>
+ <if test="stockInfo.modifieddate != null">
+ modifieddate = #{stockInfo.modifieddate,jdbcType=TIMESTAMP},
+ </if>
+ <if test="stockInfo.flag != null">
+ flag = #{stockInfo.flag,jdbcType=TINYINT},
+ </if>
+ </set>
+ where id = #{stockInfo.id,jdbcType=BIGINT}
+ </update>
+ <update id="clearStock">
+ UPDATE stock${slice} AS stock
+ LEFT JOIN enterprise ON enterprise.id = stock.`owner`
+ LEFT JOIN product ON product.id = stock.productid
+ AND product.isdel = 0
+ <set>
+ stock.owner = '',
+ stock.modifieddate = #{date},
+ stock.remark = #{remark}
+ </set>
+ where
+ `status` = ''
+ AND stock.`owner` = #{owner}
+ AND enterprise.validflag = 1
+ AND enterprise.enterprisestatus = 'ON'
+ </update>
+ <update id="clearStockByItem">
+ UPDATE stock${slice} AS stock
+ LEFT JOIN enterprise ON enterprise.id = stock.`owner`
+ LEFT JOIN product ON product.id = stock.productid
+ AND product.isdel = 0
+ <set>
+ stock.owner = '',
+ stock.modifieddate = #{date},
+ stock.remark = #{remark}
+ </set>
+ where
+ `status` = ''
+ AND stock.`owner` = #{owner}
+ AND enterprise.validflag = 1
+ AND enterprise.enterprisestatus = 'ON'
+ AND product.directioncode IN
+ <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </update>
+
+ <select id="selectEnterpriseStockDataGrid" resultMap="StockVoResultMap">
+ SELECT
+ enterprise.id as `owner`,
+ IFNULL(SUM( stockNum ),0) AS stockNum,
+ enterprise.enterprisename,
+ enterprise.enterprisenumber,
+ enterprise.province,
+ enterprise.city,
+ enterprise.district
+
+ FROM(
+ SELECT
+ stock.`owner`,
+ count(1)/product.boxnumber as stockNum,
+ enterprise.enterprisename as enterpriseName,
+ enterprise.enterprisenumber as enterpriseNumber
+ FROM
+ stock as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ left join product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ <if test="condition.name != null and condition.name != ''">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+ GROUP BY `owner`,productid
+ <foreach collection="list" item="item" index="index">
+ union all
+ (
+ SELECT
+ stock.`owner`,
+ count(1)/product.boxnumber as stockNum,
+ enterprise.enterprisename as enterpriseName,
+ enterprise.enterprisenumber as enterpriseNumber
+ FROM
+ stock_slice${item} as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ <if test="condition.name != null and condition.name != ''">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+
+ </where>
+ GROUP BY `owner`,productid
+ )
+ </foreach>
+ )as temp
+ RIGHT JOIN enterprise on temp.enterpriseName = enterprise.enterprisename
+ <where>
+ 1=1
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ <if test="condition.name != null and condition.name != ''">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+ GROUP BY
+ enterprise.enterprisename
+ </select>
+
+ <select id="selectStockDataGrid" resultMap="StockVoResultMap">
+ SELECT
+ stock.productid,
+ product.directioncode as directioncode,
+ product.`name`,
+ product.explosivecontent as explosiveContent,
+ product.specification,
+ product.createddate,
+ product.boxnumber,
+ product.type AS productType,
+ product.secondarytype AS secondaryType,
+ count(1)/product.boxnumber as countNum,
+ enterprise.enterprisenumber
+ FROM
+ stock as stock
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ LEFT JOIN enterprise on enterprise.id = stock.owner
+ <where>
+ stock.`status` = ''
+ and stock.`owner` = #{condition.owner}
+ <if test="condition.name != null and condition.name != ''">
+ and product.name = #{condition.name}
+ </if>
+ <if test="condition.directionCode != null and condition.directionCode != ''">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.manufacturer != null and condition.manufacturer != ''">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and product.type = #{condition.type}
+ </if>
+ <if test="condition.secondaryType != null and condition.secondaryType != ''">
+ and product.secondarytype = #{condition.secondaryType}
+ </if>
+ </where>
+ GROUP BY stock.productid
+ <foreach collection="list" item="item" index="index">
+ union all
+ (
+ select
+ stock.productid,
+ product.directioncode,
+ product.`name`,
+ product.explosivecontent,
+ product.specification,
+ product.createddate,
+ product.boxnumber,
+ product.type AS productType,
+ product.secondarytype AS secondaryType,
+ count(1)/product.boxnumber as countNum,
+ enterprise.enterprisenumber
+ from stock_slice${item} as stock
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ LEFT JOIN enterprise on enterprise.id = stock.owner
+ <where>
+ stock.`status` = ''
+ and stock.`owner` = #{condition.owner}
+ <if test="condition.name != null and condition.name != ''">
+ and product.name = #{condition.name}
+ </if>
+ <if test="condition.directionCode != null and condition.directionCode != ''">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.manufacturer != null and condition.manufacturer != ''">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and product.type = #{condition.type}
+ </if>
+ <if test="condition.secondaryType != null and condition.secondaryType != ''">
+ and product.secondarytype = #{condition.secondaryType}
+ </if>
+ </where>
+ GROUP BY stock.productid
+ )
+ </foreach>
+ </select>
+
+ <select id="selectNoEntryCount" resultType="com.gk.firework.Domain.Vo.NoEntryVo">
+ SELECT
+ temp.enterprisename AS name,
+ COUNT(1) AS number
+ FROM(
+ SELECT
+ stock.directioncode,
+ enterprise.enterprisename
+ FROM
+ stock as stock
+ LEFT JOIN `user` on `user`.username = stock.modifiedby
+ LEFT JOIN enterprise ON enterprise.id = `user`.companyid
+ <where>
+ `owner` = ''
+ and DATE(modifieddate) = DATE_SUB(DATE(#{time}),INTERVAL 30 day)
+ </where>
+
+ <foreach collection="list" item="item" index="index">
+ union all
+ (SELECT
+ stock.directioncode,
+ enterprise.enterprisename
+ FROM
+ stock_slice${item} as stock
+ LEFT JOIN `user` on `user`.username = stock.modifiedby
+ LEFT JOIN enterprise ON enterprise.id = `user`.companyid
+ <where>
+ `owner` = ''
+ and DATE(modifieddate) = DATE_SUB(DATE(#{time}),INTERVAL #{period} day)
+ </where>)
+ </foreach>
+ )temp
+ GROUP BY temp.enterprisename
+ </select>
+ <select id="selectNoEntryDetail" resultType="com.gk.firework.Domain.Vo.StockVo">
+ SELECT
+ *
+ FROM
+ (
+ SELECT
+ stock.directioncode,
+ enterprise.enterprisename AS enterpriseName,
+ product.name,
+ stock.modifieddate
+ FROM
+ stock as stock
+ LEFT JOIN `user` on `user`.username = stock.modifiedby
+ LEFT JOIN enterprise ON enterprise.id = `user`.companyid
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `owner` = ''
+ and enterprise.id = #{condition.enterpriseid}
+ and DATE(stock.modifieddate) = DATE(#{condition.starttime})
+ </where>
+
+ <foreach collection="condition.list" item="item" index="index">
+ union all
+ (SELECT
+ stock.directioncode,
+ enterprise.enterprisename AS enterpriseName,
+ product.name,
+ stock.modifieddate
+ FROM
+ stock_slice${item} as stock
+ LEFT JOIN `user` on `user`.username = stock.modifiedby
+ LEFT JOIN enterprise ON enterprise.id = `user`.companyid
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `owner` = ''
+ and enterprise.id = #{condition.enterpriseid}
+ and DATE(stock.modifieddate) = DATE(#{condition.starttime})
+ </where>)
+ </foreach>
+ )temp
+ </select>
+ <select id="selectStockByProductId" resultType="com.gk.firework.Domain.StockInfo">
+ select
+ <include refid="Base_Column_List"/>
+ from stock${slice}
+ <where>
+ productid = #{id}
+ </where>
+ for update
+ </select>
+ <select id="selectStockVoByItemCode" resultType="com.gk.firework.Domain.Vo.StockVo">
+ select
+ stock.directioncode,
+ stock.owner,
+ stock.status,
+ stock.createdby,
+ stock.createddate,
+ stock.modifiedby,
+ stock.modifieddate,
+ product.name
+ from stock${condition.slice} as stock
+ left join product on product.id = stock.productid and product.isdel = 0
+ <where>
+ product.directioncode = #{condition.itemCode}
+ and stock.status = ''
+ <if test="condition.directionCode != null ">
+ and stock.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.owner != null">
+ and stock.owner = #{condition.owner}
+ </if>
+ </where>
+ </select>
+ <select id="selectEnterpriseSaleDataGrid" resultType="com.gk.firework.Domain.Vo.StockVo">
+ SELECT
+ SUM( entrynum ) AS entryNum,
+ SUM( returnnum ) AS returnNum,
+ SUM( salenum ) AS saleNum,
+ SUM( deliverynum ) AS deliveryNum,
+ SUM( returndeliverynum ) AS returnDeliveryNum,
+ companynumber as enterpriseNumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ IFNULL(SUM( num / boxnumber ),0) AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+ LEFT JOIN entryorder AS entry ON entry.companynumber = enterprise.enterprisenumber
+ and entry.type = 1
+ and entry.entrydate >= #{condition.beginDate}
+ and entry.entrydate <= #{condition.endDate}
+ LEFT JOIN entrydetail AS detail ON detail.entryorder = entry.`code`
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+
+ GROUP BY
+ enterprise.enterprisenumber,product.directioncode)entrytemp
+ GROUP BY companynumber
+
+ UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ IFNULL(SUM( num / boxnumber ),0) AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+ LEFT JOIN entryorder AS entry ON entry.companynumber = enterprise.enterprisenumber
+ and entry.type = 2
+ and entry.entrydate >= #{condition.beginDate}
+ and entry.entrydate <= #{condition.endDate}
+ LEFT JOIN entrydetail AS detail ON detail.entryorder = entry.`code`
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+
+ GROUP BY
+ enterprise.enterprisenumber,product.directioncode)entrytemp
+ GROUP BY companynumber
+ ) UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ 0 AS returnnum,
+ IFNULL(SUM( salenum ),0),
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ ( count( 1 )/ product.boxnumber ) AS salenum,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename
+ FROM
+ enterprise
+ LEFT JOIN saleorder AS sale ON sale.companynumber = enterprise.enterprisenumber
+ AND sale.createdat >= #{condition.beginDate}
+ AND sale.createdat <= #{condition.endDate}
+ LEFT JOIN saleorderdetail AS detail ON sale.`code` = detail.ordercode
+ LEFT JOIN product ON detail.itemcode = product.directioncode
+ AND product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+ GROUP BY
+ enterprise.enterprisenumber,
+ product.directioncode
+ ) stemp
+ GROUP BY
+ companynumber
+ ) UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ IFNULL(SUM( num / boxnumber ),0) AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+
+ LEFT JOIN deliveryorder AS delivery ON delivery.companynumber = enterprise.enterprisenumber
+ AND delivery.type = 1
+ AND delivery.operatat >= #{condition.beginDate}
+ AND delivery.operatat <= #{condition.endDate}
+ LEFT JOIN deliverydetail AS detail ON delivery.ordercode = detail.deliverycode
+ LEFT JOIN product ON detail.itemcode = product.directioncode
+ AND product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+ GROUP BY
+ enterprise.enterprisenumber,
+ product.directioncode)deliverytemp
+ GROUP BY
+ companynumber
+ ) UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ IFNULL(SUM( num / boxnumber ),0) AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+
+ LEFT JOIN deliveryorder AS delivery ON delivery.companynumber = enterprise.enterprisenumber
+ AND delivery.type = 2
+ AND delivery.operatat >= #{condition.beginDate}
+ AND delivery.operatat <= #{condition.endDate}
+ LEFT JOIN deliverydetail AS detail ON delivery.ordercode = detail.deliverycode
+ LEFT JOIN product ON detail.itemcode = product.directioncode
+ AND product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+ GROUP BY
+ enterprise.enterprisenumber,
+ product.directioncode )deliverytemp
+ GROUP BY
+ companynumber
+ )
+ ) temp
+ GROUP BY
+ companynumber
+ </select>
+
+ <select id="selectSaleDetailDataGrid" resultType="com.gk.firework.Domain.Vo.StockVo">
+ SELECT
+ name,
+ directioncode,
+ manufacturer,
+ boxnumber,
+ SUM( entrynum ) AS entryNum,
+ SUM( returnnum ) AS returnNum,
+ SUM( salenum ) AS saleNum,
+ SUM( deliverynum ) AS deliveryNum,
+ SUM( returndeliverynum ) AS returnDeliveryNum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ product.name,
+ product.directioncode,
+ product.manufacturer,
+ product.boxnumber,
+ sum( detail.num)/ product.boxnumber AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ entry.companynumber,
+ enterprise.enterprisename
+ FROM
+ entrydetail AS detail
+ LEFT JOIN entryorder AS entry ON entry.`code` = detail.entryorder
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ LEFT JOIN enterprise ON enterprise.enterprisenumber = entry.companynumber
+ <where>
+ entry.type = 1
+ and entry.entrydate >= #{condition.beginDate}
+ and entry.entrydate <= #{condition.endDate}
+ <if test="condition.name != null">
+ and product.name like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.manufacturer != null">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.directionCode != null">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.companyNumber != null">
+ and enterprise.enterprisenumber = #{condition.companyNumber}
+ </if>
+ </where>
+ GROUP BY
+ entry.companynumber,product.directioncode
+
+ UNION ALL
+ (
+ SELECT
+ product.name,
+ product.directioncode,
+ product.manufacturer,
+ product.boxnumber,
+ 0 AS entrynum,
+ sum( detail.num)/ product.boxnumber AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ entry.companynumber,
+ enterprise.enterprisename
+ FROM
+ entrydetail AS detail
+ LEFT JOIN entryorder AS entry ON entry.`code` = detail.entryorder
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ LEFT JOIN enterprise ON enterprise.enterprisenumber = entry.companynumber
+ <where>
+ entry.type = 2
+ and entry.entrydate >= #{condition.beginDate}
+ and entry.entrydate <= #{condition.endDate}
+ <if test="condition.name != null">
+ and product.name like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.manufacturer != null">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.directionCode != null">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.companyNumber != null">
+ and enterprise.enterprisenumber = #{condition.companyNumber}
+ </if>
+ </where>
+ GROUP BY
+ entry.companynumber,product.directioncode
+ ) UNION ALL
+ (
+ SELECT
+ product.name,
+ product.directioncode,
+ product.manufacturer,
+ product.boxnumber,
+ 0 AS entrynum,
+ 0 AS returnnum,
+ count( 1 ) / product.boxnumber AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ sale.companynumber,
+ enterprise.enterprisename
+ FROM
+ saleorderdetail AS detail
+ LEFT JOIN saleorder AS sale ON sale.`code` = detail.ordercode
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ LEFT JOIN enterprise on sale.companynumber = enterprise.enterprisenumber
+ <where>
+ 1=1
+ AND sale.createdat >= #{condition.beginDate}
+ AND sale.createdat <= #{condition.endDate}
+ <if test="condition.name != null">
+ and product.name like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.manufacturer != null">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.directionCode != null">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.companyNumber != null">
+ and enterprise.enterprisenumber = #{condition.companyNumber}
+ </if>
+ </where>
+
+ GROUP BY
+ sale.companynumber,
+ product.directioncode
+ )
+ UNION ALL
+ (
+ SELECT
+ product.name,
+ product.directioncode,
+ product.manufacturer,
+ product.boxnumber,
+ 0 AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ SUM( detail.num )/product.boxnumber AS deliverynum,
+ 0 AS returndeliverynum,
+ delivery.companynumber,
+ enterprise.enterprisename
+ FROM
+ deliverydetail AS detail
+ LEFT JOIN deliveryorder AS delivery ON delivery.ordercode = detail.deliverycode
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ LEFT JOIN enterprise on delivery.companynumber = enterprise.enterprisenumber
+ <where>
+ delivery.type = 1
+ AND delivery.operatat >= #{condition.beginDate}
+ AND delivery.operatat <= #{condition.endDate}
+ <if test="condition.name != null">
+ and product.name like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.manufacturer != null">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.directionCode != null">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.companyNumber != null">
+ and enterprise.enterprisenumber = #{condition.companyNumber}
+ </if>
+ </where>
+
+ GROUP BY
+ delivery.companynumber,
+ product.directioncode
+ ) UNION ALL
+ (
+ SELECT
+ product.name,
+ product.directioncode,
+ product.manufacturer,
+ product.boxnumber,
+ 0 AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ SUM( detail.num )/product.boxnumber AS returndeliverynum,
+ delivery.companynumber,
+ enterprise.enterprisename
+ FROM
+ deliverydetail AS detail
+ LEFT JOIN deliveryorder AS delivery ON delivery.ordercode = detail.deliverycode
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ LEFT JOIN enterprise on delivery.companynumber = enterprise.enterprisenumber
+ <where>
+ delivery.type = 2
+ AND delivery.operatat >= #{condition.beginDate}
+ AND delivery.operatat <= #{condition.endDate}
+ <if test="condition.name != null">
+ and product.name like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.manufacturer != null">
+ and product.manufacturer = #{condition.manufacturer}
+ </if>
+ <if test="condition.directionCode != null">
+ and product.directioncode = #{condition.directionCode}
+ </if>
+ <if test="condition.companyNumber != null">
+ and enterprise.enterprisenumber = #{condition.companyNumber}
+ </if>
+ </where>
+ GROUP BY
+ delivery.companynumber,
+ product.directioncode
+ )
+ ) temp
+ GROUP BY
+ companynumber,
+ directioncode
+ </select>
+ <select id="selectCurrentFireStatus" resultType="com.gk.firework.Domain.StockInfo">
+
+ select stock.*
+ from (
+ <foreach collection="codes" index="index" item="item"
+ separator="union all" >
+ <trim suffixOverrides="union all">
+ select #{item}
+ <if test="index == 0">
+ code
+ </if>
+ </trim>
+ </foreach>
+ ) as code
+ , stock${slice} as stock
+ where stock.directioncode = code.code
+ <if test="params.status != null">
+ and stock.status = #{params.status}
+ </if>
+ <if test="params.owner != null and params.owner != ''">
+ and stock.owner != ''
+ </if>
+ <if test="params.owner != null and params.owner == ''">
+ and stock.owner = ''
+ </if>
+
+
+
+
+ </select>
+ <select id="selectEnterpriseStocks" resultType="com.gk.firework.Domain.Vo.StockVo">
+ SELECT
+ `owner`,
+ SUM(stockNum) as stockNum,
+ enterpriseName,
+ enterpriseNumber,
+ province,
+ city,
+ district,
+ IFNULL(MAX(CASE type WHEN '爆竹类' THEN stockNum END ),0)firecracker ,
+ IFNULL(MAX(CASE type WHEN '喷花类' THEN stockNum END ),0)spray ,
+ IFNULL(MAX(CASE type WHEN '旋转类' THEN stockNum END ),0)rotation ,
+ IFNULL(MAX(CASE type WHEN '吐珠类' THEN stockNum END ),0)bead ,
+ IFNULL(MAX(CASE type WHEN '玩具类' THEN stockNum END ),0)toy ,
+ IFNULL(MAX(CASE type WHEN '组合烟花类' THEN stockNum END ),0)combined
+ FROM (
+
+ SELECT
+ enterprise.id as `owner`,
+ temp.type,
+ IFNULL(SUM( stockNum ),0) AS stockNum,
+ enterprise.enterprisename,
+ enterprise.enterprisenumber,
+ enterprise.province,
+ enterprise.city,
+ enterprise.district
+
+ FROM(
+ SELECT
+ stock.`owner`,
+ count(1)/product.boxnumber as stockNum,
+ enterprise.enterprisename as enterpriseName,
+ enterprise.enterprisenumber as enterpriseNumber,
+ product.type
+ FROM
+ stock as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ left join product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ <if test="condition.name != null and condition.name != ''">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+ GROUP BY `owner`,productid
+ <foreach collection="list" item="item" index="index">
+ union all
+ (
+ SELECT
+ stock.`owner`,
+ count(1)/product.boxnumber as stockNum,
+ enterprise.enterprisename as enterpriseName,
+ enterprise.enterprisenumber as enterpriseNumber,
+ product.type
+ FROM
+ stock_slice${item} as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ <if test="condition.name != null and condition.name != ''">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+
+ </where>
+ GROUP BY `owner`,productid
+ )
+ </foreach>
+ )as temp
+ RIGHT JOIN enterprise on temp.enterpriseName = enterprise.enterprisename
+ <where>
+ 1=1
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ <if test="condition.name != null and condition.name != ''">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+ GROUP BY
+ enterprise.enterprisename,
+ temp.type)temp1
+ GROUP BY enterprisename
+ </select>
+ <select id="selectEnterpriseStock" resultType="com.gk.firework.Domain.Vo.StockVo">
+ SELECT
+ enterprise.id as `owner`,
+ IFNULL(SUM( stockNum ),0) AS stockNum,
+ enterprise.enterprisename,
+ enterprise.enterprisenumber,
+ enterprise.province,
+ enterprise.city,
+ enterprise.district
+
+ FROM(
+ SELECT
+ stock.`owner`,
+ count(1)/product.boxnumber as stockNum,
+ enterprise.enterprisename as enterpriseName,
+ enterprise.enterprisenumber as enterpriseNumber
+ FROM
+ stock as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ left join product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.id = #{id}
+ </where>
+ GROUP BY `owner`,productid
+ <foreach collection="list" item="item" index="index">
+ union all
+ (
+ SELECT
+ stock.`owner`,
+ count(1)/product.boxnumber as stockNum,
+ enterprise.enterprisename as enterpriseName,
+ enterprise.enterprisenumber as enterpriseNumber
+ FROM
+ stock_slice${item} as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.id = #{id}
+
+ </where>
+ GROUP BY `owner`,productid
+ )
+ </foreach>
+ )as temp
+ LEFT JOIN enterprise on temp.enterpriseName = enterprise.enterprisename
+ GROUP BY
+ enterprise.enterprisename
+ </select>
+
+
+ <select id="selectEnterpriseSaleDataCount" resultType="java.util.Map">
+ select
+ sum(tmp.entryNum) entryNum,
+ sum(tmp.returnNum) returnNum,
+ sum(tmp.saleNum) saleNum,
+ sum(tmp.deliveryNum) deliveryNum,
+ sum(tmp.returnDeliveryNum) returnDeliveryNum
+ from
+ (
+ SELECT
+ SUM( entrynum ) AS entryNum,
+ SUM( returnnum ) AS returnNum,
+ SUM( salenum ) AS saleNum,
+ SUM( deliverynum ) AS deliveryNum,
+ SUM( returndeliverynum ) AS returnDeliveryNum,
+ companynumber as enterpriseNumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ IFNULL(SUM( num / boxnumber ),0) AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+ LEFT JOIN entryorder AS entry ON entry.companynumber = enterprise.enterprisenumber
+ and entry.type = 1
+ and entry.entrydate >= #{condition.beginDate}
+ and entry.entrydate <= #{condition.endDate}
+ LEFT JOIN entrydetail AS detail ON detail.entryorder = entry.`code`
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+
+ GROUP BY
+ enterprise.enterprisenumber,product.directioncode)entrytemp
+ GROUP BY companynumber
+
+ UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ IFNULL(SUM( num / boxnumber ),0) AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+ LEFT JOIN entryorder AS entry ON entry.companynumber = enterprise.enterprisenumber
+ and entry.type = 2
+ and entry.entrydate >= #{condition.beginDate}
+ and entry.entrydate <= #{condition.endDate}
+ LEFT JOIN entrydetail AS detail ON detail.entryorder = entry.`code`
+ LEFT JOIN product ON detail.itemcode = product.directioncode and product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+
+ GROUP BY
+ enterprise.enterprisenumber,product.directioncode)entrytemp
+ GROUP BY companynumber
+ ) UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ 0 AS returnnum,
+ IFNULL(SUM( salenum ),0),
+ 0 AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ ( count( 1 )/ product.boxnumber ) AS salenum,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename
+ FROM
+ enterprise
+ LEFT JOIN saleorder AS sale ON sale.companynumber = enterprise.enterprisenumber
+ AND sale.createdat >= #{condition.beginDate}
+ AND sale.createdat <= #{condition.endDate}
+ LEFT JOIN saleorderdetail AS detail ON sale.`code` = detail.ordercode
+ LEFT JOIN product ON detail.itemcode = product.directioncode
+ AND product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+ GROUP BY
+ enterprise.enterprisenumber,
+ product.directioncode
+ ) stemp
+ GROUP BY
+ companynumber
+ ) UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ IFNULL(SUM( num / boxnumber ),0) AS deliverynum,
+ 0 AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+
+ LEFT JOIN deliveryorder AS delivery ON delivery.companynumber = enterprise.enterprisenumber
+ AND delivery.type = 1
+ AND delivery.operatat >= #{condition.beginDate}
+ AND delivery.operatat <= #{condition.endDate}
+ LEFT JOIN deliverydetail AS detail ON delivery.ordercode = detail.deliverycode
+ LEFT JOIN product ON detail.itemcode = product.directioncode
+ AND product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+
+ GROUP BY
+ enterprise.enterprisenumber,
+ product.directioncode)deliverytemp
+ GROUP BY
+ companynumber
+ ) UNION ALL
+ (
+ SELECT
+ 0 AS entrynum,
+ 0 AS returnnum,
+ 0 AS salenum,
+ 0 AS deliverynum,
+ IFNULL(SUM( num / boxnumber ),0) AS returndeliverynum,
+ companynumber,
+ enterprisename
+ FROM
+ (
+ SELECT
+ SUM( detail.num ) AS num,
+ enterprise.enterprisenumber AS companynumber,
+ enterprise.enterprisename,
+ product.boxnumber
+ FROM
+ enterprise
+
+ LEFT JOIN deliveryorder AS delivery ON delivery.companynumber = enterprise.enterprisenumber
+ AND delivery.type = 2
+ AND delivery.operatat >= #{condition.beginDate}
+ AND delivery.operatat <= #{condition.endDate}
+ LEFT JOIN deliverydetail AS detail ON delivery.ordercode = detail.deliverycode
+ LEFT JOIN product ON detail.itemcode = product.directioncode
+ AND product.isdel = 0
+ <where>
+ enterprise.enterprisestatus = 'ON'
+ and enterprise.validflag = 1
+ <if test="condition.name != null">
+ and enterprise.enterprisename like CONCAT('%',#{condition.name},'%')
+ </if>
+ <if test="condition.operator != null and condition.operator != ''">
+ and (enterprise.enterprisenumber =#{condition.operator}
+ <if test="condition.subList != null and condition.subList.size() > 0">
+ <foreach collection="condition.subList" item="item" index="index" >
+ or enterprise.enterprisenumber = #{item}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="condition.type != null and condition.type != ''">
+ and enterprise.safetysupervision = #{condition.type}
+ </if>
+ <if test="condition.province != null and condition.province != ''">
+ and enterprise.province = #{condition.province}
+ </if>
+ <if test="condition.city != null and condition.city != ''">
+ and enterprise.city = #{condition.city}
+ </if>
+ <if test="condition.district != null and condition.district != ''">
+ and enterprise.district = #{condition.district}
+ </if>
+ <if test="condition.street != null and condition.street != ''">
+ and enterprise.street = #{condition.street}
+ </if>
+ <if test="condition.community != null and condition.community != ''">
+ and enterprise.committee = #{condition.community}
+ </if>
+ </where>
+ GROUP BY
+ enterprise.enterprisenumber,
+ product.directioncode )deliverytemp
+ GROUP BY
+ companynumber
+ )
+ ) temp
+ GROUP BY
+ companynumber
+ ) as tmp
+ </select>
+ <select id="selectEnterpriseAllStock" resultType="com.gk.firework.Domain.StockInfo">
+ SELECT
+ stock.*
+ FROM stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ and `owner` = #{owner}
+ </where>
+ <foreach collection="list" item="item" index="index">
+ union all
+ (
+ SELECT
+ stock.*
+ FROM
+ stock_slice${item} as stock
+ LEFT JOIN enterprise on enterprise.id = stock.`owner`
+ LEFT JOIN product on product.id = stock.productid and product.isdel = 0
+ <where>
+ `status` = ''
+ and stock.`owner` != ''
+ and enterprise.validflag = 1
+ and enterprise.enterprisestatus = 'ON'
+ and `owner` = #{owner}
+ </where>
+ )
+ </foreach>
+ </select>
+</mapper>
--
Gitblit v1.9.2