郑永安
2023-06-19 2fcd97552d16718cc7997629fd637a73a5a4483f
src/main/java/com/gk/firework/Mapper/mybatis/DeliveryOrderInfoMapper.xml
对比新文件
@@ -0,0 +1,179 @@
<?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.DeliveryOrderInfoMapper" >
  <resultMap id="BaseResultMap" type="com.gk.firework.Domain.DeliveryOrderInfo" >
    <!--          -->
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="ordercode" property="ordercode" jdbcType="VARCHAR" />
    <result column="createat" property="createat" jdbcType="TIMESTAMP" />
    <result column="createby" property="createby" jdbcType="VARCHAR" />
    <result column="operator" property="operator" jdbcType="VARCHAR" />
    <result column="operatat" property="operatat" jdbcType="TIMESTAMP" />
    <result column="shop" property="shop" jdbcType="VARCHAR" />
    <result column="boxnum" property="boxnum" jdbcType="INTEGER" />
    <result column="type" property="type" jdbcType="TINYINT" />
    <result column="companynumber" property="companynumber" jdbcType="VARCHAR" />
  </resultMap>
  <sql id="Base_Column_List" >
    <!--          -->
    id, ordercode, createat, createby, operator, operatat, shop, boxnum, `type`, companynumber
  </sql>
    <select id="selectPages" resultType="com.gk.firework.Domain.Vo.DeliveryOrderInfoVo">
      select
      do.id,
      do.ordercode,
      do.createat,
      do.createby,
      do.operator,
      do.operatat,
      do.shop,
      sum(do.num) realboxnum,
      do.transportcert,
      do.`type`,
      do.companynumber
      from (
          select
          do.id,
          do.ordercode,
          do.createat,
          do.createby,
          do.operator,
          do.operatat,
          do.shop,
          sum(dd.num/p.boxnumber) num,
          do.transportcert,
          do.`type`,
          do.companynumber
          from deliveryorder as do
          left join deliverydetail as dd on dd.deliverycode = do.ordercode
          left join product as p on p.directioncode = dd.itemcode and p.isdel = 0
          <where>
            <if test="params.starttime != null and params.starttime != ''">
              and  do.operatat &gt;= #{params.starttime}
            </if>
            <if test="params.endtime != null and params.endtime != ''">
              and do.operatat &lt; #{params.endtime}
            </if>
            <if test="params.transportcert != null and params.transportcert != ''">
              and do.transportcert like concat("%",#{params.transportcert},"%")
            </if>
            <if test="params.type != null and params.type != ''">
              and do.type = #{params.type}
            </if>
            <if test="params.code != null and params.code != ''">
              and do.ordercode like concat("%",#{params.code},"%")
            </if>
          </where>
          group by do.ordercode,dd.itemcode
      ) as do
      left join enterprise as e on e.enterprisenumber = do.companynumber
      <where>
         e.validflag = 1
         and e.enterprisestatus = 'ON'
        <choose>
          <when test="params.enterprisenumber != null and params.enterprisenumber != ''">
            and do.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.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.filterType != null and params.filterType != ''">
          and do.type = #{params.filterType}
        </if>
        <if test="params.enterprisename != null and params.enterprisename != ''">
          and e.enterprisename like concat("%",#{params.enterprisename},"%")
        </if>
        <if test="params.safetysupervision != null and params.safetysupervision != ''">
          and e.safetysupervision = #{params.safetysupervision}
        </if>
      </where>
      group by do.ordercode
      order by do.operatat desc
    </select>
  <select id="getDeliveryNum" resultType="decimal">
    select
    sum(detail.num/product.boxnumber)
    from deliverydetail as detail
    left join deliveryorder as delivery on delivery.ordercode = detail.deliverycode
    left join product on detail.itemcode = product.directioncode and product.isdel = 0
    <where>
      delivery.type = 1
      and delivery.operatat &gt;= #{condition.beginDate}
      and delivery.operatat &lt;= #{condition.endDate}
      and delivery.companynumber = #{condition.companyNumber}
      <if test="condition.itemCode != null">
        and product.directioncode = #{condition.itemCode}
      </if>
    </where>
  </select>
  <select id="getReturnDeliveryNum" resultType="decimal">
    select
    sum(detail.num/product.boxnumber)
    from deliverydetail as detail
    left join deliveryorder as delivery on delivery.ordercode = detail.deliverycode
    left join product on detail.itemcode = product.directioncode and product.isdel = 0
    <where>
      delivery.type = 2
      and delivery.operatat &gt;= #{condition.beginDate}
      and delivery.operatat &lt;= #{condition.endDate}
      and delivery.companynumber = #{condition.companyNumber}
      <if test="condition.itemCode != null">
        and product.directioncode = #{condition.itemCode}
      </if>
    </where>
  </select>
  <select id="selectDeliveryOrderByTimeAndUser" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from deliveryorder
    <where>
      operator = #{username}
      and operatat = #{datetime}
    </where>
    limit 1
  </select>
  <select id="getProductVosByCert" resultType="com.gk.firework.Domain.Vo.ProductVo">
    select
    detail.itemcode as itemCode,
    detail.itemname as name,
    COUNT(detail.id)as num
    from deliverydetail_slice1 as detail
    LEFT JOIN deliveryorder_slice1 as dor on dor.ordercode = detail.deliverycode
    where dor.transportcert = #{cert}
    group by detail.itemcode
  </select>
</mapper>