对比新文件 |
| | |
| | | <?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.SaleOrderDetailInfoMapper"> |
| | | <resultMap id="BaseResultMap" type="com.gk.firework.Domain.SaleOrderDetailInfo"> |
| | | <!-- --> |
| | | <id column="id" property="id" jdbcType="BIGINT"/> |
| | | <result column="ordercode" property="ordercode" 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="createdat" property="createdat" jdbcType="TIMESTAMP"/> |
| | | <result column="createdby" property="createdby" jdbcType="VARCHAR"/> |
| | | <result column="price" property="price" jdbcType="DECIMAL"/> |
| | | <result column="specification" property="specification" jdbcType="VARCHAR"/> |
| | | </resultMap> |
| | | |
| | | <resultMap id="SaleDetailVo" type="com.gk.firework.Domain.Vo.SaleDetailVo"> |
| | | <!-- --> |
| | | <id column="id" property="id" jdbcType="BIGINT"/> |
| | | <result column="ordercode" property="ordercode" 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="createdat" property="createdat" jdbcType="TIMESTAMP"/> |
| | | <result column="createdby" property="createdby" jdbcType="VARCHAR"/> |
| | | <result column="price" property="price" jdbcType="DECIMAL"/> |
| | | <result column="specification" property="specification" jdbcType="VARCHAR"/> |
| | | <result column="returnflag" property="returnflag" jdbcType="TINYINT"/> |
| | | <association property="product" javaType="com.gk.firework.Domain.ProductInfo"> |
| | | <id column="id" property="id" jdbcType="BIGINT" /> |
| | | <result column="name" property="name" jdbcType="VARCHAR" /> |
| | | <result column="directioncode" property="directionCode" jdbcType="VARCHAR" /> |
| | | <result column="purchaseprice" property="purchasePrice" jdbcType="DECIMAL" /> |
| | | <result column="saleprice" property="salePrice" jdbcType="DECIMAL" /> |
| | | <result column="manufacturer" property="manufacturer" jdbcType="VARCHAR" /> |
| | | <result column="specification" property="specification" jdbcType="VARCHAR" /> |
| | | <result column="explosivecontent" property="explosiveContent" jdbcType="DECIMAL" /> |
| | | <result column="type" property="type" jdbcType="VARCHAR" /> |
| | | <result column="secondarytype" property="secondaryType" jdbcType="VARCHAR" /> |
| | | <result column="level" property="level" jdbcType="VARCHAR" /> |
| | | <result column="productdate" property="productDate" jdbcType="TIMESTAMP" /> |
| | | <result column="boxnumber" property="boxNumber" jdbcType="INTEGER" /> |
| | | <result column="packing" property="packing" jdbcType="VARCHAR" /> |
| | | <result column="companynumber" property="companyNumber" jdbcType="VARCHAR" /> |
| | | </association> |
| | | <association property="saleOrderInfo" javaType="com.gk.firework.Domain.SaleOrderInfo"> |
| | | <id column="id" property="id" jdbcType="BIGINT"/> |
| | | <result column="code" property="code" jdbcType="VARCHAR"/> |
| | | <result column="createdat" property="createdat" jdbcType="TIMESTAMP"/> |
| | | <result column="createdby" property="createdby" jdbcType="VARCHAR"/> |
| | | <result column="customer" property="customer" jdbcType="BIGINT"/> |
| | | <result column="idcardnum" property="idcardnum" jdbcType="VARCHAR"/> |
| | | <result column="salesperson" property="salesperson" jdbcType="VARCHAR"/> |
| | | <result column="shop" property="shop" jdbcType="VARCHAR"/> |
| | | <result column="boxnum" property="boxnum" jdbcType="DECIMAL"/> |
| | | <result column="totalprice" property="totalprice" jdbcType="DECIMAL"/> |
| | | <result column="pay" property="pay" jdbcType="DECIMAL"/> |
| | | <result column="change" property="change" jdbcType="DECIMAL"/> |
| | | <result column="type" property="type" jdbcType="TINYINT"/> |
| | | <result column="returnflag" property="returnflag" jdbcType="TINYINT"/> |
| | | </association> |
| | | </resultMap> |
| | | <sql id="Base_Column_List"> |
| | | <!-- --> |
| | | id, ordercode, itemcode, itemname, directioncode, createdat, createdby, price, specification, returnflag |
| | | </sql> |
| | | <insert id="saveBatchOrderDetailInfo"> |
| | | |
| | | insert |
| | | into saleorderdetail |
| | | <trim prefix="(" suffix=") values" suffixOverrides=","> |
| | | ordercode, |
| | | itemcode, |
| | | itemname, |
| | | directioncode, |
| | | createdat, |
| | | createdby, |
| | | price, |
| | | specification, |
| | | returnflag, |
| | | </trim> |
| | | <foreach collection="list" item="item" separator=","> |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | #{item.ordercode}, |
| | | #{item.itemcode}, |
| | | #{item.itemname}, |
| | | #{item.directioncode}, |
| | | #{item.createdat}, |
| | | #{item.createdby}, |
| | | #{item.price}, |
| | | #{item.specification}, |
| | | #{item.returnflag}, |
| | | </trim> |
| | | </foreach> |
| | | |
| | | |
| | | </insert> |
| | | |
| | | <select id="selectDetailByIdCardNum" resultMap="BaseResultMap"> |
| | | select |
| | | detail.directioncode, |
| | | detail.itemname, |
| | | saleorder.createdat, |
| | | detail.price, |
| | | detail.specification, |
| | | customer.idcardnum |
| | | from saleorderdetail as detail |
| | | left join saleorder as saleorder on saleorder.`code` = detail.ordercode |
| | | LEFT JOIN customer as customer ON saleorder.customer = customer.id |
| | | <where> |
| | | customer.idcardnum = #{idCardNum} |
| | | </where> |
| | | </select> |
| | | <select id="selectDetailByIdCardNumAndDire" resultMap="BaseResultMap"> |
| | | select |
| | | detail.directioncode, |
| | | detail.itemname, |
| | | saleorder.createdat, |
| | | detail.price, |
| | | detail.specification, |
| | | customer.idcardnum |
| | | from saleorderdetail as detail |
| | | left join saleorder as saleorder on saleorder.`code` = detail.ordercode |
| | | LEFT JOIN customer as customer ON saleorder.customer = customer.id |
| | | <where> |
| | | customer.idcardnum = #{idCardNum} |
| | | and detail.returnflag = 0 |
| | | <if test="directionCode != null and directionCode != ''"> |
| | | and detail.directioncode = #{directionCode} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="selectOrderByDirectionAndCustomer" resultMap="BaseResultMap"> |
| | | select |
| | | detail.id, |
| | | detail.ordercode, |
| | | detail.itemcode, |
| | | detail.itemname, |
| | | detail.directioncode, |
| | | detail.createdat, |
| | | detail.createdby, |
| | | detail.price, |
| | | detail.specification, |
| | | detail.returnflag |
| | | from saleorder as saleorder |
| | | left join saleorderdetail as detail on detail.ordercode = saleorder.code |
| | | <where> |
| | | detail.directioncode = #{directionCode} |
| | | and customer = #{customer} |
| | | </where> |
| | | |
| | | </select> |
| | | <select id="selectDetailDataGridByIdCardNum" resultMap="BaseResultMap"> |
| | | select |
| | | detail.directioncode, |
| | | detail.itemname, |
| | | saleorder.createdat, |
| | | detail.price, |
| | | detail.specification, |
| | | customer.idcardnum |
| | | from saleorderdetail as detail |
| | | left join saleorder as saleorder on saleorder.`code` = detail.ordercode |
| | | LEFT JOIN customer as customer ON saleorder.customer = customer.id |
| | | <where> |
| | | customer.idcardnum = #{condition.idCardNum} |
| | | and detail.returnflag = 0 |
| | | <if test="condition.directionCode != null and condition.directionCode != ''"> |
| | | and detail.directioncode = #{condition.directionCode} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | <select id="selectByCustomId" resultType="com.gk.firework.Domain.Vo.SaleDetailVo"> |
| | | select |
| | | detail.directioncode, |
| | | detail.itemname, |
| | | detail.createdat, |
| | | detail.price, |
| | | detail.specification, |
| | | detail.createdby, |
| | | saleorder.shop |
| | | from saleorderdetail as detail |
| | | left join saleorder as saleorder on saleorder.`code` = detail.ordercode |
| | | LEFT JOIN customer as customer ON saleorder.customer = customer.id |
| | | <where> |
| | | 1=1 |
| | | <if test="condition.customid != null"> |
| | | and saleorder.customer = #{condition.customid} |
| | | </if> |
| | | <if test="condition.starttime != null"> |
| | | and detail.createdat >= #{condition.starttime} |
| | | </if> |
| | | <if test="condition.endtime != null"> |
| | | and detail.createdat <= #{condition.endtime} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="getSaleNumByCondition" resultType="decimal"> |
| | | select sum(num) from ( |
| | | select |
| | | (count(1)/product.boxnumber)as num |
| | | 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 |
| | | <where> |
| | | sale.createdat >= #{condition.beginDate} |
| | | and sale.createdat <= #{condition.endDate} |
| | | and sale.companynumber = #{condition.companyNumber} |
| | | <if test="condition.itemCode != null"> |
| | | and product.directioncode = #{condition.itemCode} |
| | | </if> |
| | | </where> |
| | | group by sale.companynumber, |
| | | product.directioncode |
| | | )temp |
| | | </select> |
| | | |
| | | <select id="getSaleDataInDays" resultType="java.util.Map"> |
| | | |
| | | select |
| | | days.day, |
| | | ifnull(info.salenum,0) salenum |
| | | from |
| | | <foreach collection="days" item="item" open="(" close=")" separator="union all"> |
| | | SELECT date_sub(curdate(), interval #{item} day) as day |
| | | </foreach> |
| | | as days |
| | | left join ( |
| | | select |
| | | date_format(detail.createdat,"%Y-%m-%d") saledate, |
| | | count(0) salenum |
| | | from |
| | | saleorderdetail as detail |
| | | <where> |
| | | <if test="starttime !=null"> |
| | | and detail.createdat > #{starttime} |
| | | </if> |
| | | <if test="endtime !=null"> |
| | | and detail.createdat < #{endtime} |
| | | </if> |
| | | </where> |
| | | group by DATE_FORMAT(detail.createdat,"%Y-%m-%d") |
| | | ) as info on info.saledate = days.day |
| | | order by days.day |
| | | </select> |
| | | |
| | | <select id="getSaleDataAreaInDays" resultType="java.util.Map"> |
| | | select |
| | | count(0) salenum, |
| | | e.city |
| | | from saleorder as saleorder |
| | | LEFT JOIN saleorderdetail as detail on detail.ordercode = saleorder.code |
| | | left join enterprise as e on e.enterprisenumber = saleorder.companynumber and e.validflag =1 |
| | | <where> |
| | | e.province = #{params.province} |
| | | <if test="starttime !=null"> |
| | | and detail.createdat > #{starttime} |
| | | </if> |
| | | <if test="endtime !=null"> |
| | | and detail.createdat < #{endtime} |
| | | </if> |
| | | </where> |
| | | group by e.city |
| | | |
| | | </select> |
| | | <select id="getSaleDataProductTypeInDays" resultType="java.util.Map"> |
| | | select |
| | | count(0) salenum, |
| | | product.type producttype |
| | | from saleorderdetail as detail |
| | | left join product as product on product.directioncode = detail.itemcode and product.isdel = 0 |
| | | <if test="starttime !=null"> |
| | | and detail.createdat > #{starttime} |
| | | </if> |
| | | <if test="endtime !=null"> |
| | | and detail.createdat < #{endtime} |
| | | </if> |
| | | group by product.type |
| | | </select> |
| | | <select id="getSaleDataInYear" resultType="java.util.Map"> |
| | | select months.month, count(detail.month) as salenum |
| | | from |
| | | (select 1 as month union all |
| | | select 2 union all |
| | | select 3 union all |
| | | select 4 union all |
| | | select 5 union all |
| | | select 6 union all |
| | | select 7 union all |
| | | select 8 union all |
| | | select 9 union all |
| | | select 10 union all |
| | | select 11 union all |
| | | select 12) as months |
| | | left join |
| | | (SELECT |
| | | month(detail.createdat) as month |
| | | from saleorderdetail as detail |
| | | left join saleorder as so on so.code = detail.ordercode |
| | | left join enterprise as e on e.enterprisenumber = so.companynumber |
| | | where year(detail.createdat) = #{year} |
| | | <if test="province != null and province != ''"> |
| | | and e.province = #{province} |
| | | </if> |
| | | <if test="city != null and city != ''"> |
| | | and e.city = #{city} |
| | | </if> |
| | | ) as detail on months.month = detail.month |
| | | group by months.month |
| | | order by months.month |
| | | </select> |
| | | <select id="getInboundInYear" resultType="java.util.Map"> |
| | | select months.month, |
| | | ifnull(detail.num,0) num |
| | | from ( |
| | | select 1 as month union all |
| | | select 2 union all |
| | | select 3 union all |
| | | select 4 union all |
| | | select 5 union all |
| | | select 6 union all |
| | | select 7 union all |
| | | select 8 union all |
| | | select 9 union all |
| | | select 10 union all |
| | | select 11 union all |
| | | select 12) as months |
| | | left join ( |
| | | select |
| | | month(entryorder.entrydate) month, |
| | | sum(entryorder.num) num |
| | | from entryorder as entryorder |
| | | left join enterprise as e on e.enterprisenumber = entryorder.companynumber |
| | | where year(entryorder.entrydate) = #{year} |
| | | <if test="province != null and province != ''"> |
| | | and e.province = #{province} |
| | | </if> |
| | | <if test="city != null and city != ''"> |
| | | and e.city = #{city} |
| | | </if> |
| | | group by month(entryorder.entrydate) ) as detail on months.month = detail.month |
| | | order by months.month |
| | | |
| | | </select> |
| | | <select id="getSaleNumThisDay" resultType="java.lang.Integer"> |
| | | select count(0) |
| | | from saleorderdetail as detail |
| | | left join saleorder as so on so.code = detail.ordercode |
| | | where |
| | | so.createdat BETWEEN CONCAT(CURDATE(),' 00:00:00') AND CONCAT(CURDATE(),' 23:59:59') |
| | | </select> |
| | | <select id="getSaleNumThisYear" resultType="java.lang.Integer"> |
| | | select count(0) |
| | | from saleorderdetail as detail |
| | | left join saleorder as so on so.code = detail.ordercode |
| | | where |
| | | so.createdat > STR_TO_DATE(CONCAT(year(now()),'-01-01 ','00:00:00'),'%Y-%m-%d %H:%i:%s') |
| | | and so.createdat < now() |
| | | </select> |
| | | <select id="getPurchasersNum" resultType="java.lang.Integer"> |
| | | select count(0) |
| | | from ( |
| | | select so.customer |
| | | from saleorder as so |
| | | where so.createdat > STR_TO_DATE(CONCAT(year(now()),'-01-01 ','00:00:00'),'%Y-%m-%d %H:%i:%s') |
| | | and so.createdat < now() |
| | | group by so.customer) |
| | | as tmp |
| | | </select> |
| | | <select id="selectCityInAndOut" resultType="java.util.Map"> |
| | | |
| | | select |
| | | indata.name, |
| | | indata.innum, |
| | | saledata.salenum, |
| | | deliverydata.outnum, |
| | | ifnull(salesdata.sales,0)/10000 sales |
| | | from |
| | | ( |
| | | select |
| | | citys.name,round(sum(if(citysale.num is null,0,num)),2) salenum |
| | | from ( |
| | | |
| | | select * |
| | | 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 |
| | | e.city,sod.itemcode ,count( 1 ) /p.boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode and p.isdel = 0 |
| | | LEFT JOIN enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and sod.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and sod.createdat < #{params.endtime} |
| | | </if> |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | GROUP BY |
| | | so.companynumber,sod.itemcode |
| | | |
| | | ) as citysale |
| | | on citys.name = citysale.city |
| | | group by citys.name |
| | | ) |
| | | as saledata |
| | | left join ( |
| | | |
| | | select |
| | | citys.name,round(sum(if(cityentry.entrynum is null,0,cityentry.entrynum)),2) innum |
| | | from ( |
| | | |
| | | select * |
| | | 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 |
| | | e.city,SUM( ed.num )/ p.boxnumber AS entrynum |
| | | FROM |
| | | entrydetail AS ed |
| | | LEFT JOIN entryorder AS eo ON eo.`code` = ed.entryorder |
| | | LEFT JOIN product AS p ON p.directioncode = ed.itemcode and p.isdel = 0 |
| | | LEFT JOIN enterprise AS e ON eo.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | 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> |
| | | GROUP BY |
| | | eo.companynumber,ed.itemcode |
| | | |
| | | ) |
| | | as cityentry |
| | | |
| | | on citys.name = cityentry.city |
| | | group by citys.name) |
| | | |
| | | as indata on indata.name = saledata.name |
| | | |
| | | left join ( |
| | | |
| | | select |
| | | |
| | | citys.name,round(ifnull(sum(citydelivery.deliverynum),0),2) as outnum |
| | | |
| | | from ( |
| | | |
| | | select * |
| | | 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 e.city,sum(detail.num)/product.boxnumber as deliverynum |
| | | from deliverydetail as detail |
| | | left join deliveryorder as deliveryorder on deliveryorder.ordercode = detail.deliverycode |
| | | left join product as product ON detail.itemcode = product.directioncode and product.isdel = 0 |
| | | left join enterprise as e on e.enterprisenumber = deliveryorder.companynumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and detail.createat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and detail.createat < #{params.endtime} |
| | | </if> |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | group by |
| | | deliveryorder.companynumber,detail.itemcode |
| | | ) as citydelivery on citydelivery.city = citys.name |
| | | group by citys.name |
| | | ) as deliverydata on deliverydata.name = indata.name |
| | | |
| | | left join |
| | | |
| | | ( |
| | | select e.city,sum(saleorder.totalprice) sales |
| | | from saleorder as saleorder |
| | | left join enterprise as e on e.enterprisenumber = saleorder.companynumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and saleorder.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and saleorder.createdat < #{params.endtime} |
| | | </if> |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | group by e.city |
| | | ) as salesdata on salesdata.city = indata.name |
| | | |
| | | |
| | | |
| | | order by indata.innum desc,saledata.salenum desc |
| | | |
| | | </select> |
| | | <select id="getGenderSale" resultType="java.util.Map"> |
| | | select |
| | | genders.gender, |
| | | ifnull(saleinfo.sum,0) sum |
| | | from ( |
| | | select '男' as gender |
| | | union |
| | | select '女' |
| | | ) as genders |
| | | left join ( |
| | | select case customer.gender when 1 then '男' else '女' end gender,count(0) sum |
| | | from saleorder as so |
| | | left join saleorderdetail as detail on so.code = detail.ordercode |
| | | left join customer as customer on customer.id = so.customer |
| | | left join enterprise as e on e.enterprisenumber = so.companynumber |
| | | left join product as product on product.directioncode = detail.itemcode and product.isdel = 0 |
| | | <where> |
| | | e.validflag = 1 |
| | | and e.enterprisestatus = 'ON' |
| | | and customer.gender != 0 |
| | | <if test="params.enterprisename != null and params.enterprisename != ''"> |
| | | and e.enterprisename like concat("%",#{params.enterprisename},"%") |
| | | </if> |
| | | <if test="params.productname != null and params.productname != ''"> |
| | | and detail.itemname like concat("%",#{params.productname},"%") |
| | | </if> |
| | | <if test="params.producttype != null and params.producttype != ''"> |
| | | and product.type = #{params.producttype} |
| | | </if> |
| | | <if test="params.secondarytype != null and params.secondarytype != ''"> |
| | | and product.secondarytype = #{params.secondarytype} |
| | | </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> |
| | | <if test="params.street!= null and params.street != ''"> |
| | | and e.street = #{params.street} |
| | | </if> |
| | | <if test="params.committee != null and params.committee != ''"> |
| | | and e.committee = #{params.committee} |
| | | </if> |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and detail.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and detail.createdat < #{params.endtime} |
| | | </if> |
| | | </where> |
| | | group by customer.gender) as saleinfo on saleinfo.gender = genders.gender |
| | | </select> |
| | | <select id="getRaceSale" resultType="java.util.Map"> |
| | | select |
| | | customer.nation, |
| | | count(0) sum |
| | | from saleorder as so |
| | | left join saleorderdetail as detail on so.code = detail.ordercode |
| | | left join customer as customer on customer.id = so.customer |
| | | left join enterprise as e on e.enterprisenumber = so.companynumber |
| | | left join product as product on product.directioncode = detail.itemcode and product.isdel = 0 |
| | | where 1 = 1 |
| | | and e.validflag = 1 |
| | | and e.enterprisestatus = 'ON' |
| | | <choose> |
| | | <when test="params.enterprisenumber != null and params.enterprisenumber !=''"> |
| | | and e.enterprisenumber = #{params.enterprisenumber} |
| | | </when> |
| | | <otherwise> |
| | | <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> |
| | | <if test="params.street != null and params.street != ''"> |
| | | and e.street = #{params.street} |
| | | </if> |
| | | <if test="params.committee != null and params.committee != ''"> |
| | | and e.committee = #{params.committee} |
| | | </if> |
| | | </otherwise> |
| | | </choose> |
| | | <if test="params.enterprisename != null and params.enterprisename != ''"> |
| | | and e.enterprisename like concat("%",#{params.enterprisename},"%") |
| | | </if> |
| | | <if test="params.productname != null and params.productname != ''"> |
| | | and detail.itemname like concat("%",#{params.productname},"%") |
| | | </if> |
| | | <if test="params.producttype != null and params.producttype != ''"> |
| | | and product.type = #{params.producttype} |
| | | </if> |
| | | <if test="params.secondarytype != null and params.secondarytype != ''"> |
| | | and product.secondarytype = #{params.secondarytype} |
| | | </if> |
| | | <if test="params.provinceFilter != null and params.provinceFilter != ''"> |
| | | and e.province = #{params.province} |
| | | </if> |
| | | <if test="params.cityFilter != null and params.cityFilter != ''"> |
| | | and e.city = #{params.city} |
| | | </if> |
| | | <if test="params.districtFilter != null and params.districtFilter != ''"> |
| | | and e.district = #{params.district} |
| | | </if> |
| | | <if test="params.streetFilter!= null and params.streetFilter != ''"> |
| | | and e.street = #{params.street} |
| | | </if> |
| | | <if test="params.committeeFilter != null and params.committeeFilter != ''"> |
| | | and e.committee = #{params.committee} |
| | | </if> |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and detail.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and detail.createdat < #{params.endtime} |
| | | </if> |
| | | group by customer.nation |
| | | </select> |
| | | <select id="getSaleInfoByGeneration" resultType="java.lang.Integer"> |
| | | |
| | | select count(0) |
| | | from saleorder as so |
| | | left join saleorderdetail as detail on so.code = detail.ordercode |
| | | left join customer as customer on customer.id = so.customer |
| | | left join enterprise as e on e.enterprisenumber = so.companynumber |
| | | left join product as product on product.directioncode = detail.itemcode and product.isdel = 0 |
| | | where 1 = 1 |
| | | and e.validflag = 1 |
| | | and e.enterprisestatus = 'ON' |
| | | <choose> |
| | | <when test="params.enterprisenumber != null and params.enterprisenumber !=''"> |
| | | and e.enterprisenumber = #{params.enterprisenumber} |
| | | </when> |
| | | <otherwise> |
| | | <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> |
| | | <if test="params.street != null and params.street != ''"> |
| | | and e.street = #{params.street} |
| | | </if> |
| | | <if test="params.committee != null and params.committee != ''"> |
| | | and e.committee = #{params.committee} |
| | | </if> |
| | | </otherwise> |
| | | </choose> |
| | | and (YEAR (now()) - YEAR (substring(customer.idcardnum, 7, 8))) >= #{params.head} |
| | | <if test="params.tail != null and params.tail != ''"> |
| | | and (YEAR (now()) - YEAR (substring(customer.idcardnum, 7, 8))) < #{params.tail} |
| | | </if> |
| | | <if test="params.enterprisename != null and params.enterprisename != ''"> |
| | | and e.enterprisename like concat("%",#{params.enterprisename},"%") |
| | | </if> |
| | | <if test="params.productname != null and params.productname != ''"> |
| | | and detail.itemname like concat("%",#{params.productname},"%") |
| | | </if> |
| | | <if test="params.producttype != null and params.producttype != ''"> |
| | | and product.type = #{params.producttype} |
| | | </if> |
| | | <if test="params.secondarytype != null and params.secondarytype != ''"> |
| | | and product.secondarytype = #{params.secondarytype} |
| | | </if> |
| | | <if test="params.provinceFilter != null and params.provinceFilter != ''"> |
| | | and e.province = #{params.province} |
| | | </if> |
| | | <if test="params.cityFilter != null and params.cityFilter != ''"> |
| | | and e.city = #{params.city} |
| | | </if> |
| | | <if test="params.districtFilter != null and params.districtFilter != ''"> |
| | | and e.district = #{params.district} |
| | | </if> |
| | | <if test="params.streetFilter!= null and params.streetFilter != ''"> |
| | | and e.street = #{params.street} |
| | | </if> |
| | | <if test="params.committeeFilter != null and params.committeeFilter != ''"> |
| | | and e.committee = #{params.committee} |
| | | </if> |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and detail.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and detail.createdat < #{params.endtime} |
| | | </if> |
| | | |
| | | |
| | | </select> |
| | | <select id="selectOneByDirectionCode" resultMap="SaleDetailVo"> |
| | | select detail.*,so.*,product.* |
| | | from saleorderdetail as detail |
| | | left join saleorder as so on so.code = detail.ordercode |
| | | left join product as product on product.directioncode = detail.itemcode and product.isdel = 0 |
| | | where detail.directioncode = #{directionCode} |
| | | and detail.returnflag = 0 |
| | | </select> |
| | | <select id="selectOrderByDirectionReturnflag" resultType="com.gk.firework.Domain.SaleOrderDetailInfo"> |
| | | select |
| | | detail.id, |
| | | detail.ordercode, |
| | | detail.itemcode, |
| | | detail.itemname, |
| | | detail.directioncode, |
| | | detail.createdat, |
| | | detail.createdby, |
| | | detail.price, |
| | | detail.specification, |
| | | detail.returnflag |
| | | from saleorder as saleorder |
| | | left join saleorderdetail as detail on detail.ordercode = saleorder.code |
| | | <where> |
| | | detail.directioncode = #{directionCode} |
| | | and detail.returnflag = #{returnflag} |
| | | <if test="datetime != null"> |
| | | and saleorder.createdat <#{datetime} |
| | | </if> |
| | | </where> |
| | | group by createdat asc |
| | | limit 1 |
| | | </select> |
| | | <select id="selectSaleNumInfo" resultType="com.gk.firework.Domain.Vo.SaleNumVo"> |
| | | select |
| | | ifnull(round(count(0)/product.boxnumber,2),0 )num, |
| | | detail.itemcode, |
| | | product.*, |
| | | enterprise.enterprisenumber, |
| | | enterprise.enterprisename |
| | | from saleorderdetail as detail |
| | | left join saleorder as saleorder on saleorder.code = detail.ordercode |
| | | left join product as product on product.directioncode = detail.itemcode and product.isdel = 0 |
| | | left join enterprise as enterprise on enterprise.enterprisenumber = saleorder.companynumber |
| | | <where> |
| | | <if test="params.enterprisename != null and params.enterprisename != '' "> |
| | | and enterprise.enterprisename = #{params.enterprisename} |
| | | </if> |
| | | <if test="params.enterprisenumber != null and params.enterprisenumber != '' "> |
| | | and saleorder.companynumber = #{params.enterprisename} |
| | | </if> |
| | | <if test="params.starttime != null and params.starttime != '' "> |
| | | and detail.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != '' "> |
| | | and detail.createdat <= #{params.endtime} |
| | | </if> |
| | | </where> |
| | | group by detail.itemcode |
| | | </select> |
| | | <select id="selectSaleNumInfoDetail" resultType="com.gk.firework.Domain.SaleOrderDetailInfo"> |
| | | |
| | | select detail.* |
| | | from saleorderdetail as detail |
| | | left join saleorder as saleorder on saleorder.code= detail.ordercode |
| | | left join enterprise as enterprise on enterprise.enterprisenumber = saleorder.companynumber |
| | | <where> |
| | | <if test="params.enterprisename != null and params.enterprisename != '' "> |
| | | and enterprise.enterprisename = #{params.enterprisename} |
| | | </if> |
| | | <if test="params.enterprisenumber != null and params.enterprisenumber != '' "> |
| | | and saleorder.companynumber = #{params.enterprisename} |
| | | </if> |
| | | <if test="params.starttime != null and params.starttime != '' "> |
| | | and detail.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != '' "> |
| | | and detail.createdat <= #{params.endtime} |
| | | </if> |
| | | <if test="params.itemcode != null and params.itemcode != '' "> |
| | | and detail.itemcode = #{params.itemcode} |
| | | </if> |
| | | </where> |
| | | order by detail.createdat desc |
| | | </select> |
| | | <select id="selectCityInAndOutDetail" resultType="java.util.Map"> |
| | | |
| | | select |
| | | e.enterprisename, |
| | | round(ifnull(saledata.salenum ,0),2) salenum, |
| | | round(ifnull(entrydata.entrynum,0),2) innum, |
| | | round(ifnull(deliverydata.deliverynum ,0),2) outnum, |
| | | ifnull(saleInfo.sales/10000,0) sales |
| | | from ( |
| | | select |
| | | enterprisename,enterprisenumber |
| | | from enterprise as e |
| | | where e.validflag = 1 |
| | | and e.enterprisestatus = 'ON' |
| | | and e.city = #{params.city} |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | ) as e |
| | | left join ( |
| | | |
| | | |
| | | select |
| | | saledata.enterprisename,sum(saledata.num) salenum |
| | | from( |
| | | |
| | | SELECT |
| | | e.enterprisename,so.companynumber ,sod.itemcode ,count( 1 ) /p.boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode and p.isdel = 0 |
| | | LEFT JOIN enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | and city = #{params.city} |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and sod.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and sod.createdat < #{params.endtime} |
| | | </if> |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | GROUP BY |
| | | so.companynumber ,sod.itemcode |
| | | ) as saledata |
| | | group by saledata.companynumber |
| | | ) as saledata on saledata.enterprisename = e.enterprisename |
| | | |
| | | left join ( |
| | | |
| | | select |
| | | entrydata.enterprisename , sum(entrydata.entrynum) entrynum |
| | | from ( |
| | | select |
| | | e.enterprisename,eo.companynumber,ed.itemcode,SUM( ed.num )/ p.boxnumber AS entrynum |
| | | FROM |
| | | entrydetail AS ed |
| | | LEFT JOIN entryorder AS eo ON eo.`code` = ed.entryorder |
| | | LEFT JOIN product AS p ON p.directioncode = ed.itemcode and p.isdel = 0 |
| | | LEFT JOIN enterprise AS e ON eo.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | and city = #{params.city} |
| | | <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> |
| | | GROUP BY |
| | | eo.companynumber,ed.itemcode |
| | | ) as entrydata |
| | | group by entrydata.companynumber |
| | | ) as entrydata on entrydata.enterprisename = e.enterprisename |
| | | |
| | | left join ( |
| | | |
| | | select |
| | | deliverydata.enterprisename,sum(deliverydata.deliverynum) deliverynum |
| | | from ( |
| | | select e.enterprisename,deliveryorder.companynumber,detail.itemcode,sum(detail.num)/product.boxnumber as deliverynum |
| | | from deliverydetail as detail |
| | | left join deliveryorder as deliveryorder on deliveryorder.ordercode = detail.deliverycode |
| | | left join product as product ON detail.itemcode = product.directioncode and product.isdel = 0 |
| | | left join enterprise as e on e.enterprisenumber = deliveryorder.companynumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | and e.city = #{params.city} |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and detail.createat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and detail.createat < #{params.endtime} |
| | | </if> |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | group by |
| | | deliveryorder.companynumber,detail.itemcode |
| | | ) as deliverydata |
| | | group by deliverydata.companynumber |
| | | ) as deliverydata on deliverydata.enterprisename = e.enterprisename |
| | | |
| | | left join ( |
| | | |
| | | select e.enterprisename,sum(saleorder.totalprice) sales |
| | | from saleorder as saleorder |
| | | left join enterprise as e on e.enterprisenumber = saleorder.companynumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag = 1 |
| | | and e.city = #{params.city} |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and saleorder.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and saleorder.createdat < #{params.endtime} |
| | | </if> |
| | | <if test="params.safetysupervision != null and params.safetysupervision != ''"> |
| | | and e.safetysupervision = #{params.safetysupervision } |
| | | </if> |
| | | group by saleorder.companynumber |
| | | |
| | | ) as saleInfo on saleInfo.enterprisename = e.enterprisename |
| | | |
| | | |
| | | |
| | | </select> |
| | | <select id="selectCityTypeSale" resultType="java.util.Map"> |
| | | select |
| | | citys.name, |
| | | ifnull(allperson.num,0) personnum |
| | | <foreach collection="list" item="item" index="index"> |
| | | ,round(ifnull(num_${item},0),2) num_${item} |
| | | </foreach>, |
| | | round( |
| | | <trim suffixOverrides="+"> |
| | | <foreach collection="list" item="item" index="index"> |
| | | ifnull(alldata.num_${item},0) + |
| | | </foreach> |
| | | </trim> |
| | | ,2) 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,so.companynumber,p.type,count( 1 ) /p. |
| | | boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN |
| | | saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode |
| | | LEFT JOIN |
| | | enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e. |
| | | enterprisestatus = 'ON' |
| | | and e.validflag=1 |
| | | and p.isdel = 0 |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 |
| | | so.companynumber,sod.itemcode |
| | | |
| | | ) as tmptmp |
| | | group by tmptmp.city,tmptmp.type |
| | | |
| | | ) as tmptmptmp |
| | | group by tmptmptmp.city |
| | | ) as alldata |
| | | on citys.name = alldata.city |
| | | left join ( |
| | | |
| | | select cc.city,count(0) num |
| | | from ( |
| | | select e.city,so.customer |
| | | from saleorder as so |
| | | left join enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | AND e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 so.customer |
| | | ) as cc |
| | | group by cc.city |
| | | |
| | | ) as allperson on citys.name = allperson.city |
| | | </select> |
| | | <select id="selectEnterpriseTypeSale" resultType="java.util.Map"> |
| | | select |
| | | alldata.*, |
| | | ifnull(allperson.personnum,0) personnum, |
| | | 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,so.companynumber,p.type,count( 1 ) /p. |
| | | boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN |
| | | saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode |
| | | LEFT JOIN |
| | | enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag=1 |
| | | and p.isdel = 0 |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 |
| | | so.companynumber,sod.itemcode |
| | | |
| | | ) as tmptmp |
| | | group by tmptmp.companynumber,tmptmp.type |
| | | ) as tmptmptmp |
| | | group by tmptmptmp.enterprisename) |
| | | as alldata |
| | | left join ( |
| | | |
| | | select cc.enterprisename,count(0) personnum |
| | | from ( |
| | | select e.city,e.enterprisename,so.customer |
| | | from saleorder as so |
| | | left join enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | AND e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 so.companynumber,so.customer |
| | | ) as cc |
| | | group by cc.enterprisename |
| | | ) as allperson |
| | | on allperson.enterprisename = alldata.enterprisename |
| | | </select> |
| | | <select id="selectAllType" resultType="java.util.Map"> |
| | | select |
| | | lasttmp.*, |
| | | othertmp.personnum, |
| | | 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,so.companynumber,p.type,count( 1 ) /p. |
| | | boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN |
| | | saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode |
| | | LEFT JOIN |
| | | enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag=1 |
| | | and p.isdel = 0 |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 |
| | | so.companynumber,sod.itemcode |
| | | |
| | | ) as tmptmp |
| | | group by tmptmp.type |
| | | |
| | | |
| | | ) as tmptmptmp |
| | | ) as lasttmp |
| | | left join |
| | | ( |
| | | select '合计' name,sum(1) personnum |
| | | from ( |
| | | select |
| | | count(0) num |
| | | from saleorder as so |
| | | left join enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | WHERE |
| | | e.enterprisestatus = 'ON' |
| | | AND e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 so.customer |
| | | ) as cc |
| | | |
| | | ) as othertmp |
| | | on othertmp.name = lasttmp.name |
| | | |
| | | |
| | | </select> |
| | | <select id="selectDistrictTypeSale" resultType="java.util.Map"> |
| | | select |
| | | citys.name, |
| | | ifnull(allperson.num,0) personnum |
| | | <foreach collection="list" item="item" index="index"> |
| | | ,round(ifnull(num_${item},0),2) num_${item} |
| | | </foreach>, |
| | | round( |
| | | <trim suffixOverrides="+"> |
| | | <foreach collection="list" item="item" index="index"> |
| | | ifnull(alldata.num_${item},0) + |
| | | </foreach> |
| | | </trim> |
| | | ,2) totalcol |
| | | from ( |
| | | select district.name |
| | | from district |
| | | where parentcode =( |
| | | select district.code |
| | | from district as district |
| | | where district.name = #{params.city} |
| | | and type = 2) |
| | | and type =3 |
| | | ) as citys |
| | | |
| | | left join ( |
| | | select |
| | | tmptmptmp.district |
| | | <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.district,tmptmp.type,sum(tmptmp.num) num |
| | | from |
| | | ( |
| | | SELECT |
| | | e.district,so.companynumber,p.type,count( 1 ) /p. |
| | | boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN |
| | | saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode |
| | | LEFT JOIN |
| | | enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e. |
| | | enterprisestatus = 'ON' |
| | | and e.validflag=1 |
| | | and p.isdel = 0 |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 |
| | | so.companynumber,sod.itemcode |
| | | |
| | | ) as tmptmp |
| | | group by tmptmp.district,tmptmp.type |
| | | |
| | | ) as tmptmptmp |
| | | group by tmptmptmp.district |
| | | ) as alldata |
| | | on citys.name = alldata.district |
| | | left join ( |
| | | |
| | | select cc.district,count(0) num |
| | | from ( |
| | | select e.district,so.customer |
| | | from saleorder as so |
| | | left join enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | AND e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 so.customer |
| | | ) as cc |
| | | group by cc.district |
| | | |
| | | ) as allperson on citys.name = allperson.district |
| | | </select> |
| | | <select id="selectAllDistrictType" resultType="java.util.Map"> |
| | | select |
| | | lasttmp.*, |
| | | othertmp.personnum, |
| | | 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,so.companynumber,p.type,count( 1 ) /p. |
| | | boxnumber num |
| | | FROM |
| | | saleorderdetail AS sod |
| | | LEFT JOIN |
| | | saleorder AS so ON so.`code` = sod.ordercode |
| | | LEFT JOIN product AS p ON p.directioncode = sod.itemcode |
| | | LEFT JOIN |
| | | enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | where |
| | | e.enterprisestatus = 'ON' |
| | | and e.validflag=1 |
| | | and p.isdel = 0 |
| | | and e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 |
| | | so.companynumber,sod.itemcode |
| | | ) as tmptmp |
| | | group by tmptmp.type |
| | | ) as tmptmptmp |
| | | ) as lasttmp |
| | | left join |
| | | ( |
| | | select '合计' name,sum(1) personnum |
| | | from ( |
| | | select |
| | | e.city, |
| | | e.district, |
| | | count(0) num |
| | | from saleorder as so |
| | | left join enterprise AS e ON so.companynumber = e.enterprisenumber |
| | | WHERE |
| | | e.enterprisestatus = 'ON' |
| | | AND e.validflag = 1 |
| | | <if test="params.starttime != null and params.starttime != ''"> |
| | | and so.createdat >= #{params.starttime} |
| | | </if> |
| | | <if test="params.endtime != null and params.endtime != ''"> |
| | | and so.createdat < #{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 so.customer |
| | | ) as cc |
| | | <where> |
| | | 1=1 |
| | | <if test="params.city != null and params.city != ''"> |
| | | and cc.city = #{params.city } |
| | | </if> |
| | | </where> |
| | | GROUP BY |
| | | cc.city |
| | | ) as othertmp |
| | | on othertmp.name = lasttmp.name |
| | | </select> |
| | | </mapper> |