<?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.dy.pmsGlobal.daoPr.PrOrderMapper">
|
|
<resultMap id="BaseResultMap" type="com.dy.pmsGlobal.pojoPr.PrOrder">
|
<id property="id" column="id" jdbcType="BIGINT"/>
|
<result property="name" column="name" jdbcType="VARCHAR"/>
|
<result property="customerName" column="customer_name" jdbcType="VARCHAR"/>
|
<result property="projectName" column="project_name" jdbcType="VARCHAR"/>
|
<result property="director" column="director" jdbcType="VARCHAR"/>
|
<result property="dMobile" column="d_mobile" jdbcType="VARCHAR"/>
|
<result property="deliveryDate" column="delivery_date" jdbcType="VARCHAR"/>
|
<result property="deliveryAddress" column="delivery_address" jdbcType="VARCHAR"/>
|
<result property="recipient" column="recipient" jdbcType="VARCHAR"/>
|
<result property="rMobile" column="r_mobile" jdbcType="VARCHAR"/>
|
<result property="status" column="status" jdbcType="TINYINT"/>
|
<result property="creator" column="creator" jdbcType="VARCHAR"/>
|
<result property="dt" column="dt" jdbcType="TIMESTAMP"/>
|
<result column="deleted" property="deleted" typeHandler="com.dy.common.mybatis.BooleanTypeHandler" />
|
<result property="remark" column="remark" jdbcType="VARCHAR"/>
|
</resultMap>
|
<resultMap id="BaseResultMap2" type="com.dy.pmsGlobal.pojoPr.PrOrder" extends="BaseResultMap">
|
<collection property="items" ofType="com.dy.pmsGlobal.pojoPr.PrOrderItem" fetchType="eager" select="com.dy.pmsGlobal.daoPr.PrOrderItemMapper.selectItems" column="id" />
|
</resultMap>
|
<resultMap id="BaseResultMap3" type="com.dy.pmsGlobal.pojoPr.PrOrder" extends="BaseResultMap">
|
<collection property="items" ofType="com.dy.pmsGlobal.pojoPr.PrOrderItem" fetchType="eager" select="com.dy.pmsGlobal.daoPr.PrOrderItemMapper.selectDistinctPro" column="id" />
|
</resultMap>
|
<sql id="Base_Column_List">
|
id,`name`,customer_name,project_name,
|
director,d_mobile,delivery_date,delivery_address,recipient,r_mobile,
|
status,creator,dt,
|
deleted,remark
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap2">
|
select
|
<include refid="Base_Column_List" />
|
from pr_order
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<select id="selectOrderNameById" parameterType="java.lang.Long" resultType="String">
|
select name from pr_order where id=#{orderId,jdbcType=BIGINT}
|
</select>
|
<select id="exists" resultType="java.lang.Boolean">
|
select count(1) from pr_order where name = #{name}
|
<if test="id != null">
|
and id != #{id}
|
</if>
|
</select>
|
|
<select id="selectSome" resultMap="BaseResultMap2">
|
select
|
<include refid="Base_Column_List" />
|
from pr_order p
|
where p.deleted!=1
|
<trim prefix="and" suffixOverrides="and">
|
<if test="name != null and name != ''">
|
name like concat('%', #{name}, '%') and
|
</if>
|
<if test="customerName != null and customerName != ''">
|
customer_name like concat('%', #{customerName}, '%') and
|
</if>
|
<if test="projectName != null and projectName != ''">
|
project_name like concat('%', #{projectName}, '%') and
|
</if>
|
<if test="director != null and director != ''">
|
director like concat('%', #{director}, '%') and
|
</if>
|
<if test="startDate != null and startDate != ''">
|
delivery_date <![CDATA[ > ]]> #{startDate,jdbcType=VARCHAR} and
|
</if>
|
<if test="endDate != null and endDate != ''">
|
delivery_date <![CDATA[ < ]]> #{endDate,jdbcType=VARCHAR} and
|
</if>
|
<if test="status != null">
|
status = #{status,jdbcType=TINYINT} and
|
</if>
|
</trim>
|
order by id desc
|
<trim prefix="limit " >
|
<if test="start != null and count != null">
|
#{start}, #{count}
|
</if>
|
</trim>
|
</select>
|
|
<select id="selectSomeCount" resultType="java.lang.Long">
|
select count(1)
|
from pr_order p
|
where p.deleted!=1
|
<trim prefix="and" suffixOverrides="and">
|
<if test="name != null and name != ''">
|
name like concat('%', #{name}, '%') and
|
</if>
|
<if test="customerName != null and customerName != ''">
|
customer_name like concat('%', #{customerName}, '%') and
|
</if>
|
<if test="projectName != null and projectName != ''">
|
project_name like concat('%', #{projectName}, '%') and
|
</if>
|
<if test="director != null and director != ''">
|
director like concat('%', #{director}, '%') and
|
</if>
|
<if test="startDate != null and startDate != ''">
|
delivery_date <![CDATA[ > ]]> #{startDate,jdbcType=VARCHAR} and
|
</if>
|
<if test="endDate != null and endDate != ''">
|
delivery_date <![CDATA[ < ]]> #{endDate,jdbcType=VARCHAR} and
|
</if>
|
<if test="status != null">
|
status = #{status,jdbcType=TINYINT} and
|
</if>
|
</trim>
|
</select>
|
<!--下拉菜单订单-->
|
<select id="selectAll" resultType="com.dy.pmsGlobal.pojoPr.PrOrder">
|
select
|
<include refid="Base_Column_List" />
|
from pr_order p
|
where p.deleted!=1
|
<trim prefix="and" suffixOverrides="and">
|
<if test="name != null and name != ''">
|
name like concat('%', #{name}, '%') and
|
</if>
|
<if test="customerName != null and customerName != ''">
|
customer_name like concat('%', #{customerName}, '%') and
|
</if>
|
<if test="projectName != null and projectName != ''">
|
project_name like concat('%', #{projectName}, '%') and
|
</if>
|
<if test="director != null and director != ''">
|
director like concat('%', #{director}, '%') and
|
</if>
|
<if test="startDate != null and startDate != ''">
|
delivery_date <![CDATA[ > ]]> #{startDate,jdbcType=VARCHAR} and
|
</if>
|
<if test="endDate != null and endDate != ''">
|
delivery_date <![CDATA[ < ]]> #{endDate,jdbcType=VARCHAR} and
|
</if>
|
<if test="status != null">
|
status = #{status,jdbcType=TINYINT} and
|
</if>
|
</trim>
|
order by id desc
|
</select>
|
<select id="queryStatisticOrder" resultType="cn.hutool.json.JSONObject">
|
SELECT
|
count(1) AS total,
|
SUM(CASE WHEN delivery_date >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) THEN 1 ELSE 0 END) AS year_total,
|
SUM(CASE WHEN complete = 'complete' THEN 1 ELSE 0 END) AS complete,
|
SUM(CASE WHEN complete = 'uncomplete' THEN 1 ELSE 0 END) AS uncomplete
|
FROM(
|
SELECT po.id,po.delivery_date, CASE WHEN po.`status`= -1 OR poi.complete ='complete' THEN 'complete' ELSE 'uncomplete' END AS complete FROM
|
(SELECT id,`name`, `status`,delivery_date FROM pr_order WHERE deleted = 0) po
|
LEFT JOIN (
|
SELECT pr.order_id ,CASE WHEN COUNT(pr.order_id) - SUM(pr.flag) = 0 THEN 'complete' ELSE 'uncomplete' END AS complete
|
FROM
|
(SELECT item.order_id,item.pro_id,CASE WHEN item.complete_number - item.number >= 0 THEN 1 ELSE 0 END AS flag FROM
|
(SELECT order_id,pro_id, SUM(number) number,SUM(IFNULL(complete_number,0)) complete_number FROM pr_order_item GROUP BY order_id,pro_id) item
|
) pr GROUP BY pr.order_id) poi
|
ON po.id = poi.order_id) statistic
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
delete from pr_order
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<update id="deleteLogicById" parameterType="java.lang.Long">
|
update pr_order set deleted = 1
|
where id = #{id}
|
</update>
|
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pmsGlobal.pojoPr.PrOrder" useGeneratedKeys="true">
|
insert into pr_order
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">id,</if>
|
<if test="name != null and name !=''">name,</if>
|
<if test="customerName!= null and customerName !=''">customer_name,</if>
|
<if test="projectName!= null and projectName !=''">project_name,</if>
|
<if test="director != null and director !=''">director,</if>
|
<if test="dMobile != null and dMobile !=''">d_mobile,</if>
|
<if test="deliveryDate!= null and deliveryDate !=''">delivery_date,</if>
|
<if test="deliveryAddress!= null and deliveryAddress !=''">delivery_date,</if>
|
<if test="recipient!= null and recipient !=''">recipient,</if>
|
<if test="rMobile!= null and rMobile !=''">r_mobile,</if>
|
<if test="status != null">status,</if>
|
<if test="creator != null and creator !=''">creator,</if>
|
<if test="dt != null">dt,</if>
|
<if test="deleted != null">deleted,</if>
|
<if test="remark != null and remark !=''">remark,</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">#{id,jdbcType=BIGINT},</if>
|
<if test="name != null and name !=''">#{name,jdbcType=VARCHAR},</if>
|
<if test="customerName!= null and customerName !=''">#{customerName,jdbcType=VARCHAR},</if>
|
<if test="projectName!= null and projectName !=''">#{projectName,jdbcType=VARCHAR},</if>
|
<if test="director != null and director !=''">#{director,jdbcType=VARCHAR},</if>
|
<if test="dMobile != null and dMobile !=''">#{dMobile,jdbcType=VARCHAR},</if>
|
<if test="deliveryDate!= null and deliveryDate !=''">#{deliveryDate,jdbcType=VARCHAR},</if>
|
<if test="deliveryAddress!= null and deliveryAddress !=''">#{deliveryAddress,jdbcType=VARCHAR},</if>
|
<if test="recipient!= null and recipient !=''">#{recipient,jdbcType=VARCHAR},</if>
|
<if test="rMobile!= null and rMobile !=''">#{rMobile,jdbcType=VARCHAR},</if>
|
<if test="status != null">#{status,jdbcType=TINYINT},</if>
|
<if test="creator != null and creator !=''">#{creator,jdbcType=VARCHAR},</if>
|
<if test="dt != null">#{dt,jdbcType=TIMESTAMP},</if>
|
<if test="deleted != null">#{deleted,jdbcType=TINYINT},</if>
|
<if test="remark != null and remark !=''">#{remark,jdbcType=VARCHAR},</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pmsGlobal.pojoPr.PrOrder">
|
update pr_order
|
<set>
|
<if test="name != null and name !=''">
|
name = #{name,jdbcType=VARCHAR},
|
</if>
|
<if test="customerName!= null and customerName !=''">
|
customer_name = #{customerName,jdbcType=VARCHAR},
|
</if>
|
<if test="projectName!= null and projectName !=''">
|
project_name = #{projectName,jdbcType=VARCHAR},
|
</if>
|
<if test="director != null and director !=''">
|
director = #{director,jdbcType=VARCHAR},
|
</if>
|
<if test="dMobile != null and dMobile !=''">
|
d_mobile = #{dMobile,jdbcType=VARCHAR},
|
</if>
|
<if test="deliveryDate!= null and deliveryDate !=''">
|
delivery_date = #{deliveryDate,jdbcType=VARCHAR},
|
</if>
|
<if test="deliveryAddress!= null and deliveryAddress !=''">
|
delivery_date = #{deliveryAddress,jdbcType=VARCHAR},
|
</if>
|
<if test="recipient!= null and recipient !=''">
|
recipient = #{recipient,jdbcType=VARCHAR},
|
</if>
|
<if test="rMobile!= null and rMobile !=''">
|
r_mobile = #{rMobile,jdbcType=VARCHAR},
|
</if>
|
<if test="status != null">
|
status = #{status,jdbcType=TINYINT},
|
</if>
|
<if test="creator != null and creator !=''">
|
creator = #{creator,jdbcType=VARCHAR},
|
</if>
|
<if test="dt != null">
|
dt = #{dt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
deleted = #{deleted,jdbcType=TINYINT},
|
</if>
|
<if test="remark != null and remark !=''">
|
remark = #{remark,jdbcType=VARCHAR},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
</mapper>
|