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/SaleOrderInfoMapper.xml | 1112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,112 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Mapper/mybatis/SaleOrderInfoMapper.xml b/src/main/java/com/gk/firework/Mapper/mybatis/SaleOrderInfoMapper.xml
new file mode 100644
index 0000000..335b90e
--- /dev/null
+++ b/src/main/java/com/gk/firework/Mapper/mybatis/SaleOrderInfoMapper.xml
@@ -0,0 +1,1112 @@
+<?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.SaleOrderInfoMapper">
+ <resultMap id="BaseResultMap" type="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"/>
+ <result column="isupload" property="isupload" jdbcType="TINYINT"/>
+ <result column="uploadat" property="uploadat" jdbcType="TIMESTAMP"/>
+ <result column="returncode" property="returncode" jdbcType="VARCHAR"/>
+ </resultMap>
+
+ <resultMap id="OrderInfo" type="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"/>
+ </resultMap>
+ <resultMap id="DailySaleReportResultMap" type="com.gk.firework.Domain.Vo.DailySaleReport">
+ </resultMap>
+ <sql id="Base_Column_List">
+ <!-- -->
+ id, `code`, createdat, createdby, customer, idcardnum, salesperson, shop, boxnum, totalprice,
+ pay, `change`, `type`, returnflag, isupload, uploadat, returncode
+ </sql>
+
+ <select id="selectOrderByDirectionAndCustomer" resultMap="BaseResultMap">
+ select
+ saleorder.id,
+ saleorder.code,
+ saleorder.createdat,
+ saleorder.createdby,
+ saleorder.customer,
+ saleorder.idcardnum,
+ saleorder.salesperson,
+ saleorder.shop,
+ saleorder.boxnum,
+ saleorder.totalprice,
+ saleorder.pay,
+ saleorder.`change`,
+ saleorder.`type`,
+ saleorder.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="selectSaleRecord1" resultType="java.util.Map">
+ select
+ sod.directioncode,
+ sod.itemname,
+ so.shop,
+ customer.idcardnum identify,
+ so.createdat saletime
+ from saleorder as so
+ left join saleorderdetail as sod on so.code = sod.ordercode
+ left join customer as customer on customer.id = so.customer
+ <where>
+ <choose>
+ <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and so.companynumber = #{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.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.shop != null and params.shop">
+ and so.shop like concat("%",#{params.shop},"%")
+ </if>
+ <if test="params.itemname != null and params.itemname">
+ and sod.itemname like concat("%",#{params.itemname},"%")
+ </if>
+ <if test="params.directioncode != null and params.directioncode">
+ and sod.directioncode like concat("%",#{params.directioncode},"%")
+ </if>
+ <if test="params.enterprisename != null and params.enterprisename != ''">
+ and e.enterprisename like concat("%",#{params.enterprisename},"%")
+ </if>
+ <if test="params.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ </where>
+ order by saletime desc
+ </select>
+ <select id="selectSaleRecord2" resultType="java.util.Map">
+ SELECT
+ e.enterprisename,
+ e.enterprisenumber,
+ count(if(sod.returnflag = 1,true,null)) returnnum,
+ count(0) salenum,
+ max(so.createdat)
+ from saleorderdetail sod
+ LEFT JOIN saleorder as so on so.code = sod.ordercode
+ LEFT JOIN enterprise as e on e.enterprisenumber = so.companynumber and e.validflag = 1
+ <where>
+ <choose>
+ <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and so.companynumber = #{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.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.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+ <if test="params.enterprisename != null and params.enterprisename != ''">
+ and e.enterprisename like concat("%",#{params.enterprisename},"%")
+ </if>
+ <if test="params.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+
+ </where>
+ group by so.companynumber
+ </select>
+ <select id="selectSaleRecord3" resultType="java.util.Map">
+ SELECT
+ a.itemcode,
+ a.itemname,
+ a.salenum,
+ a.boxnumber,
+ round(a.salenum / a.boxnumber,2) boxnum,
+ a.saletime
+ from (
+ SELECT
+ count(sod.directioncode) salenum,
+ p.directioncode itemcode,
+ p.`name` itemname,
+ p.boxnumber,
+ max(sod.createdat) saletime
+ FROM product as p
+ left join saleorderdetail as sod on sod.itemcode = p.directioncode
+ LEFT JOIN saleorder as so on so.code = sod.ordercode
+ LEFT JOIN enterprise AS e ON e.enterprisenumber = so.companynumber
+ where p.isdel = 0
+ and e.enterprisestatus = 'ON'
+ and e.validflag = 1
+ <if test="params.enterprisename != null and params.enterprisename != ''">
+ and e.enterprisename like concat("%",#{params.enterprisename},"%")
+ </if>
+ <if test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and e.enterprisenumber = #{params.enterprisenumber}
+ </if>
+ <if test="params.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <if test="params.safetysupervision != null and params.safetysupervision != ''">
+ and e.safetysupervision = #{params.safetysupervision}
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+ <if test="params.starttime != null and params.starttime != ''">
+ and sod.createdat >= #{params.starttime}
+ </if>
+ <if test="params.endtime != null and params.endtime != ''">
+ and DATE_FORMAT(sod.createdat,'%Y-%m-%d') <= #{params.endtime}
+ </if>
+ <if test="params.itemname != null and params.itemname != ''">
+ and p.name like concat("%",#{params.itemname},"%")
+ </if>
+ <if test="params.itemcode != null and params.itemcode != ''">
+ and p.directioncode like concat("%",#{params.itemcode},"%")
+ </if>
+ group by p.directioncode
+ ) as a
+ order by salenum desc
+
+ </select>
+ <select id="selectSaleRecord4" resultType="java.util.Map">
+ SELECT
+ so.companynumber,
+ e.province,
+ e.city,
+ e.district,
+ e.enterprisename,
+ cu.idcardnum identify,
+ cu.path,
+ cu.nation,
+ cu.`name` name,
+ count(0) num,
+ sum(sod.returnflag) returnnum,
+ max(sod.createdat) saletime
+ FROM
+ <choose>
+ <when test="params.directioncode != null and params.directioncode != ''">
+ (select so.*
+ from
+ (
+ select a.companynumber,cu.idcardnum,cu.id customerid
+ from saleorderdetail as b
+ left join saleorder as a on b.ordercode = a.code
+ left join customer as cu on cu.id = a.customer
+ where b.directioncode like concat("%",#{params.directioncode},"%")
+ GROUP BY a.companynumber,cu.idcardnum) as m
+ left join saleorder as so on so.companynumber = m.companynumber and so.customer = m.customerid)
+ as so
+ </when>
+ <otherwise>
+ saleorder as so
+ </otherwise>
+ </choose>
+ left join saleorderdetail as sod on so.`code` = sod.ordercode
+ left join customer as cu on cu.id = so.customer
+ left join enterprise as e on e.enterprisenumber = so.companynumber
+ <where>
+ e.validflag = 1
+ and e.enterprisestatus = 'ON'
+ <choose>
+ <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and (
+ so.companynumber = #{params.enterprisenumber}
+ <if test="params.subList != null and params.subList.size() > 0">
+ <foreach collection="params.subList" item="item" index="index" >
+ or so.companynumber = #{item}
+ </foreach>
+ </if>
+
+ )
+
+ </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.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <if test="params.starttime != null and params.starttime != ''">
+ and so.createdat >= #{params.starttime}
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+ <if test="params.endtime != null and params.endtime != ''">
+ and so.createdat <= #{params.endtime}
+ </if>
+ <if test="params.identify != null and params.identify != ''">
+ and cu.idcardnum like concat("%",#{params.identify},"%")
+ </if>
+ <if test="params.nation != null and params.nation != ''">
+ and cu.nation like concat("%",#{params.nation},"%")
+ </if>
+
+ <if test="params.isNeedUploadPhoto == 1">
+ and cu.nation is null and cu.path is null
+ </if>
+ <if test="params.isNeedUploadPhoto == -1">
+ and cu.nation is null and cu.path is not null
+ </if>
+
+
+ </where>
+ group by cu.idcardnum,so.companynumber
+ order by max(sod.createdat) DESC
+ </select>
+ <select id="getPurchaseDetailInUnit" resultType="com.gk.firework.Domain.SaleOrderDetailInfo">
+ select
+ sod.*
+ from
+ <choose>
+ <when test="params.directioncode != null and params.directioncode != ''">
+ (select so.*
+ from
+ (
+ select a.companynumber,cu.idcardnum,cu.id customerid
+ from saleorderdetail as b
+ left join saleorder as a on b.ordercode = a.code
+ left join customer as cu on cu.id = a.customer
+ where b.directioncode like concat("%",#{params.directioncode},"%")
+ GROUP BY a.companynumber,cu.idcardnum) as m
+ left join saleorder as so on so.companynumber = m.companynumber and so.customer = m.customerid)
+ as so
+ </when>
+ <otherwise>
+ saleorder as so
+ </otherwise>
+ </choose>
+ left join saleorderdetail sod on so.code = sod.ordercode
+ left join customer cu on cu.id = so.customer
+ where cu.idcardnum = #{params.identify}
+ and so.companynumber= #{params.enterprisenumber}
+ <if test="params.starttime != null and params.starttime != ''">
+ and so.createdat > #{params.starttime}
+ </if>
+ <if test="params.endtime != null and params.endtime != ''">
+ and DATE_FORMAT(so.createdat ,'%Y-%m-%d') <= #{params.endtime}
+ </if>
+ </select>
+ <select id="selectEarlyWarn" resultType="com.gk.firework.Domain.SaleOrderInfo">
+ SELECT
+ saleorder.customer,
+ count(detail.id) as boxnum
+ from saleorder AS saleorder
+ left join saleorderdetail as detail on detail.ordercode = saleorder.code
+ where
+ saleorder.createdat >= #{starttime}
+ and saleorder.createdat <= #{endtime}
+ GROUP BY saleorder.customer
+ HAVING count(detail.id) >= #{min} and count(detail.id) < #{max}
+ </select>
+ <select id="selectAlarm" resultType="com.gk.firework.Domain.SaleOrderInfo">
+ SELECT
+ saleorder.customer,
+ count(detail.id) as boxnum
+ from saleorder AS saleorder
+ left join saleorderdetail as detail on detail.ordercode = saleorder.code
+ where
+ saleorder.createdat >= #{starttime}
+ and saleorder.createdat <= #{endtime}
+ GROUP BY saleorder.customer
+ HAVING count(detail.id) >= #{max}
+ </select>
+ <select id="selectByCustomer" resultType="java.lang.Long">
+ SELECT
+ enterprise.id
+ FROM saleorder AS saleorder
+ LEFT JOIN enterprise on enterprise.enterprisenumber = saleorder.companynumber
+ WHERE
+ saleorder.customer = #{customid}
+ ORDER BY createdat DESC
+ LIMIT 1
+ </select>
+ <select id="selectDailySaleReport" resultMap="DailySaleReportResultMap">
+ SELECT
+ a.itemCode,
+ a.itemName,
+ a.createdat,
+ saleNum,
+ saleAmount,
+ returnNum,
+ returnAmount,
+ saleAmount - returnAmount AS turnover
+ FROM
+ (
+ SELECT
+ detail.itemcode AS itemCode,
+ detail.itemname AS itemName,
+ count( 1 ) AS saleNum,
+ SUM( productprice.price ) AS saleAmount,
+ so.createdat
+ FROM
+ saleorderdetail AS detail
+ LEFT JOIN saleorder AS so ON so.`code` = detail.ordercode
+ LEFT JOIN productprice ON productprice.companynumber = so.companynumber
+ AND productprice.itemcode = detail.itemcode
+ <where>
+ 1=1
+ AND so.createdat >= #{condition.startDate}
+ AND so.createdat <= #{condition.endDate}
+ <if test="condition.companynumber != null and condition.companynumber != ''">
+ AND so.companynumber = #{condition.companynumber}
+ </if>
+ </where>
+ GROUP BY
+ detail.itemcode
+ ) a
+ LEFT JOIN (
+ SELECT
+ detail.itemcode AS itemCode,
+ detail.itemname AS itemName,
+ count( 1 ) AS returnNum,
+ SUM( productprice.price ) AS returnAmount,
+ so.createdat
+ FROM
+ saleorderdetail AS detail
+ LEFT JOIN saleorder AS so ON so.`code` = detail.ordercode
+ LEFT JOIN productprice ON productprice.companynumber = so.companynumber
+ AND productprice.itemcode = detail.itemcode
+ <where>
+ 1=1
+ AND so.createdat >= #{condition.startDate}
+ AND so.createdat <= #{condition.endDate}
+ <if test="condition.companynumber != null and condition.companynumber != ''">
+ AND so.companynumber = #{condition.companynumber}
+ </if>
+ AND detail.returnflag = 1
+ </where>
+ GROUP BY
+ detail.itemcode
+ ) b ON a.itemCode = b.itemCode
+ </select>
+ <select id="selectDataGrid" resultMap="OrderInfo">
+ select
+ so.id,
+ so.`code`,
+ so.createdat,
+ so.createdby,
+ so.customer,
+ so.idcardnum,
+ so.salesperson,
+ so.shop,
+ so.boxnum,
+ so.totalprice,
+ so.pay,
+ so.`change`,
+ so.`type`,
+ so.returnflag
+ from saleorder as so
+ <where>
+ 1=1
+ AND so.createdat >= #{condition.startDate}
+ AND so.createdat <= #{condition.endDate}
+ <if test="condition.companynumber != null and condition.companynumber != ''">
+ AND so.companynumber = #{condition.companynumber}
+ </if>
+ <if test="condition.code != null and condition.code != ''">
+ AND so.code = #{condition.code}
+ </if>
+ </where>
+ </select>
+
+ <select id="selectDetails" resultType="com.gk.firework.Domain.SaleOrderDetailInfo">
+ SELECT
+ sod.id,
+ sod.ordercode,
+ sod.itemcode,
+ sod.itemname,
+ sod.directioncode,
+ sod.price,
+ sod.specification,
+ sod.returnflag
+ from saleorderdetail as sod
+ where sod.ordercode = #{ordercode}
+ </select>
+ <select id="getEnterpriseSaleDetail" resultType="com.gk.firework.Domain.SaleOrderDetailInfo">
+ SELECT sod.*
+ from saleorderdetail as sod
+ LEFT JOIN saleorder as so on so.code = sod.ordercode
+ LEFT JOIN enterprise AS e ON e.enterprisenumber = so.companynumber
+ where so.companynumber = #{enterpriseNumber}
+ and sod.itemcode = #{itemcode}
+ and sod.createdat >= #{starttime}
+ and sod.createdat <= #{endtime}
+ </select>
+
+ <select id="selectEnterpriseEnterSellStore" resultType="java.util.Map">
+ SELECT
+ a.itemcode,
+ a.itemname,
+ a.salenum,
+ a.boxnumber,
+ round(a.salenum / a.boxnumber,2) boxnum,
+ a.saletime
+ from (
+ SELECT
+ count(sod.directioncode) salenum,
+ p.directioncode itemcode,
+ p.`name` itemname,
+ p.boxnumber,
+ max(sod.createdat) saletime
+ FROM product as p
+ left join saleorderdetail as sod on sod.itemcode = p.directioncode
+ LEFT JOIN saleorder as so on so.code = sod.ordercode
+ LEFT JOIN enterprise AS e ON e.enterprisenumber = so.companynumber
+ where p.isdel = 0
+ <if test="params.enterprisename != null and params.enterprisename != ''">
+ and e.enterprisename like concat("%",#{params.enterprisename},"%")
+ </if>
+ <if test="params.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <if test="params.safetysupervision != null and params.safetysupervision != ''">
+ and e.safetysupervision = #{params.safetysupervision}
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+ <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.itemname != null and params.itemname != ''">
+ and p.name like concat("%",#{params.itemname},"%")
+ </if>
+ <if test="params.itemcode != null and params.itemcode != ''">
+ and p.directioncode like concat("%",#{params.itemcode},"%")
+ </if>
+ group by p.directioncode
+ ) as a
+ order by salenum desc
+ </select>
+
+ <select id="selectEnterpriseSaleNumber" resultType="decimal">
+ SELECT
+ IFNULL(SUM( salenum ),0)
+ FROM
+ (
+ SELECT
+ count( 1 )/ p.boxnumber AS salenum
+ 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
+ <where>
+ so.companynumber = #{companyNumber}
+ <if test="starttime != null and starttime != ''">
+ and so.createdat >= #{starttime}
+ </if>
+ <if test="endtime != null and endtime != ''">
+ and so.createdat <= #{endtime}
+ </if>
+ </where>
+ GROUP BY
+ itemcode
+ ) temp
+ </select>
+ <select id="selectCitySaleNumber" resultType="decimal">
+ SELECT
+ IFNULL(SUM(salenum ),0)
+ FROM
+ (
+ SELECT
+ count( 1 )/ p.boxnumber AS salenum
+ 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.city = #{city}
+ and e.enterprisestatus = 'ON'
+ and e.validflag = 1
+ <if test="starttime != null and starttime != ''">
+ and so.createdat >= #{starttime}
+ </if>
+ <if test="endtime != null and endtime != ''">
+ and so.createdat <= #{endtime}
+ </if>
+ </where>
+ GROUP BY
+ itemcode
+ ) temp
+ </select>
+ <select id="selectSameOrder" resultMap="BaseResultMap">
+ SELECT
+ saleorder.id,
+ saleorder.`code`,
+ saleorder.createdat,
+ saleorder.createdby,
+ saleorder.customer,
+ saleorder.idcardnum,
+ saleorder.salesperson,
+ saleorder.shop,
+ saleorder.boxnum,
+ saleorder.totalprice,
+ saleorder.pay,
+ saleorder.`change`,
+ saleorder.`type`,
+ saleorder.returnflag
+ FROM
+ saleorder AS saleorder
+ LEFT JOIN saleorderdetail AS detail ON saleorder.`code` = detail.ordercode
+ <where>
+ saleorder.companynumber = #{companyNumber}
+ and saleorder.customer = #{customerId}
+ and saleorder.boxnum = #{num}
+ and detail.directioncode IN
+ <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </where>
+
+ </select>
+ <select id="selectAllDailySaleReport" resultType="java.util.Map">
+ SELECT
+ count(1) saleNum,
+ IFNULL(SUM(productprice.price),0) as saleAmount,
+ count( if(detail.returnflag = 1,1,null)) returnNum,
+ IFNULL(SUM( if(detail.returnflag = 1,productprice.price,null) ),0) returnAmount
+ FROM
+ saleorderdetail AS detail
+ LEFT JOIN saleorder AS so ON so.`code` = detail.ordercode
+ LEFT JOIN productprice ON productprice.companynumber = so.companynumber
+ AND productprice.itemcode = detail.itemcode
+ <where>
+ 1=1
+ AND so.createdat >= #{condition.startDate}
+ AND so.createdat <= #{condition.endDate}
+ <if test="condition.companynumber != null and condition.companynumber != ''">
+ AND so.companynumber = #{condition.companynumber}
+ </if>
+ </where>
+
+ </select>
+ <select id="selectProductSales" resultType="java.util.Map">
+
+ select round(ifnull(sum(saledata.boxnum) ,0),2) sales
+ from (
+ select p.directioncode,ifnull(count(0)/p.boxnumber,0) boxnum
+ from product as p
+ left join saleorderdetail as sod on p.directioncode = sod.itemcode
+ left join saleorder as so on sod.ordercode = so.code
+ left join enterprise as e on e.enterprisenumber = so.companynumber
+ where p.isdel = 0
+ and e.enterprisestatus = 'ON'
+ and e.validflag = 1
+ <if test="params.enterprisename != null and params.enterprisename != ''">
+ and e.enterprisename like concat("%",#{params.enterprisename},"%")
+ </if>
+ <if test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and e.enterprisenumber = #{params.enterprisenumber}
+ </if>
+ <if test="params.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <if test="params.safetysupervision != null and params.safetysupervision != ''">
+ and e.safetysupervision = #{params.safetysupervision}
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+ <if test="params.starttime != null and params.starttime != ''">
+ and sod.createdat >= #{params.starttime}
+ </if>
+ <if test="params.endtime != null and params.endtime != ''">
+ and DATE_FORMAT(sod.createdat,'%Y-%m-%d') <= #{params.endtime}
+ </if>
+ <if test="params.itemname != null and params.itemname != ''">
+ and p.name like concat("%",#{params.itemname},"%")
+ </if>
+ <if test="params.itemcode != null and params.itemcode != ''">
+ and p.directioncode like concat("%",#{params.itemcode},"%")
+ </if>
+ group by p.directioncode
+ ) as saledata
+
+
+ </select>
+ <select id="selectCitySales" resultType="java.math.BigDecimal">
+ select ifnull(sum(saleorder.totalprice),0)/10000 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 = #{city}
+ <if test="starttime != null and starttime != ''">
+ and saleorder.createdat >= #{starttime}
+ </if>
+ <if test="endtime != null and endtime != ''">
+ and saleorder.createdat <= #{endtime}
+ </if>
+
+ </select>
+ <select id="selectSaleAllPerson" resultType="java.lang.Integer">
+
+ select
+ count(0) num
+ from (
+ SELECT
+ cu.idcardnum
+ FROM
+ <choose>
+ <when test="params.directioncode != null and params.directioncode != ''">
+ (select so.*
+ from
+ (
+ select a.companynumber,cu.idcardnum,cu.id customerid
+ from saleorderdetail as b
+ left join saleorder as a on b.ordercode = a.code
+ left join customer as cu on cu.id = a.customer
+ where b.directioncode like concat("%",#{params.directioncode},"%")
+ GROUP BY a.companynumber,cu.idcardnum) as m
+ left join saleorder as so on so.companynumber = m.companynumber and so.customer = m.customerid)
+ as so
+ </when>
+ <otherwise>
+ saleorder as so
+ </otherwise>
+ </choose>
+ left join saleorderdetail as sod on so.`code` = sod.ordercode
+ left join customer as cu on cu.id = so.customer
+ left join enterprise as e on e.enterprisenumber = so.companynumber
+ <where>
+ e.validflag = 1
+ and e.enterprisestatus = 'ON'
+ <choose>
+ <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and (
+ so.companynumber = #{params.enterprisenumber}
+ <if test="params.subList != null and params.subList.size() > 0">
+ <foreach collection="params.subList" item="item" index="index" >
+ or so.companynumber = #{item}
+ </foreach>
+ </if>
+
+ )
+
+ </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.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <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.identify != null and params.identify != ''">
+ and cu.idcardnum like concat("%",#{params.identify},"%")
+ </if>
+ <if test="params.nation != null and params.nation != ''">
+ and cu.nation like concat("%",#{params.nation},"%")
+ </if>
+ <if test="params.isNeedUploadPhoto == 1">
+ and cu.nation is null and cu.path is null
+ </if>
+ <if test="params.isNeedUploadPhoto == -1">
+ and cu.nation is null and cu.path is not null
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+
+
+
+ </where>
+ group by cu.idcardnum
+ ) as res
+
+ </select>
+ <select id="selectAllSaleNum" resultType="java.lang.Integer">
+ SELECT
+ ifnull(sum(1),0)
+ FROM
+ <choose>
+ <when test="params.directioncode != null and params.directioncode != ''">
+ (select so.*
+ from
+ (
+ select a.companynumber,cu.idcardnum,cu.id customerid
+ from saleorderdetail as b
+ left join saleorder as a on b.ordercode = a.code
+ left join customer as cu on cu.id = a.customer
+ where b.directioncode like concat("%",#{params.directioncode},"%")
+ GROUP BY a.companynumber,cu.idcardnum) as m
+ left join saleorder as so on so.companynumber = m.companynumber and so.customer = m.customerid)
+ as so
+ </when>
+ <otherwise>
+ saleorder as so
+ </otherwise>
+ </choose>
+ left join saleorderdetail as sod on so.`code` = sod.ordercode
+ left join customer as cu on cu.id = so.customer
+ left join enterprise as e on e.enterprisenumber = so.companynumber
+ <where>
+ e.validflag = 1
+ and e.enterprisestatus = 'ON'
+ <choose>
+ <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and (
+ so.companynumber = #{params.enterprisenumber}
+ <if test="params.subList != null and params.subList.size() > 0">
+ <foreach collection="params.subList" item="item" index="index" >
+ or so.companynumber = #{item}
+ </foreach>
+ </if>
+
+ )
+
+ </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.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <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.identify != null and params.identify != ''">
+ and cu.idcardnum like concat("%",#{params.identify},"%")
+ </if>
+ <if test="params.nation != null and params.nation != ''">
+ and cu.nation like concat("%",#{params.nation},"%")
+ </if>
+ <if test="params.isNeedUploadPhoto == 1">
+ and cu.nation is null and cu.path is null
+ </if>
+ <if test="params.isNeedUploadPhoto == -1">
+ and cu.nation is null and cu.path is not null
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+
+
+ </where>
+
+
+ </select>
+ <select id="selectAllReturnNum" resultType="java.lang.Integer">
+ SELECT
+ ifnull( sum(sod.returnflag) ,0)
+ FROM
+ <choose>
+ <when test="params.directioncode != null and params.directioncode != ''">
+ (select so.*
+ from
+ (
+ select a.companynumber,cu.idcardnum,cu.id customerid
+ from saleorderdetail as b
+ left join saleorder as a on b.ordercode = a.code
+ left join customer as cu on cu.id = a.customer
+ where b.directioncode like concat("%",#{params.directioncode},"%")
+ GROUP BY a.companynumber,cu.idcardnum) as m
+ left join saleorder as so on so.companynumber = m.companynumber and so.customer = m.customerid)
+ as so
+ </when>
+ <otherwise>
+ saleorder as so
+ </otherwise>
+ </choose>
+ left join saleorderdetail as sod on so.`code` = sod.ordercode
+ left join customer as cu on cu.id = so.customer
+ left join enterprise as e on e.enterprisenumber = so.companynumber
+ <where>
+ e.validflag = 1
+ and e.enterprisestatus = 'ON'
+ <choose>
+ <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
+ and (
+ so.companynumber = #{params.enterprisenumber}
+ <if test="params.subList != null and params.subList.size() > 0">
+ <foreach collection="params.subList" item="item" index="index" >
+ or so.companynumber = #{item}
+ </foreach>
+ </if>
+
+ )
+
+ </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.parententerprisename != null and params.parententerprisename != ''">
+ and e.parententerprisename like concat("%",#{params.parententerprisename},"%")
+ </if>
+ <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.identify != null and params.identify != ''">
+ and cu.idcardnum like concat("%",#{params.identify},"%")
+ </if>
+ <if test="params.nation != null and params.nation != ''">
+ and cu.nation like concat("%",#{params.nation},"%")
+ </if>
+ <if test="params.isNeedUploadPhoto == 1">
+ and cu.nation is null and cu.path is null
+ </if>
+ <if test="params.isNeedUploadPhoto == -1">
+ and cu.nation is null and cu.path is not null
+ </if>
+ <if test="params.filterProvince != null and params.filterProvince != ''">
+ and e.province = #{params.filterProvince}
+ </if>
+ <if test="params.filterCity != null and params.filterCity != ''">
+ and e.city = #{params.filterCity}
+ </if>
+ <if test="params.filterDistrict != null and params.filterDistrict != ''">
+ and e.district = #{params.filterDistrict}
+ </if>
+ <if test="params.filterStreet != null and params.filterStreet != ''">
+ and e.street = #{params.filterStreet}
+ </if>
+ <if test="params.filterCommittee != null and params.filterCommittee != ''">
+ and e.committee = #{params.filterCommittee}
+ </if>
+
+
+ </where>
+ </select>
+</mapper>
--
Gitblit v1.9.2