From 057d4df78bcc5b34ca7c6897918946c4a9e65d18 Mon Sep 17 00:00:00 2001 From: Fancy <Fancy.fx@outlook.com> Date: 星期二, 14 一月 2025 13:52:06 +0800 Subject: [PATCH] queryStatisticOrder --- pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml | 59 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 49 insertions(+), 10 deletions(-) diff --git a/pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml index a464b33..3a63783 100644 --- a/pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml +++ b/pms-parent/pms-global/src/main/resources/mapper/PrOrderMapper.xml @@ -12,6 +12,9 @@ <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"/> @@ -21,9 +24,12 @@ <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, + director,d_mobile,delivery_date,delivery_address,recipient,r_mobile, status,creator,dt, deleted,remark </sql> @@ -38,7 +44,7 @@ </select> <select id="exists" resultType="java.lang.Boolean"> select count(1) from pr_order where name = #{name} - <if test="id != null and id !=''"> + <if test="id != null"> and id != #{id} </if> </select> @@ -107,6 +113,7 @@ </if> </trim> </select> + <!--涓嬫媺鑿滃崟璁㈠崟--> <select id="selectAll" resultType="com.dy.pmsGlobal.pojoPr.PrOrder"> select <include refid="Base_Column_List" /> @@ -137,6 +144,23 @@ </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} @@ -148,31 +172,37 @@ <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 and id !=''">id,</if> + <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 and dt !=''">dt,</if> - <if test="deleted != null and deleted !=''">deleted,</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 and id !=''">#{id,jdbcType=BIGINT},</if> + <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 and dt !=''">#{dt,jdbcType=TIMESTAMP},</if> - <if test="deleted != null and deleted !=''">#{deleted,jdbcType=TINYINT},</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> @@ -197,16 +227,25 @@ <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 and dt !=''"> + <if test="dt != null"> dt = #{dt,jdbcType=TIMESTAMP}, </if> - <if test="deleted != null and deleted !=''"> + <if test="deleted != null"> deleted = #{deleted,jdbcType=TINYINT}, </if> <if test="remark != null and remark !=''"> -- Gitblit v1.8.0