12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076 |
- <?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.zkqy.business.mapper.SaleOrderMapper">
- <resultMap type="com.zkqy.business.domain.SaleOrder" id="SaleOrderResult">
- <result property="id" column="id"/>
- <result property="saleNo" column="sale_no"/>
- <result property="saleCustomNo" column="sale_custom_no"/>
- <result property="saleDate" column="sale_date"/>
- <result property="saleEstimatedTime" column="sale_estimated_time"/>
- <result property="saleLeadTime" column="sale_lead_time"/>
- <result property="saleProductsNo" column="sale_products_no"/>
- <result property="saleAmounts" column="sale_amounts"/>
- <result property="saleAmountInWords" column="sale_amount_in_words"/>
- <result property="salePayType" column="sale_pay_type"/>
- <result property="saleOrderEstimatedTime" column="sale_order_estimated_time"/>
- <result property="saleOrderTechnologyNo" column="sale_order_technology_no"/>
- <result property="salesman" column="salesman"/>
- <result property="saleLeader" column="sale_leader"/>
- <result property="finance" column="finance"/>
- <result property="production" column="production"/>
- <result property="saleApprover" column="sale_approver"/>
- <result property="status" column="status"/>
- <result property="orderType" column="order_type"/>
- <result property="remark" column="remark"/>
- <result property="createById" column="create_by_id"/>
- <result property="createBy" column="create_by"/>
- <result property="createTime" column="create_time"/>
- <result property="updateById" column="update_by_id"/>
- <result property="updateBy" column="update_by"/>
- <result property="updateTime" column="update_time"/>
- <result property="delFlag" column="del_flag"/>
- <result property="taskProcessKey" column="task_process_key"/>
- <result property="taskNodeKey" column="task_node_key"/>
- <result property="processKey" column="process_key"/>
- <result property="earnestMoney" column="earnest_money"/>
- <result property="deliveryDate" column="delivery_date"/>
- <result property="lotNumber" column="lot_number"/>
- <result property="completionTime" column="completion_time"/>
- <result property="processingUnit" column="processing_unit"/>
- <result property="contactPerson" column="contact_person"/>
- <result property="address" column="address"/>
- <result property="materialType" column="material_type"/>
- <result property="outsourceSalePayType" column="outsource_sale_pay_type"/>
- <result property="oldInventoryState" column="old_inventory_state"/>
- </resultMap>
- <sql id="selectSaleOrderVo">
- select id,
- sale_no,
- sale_custom_no,
- sale_date,
- sale_estimated_time,
- sale_lead_time,
- sale_products_no,
- sale_amounts,
- sale_amount_in_words,
- sale_pay_type,
- sale_order_estimated_time,
- sale_order_technology_no,
- salesman,
- sale_leader,
- finance,
- production,
- sale_approver,
- status,
- order_type,
- remark,
- create_by_id,
- create_by,
- create_time,
- update_by_id,
- update_by,
- update_time,
- del_flag,
- task_process_key,
- task_node_key,
- process_key,
- earnest_money,
- delivery_date,
- lot_number,
- completion_time,
- processing_unit,
- contact_person,
- address,
- material_type,
- outsource_sale_pay_type,
- old_inventory_state
- from {DBNAME}.sale_order
- </sql>
- <select id="selectSaleOrderList" parameterType="com.zkqy.business.domain.SaleOrder" resultMap="SaleOrderResult">
- <include refid="selectSaleOrderVo"/>
- where del_flag = '0'
- <if test="saleNo != null and saleNo != ''">and sale_no = #{saleNo}</if>
- <if test="saleCustomNo != null and saleCustomNo != ''">and sale_custom_no = #{saleCustomNo}</if>
- <if test="saleDate != null and saleDate != ''">and sale_date = #{saleDate}</if>
- <if test="saleEstimatedTime != null ">and sale_estimated_time = #{saleEstimatedTime}</if>
- <if test="saleLeadTime != null and saleLeadTime != ''">and sale_lead_time = #{saleLeadTime}</if>
- <if test="saleProductsNo != null and saleProductsNo != ''">and sale_products_no = #{saleProductsNo}</if>
- <if test="saleAmounts != null ">and sale_amounts = #{saleAmounts}</if>
- <if test="saleAmountInWords != null and saleAmountInWords != ''">and sale_amount_in_words =
- #{saleAmountInWords}
- </if>
- <if test="salePayType != null and salePayType != ''">and sale_pay_type = #{salePayType}</if>
- <if test="saleOrderEstimatedTime != null and saleOrderEstimatedTime != ''">and sale_order_estimated_time =
- #{saleOrderEstimatedTime}
- </if>
- <if test="saleOrderTechnologyNo != null and saleOrderTechnologyNo != ''">and sale_order_technology_no =
- #{saleOrderTechnologyNo}
- </if>
- <if test="salesman != null and salesman != ''">and salesman = #{salesman}</if>
- <if test="saleLeader != null and saleLeader != ''">and sale_leader = #{saleLeader}</if>
- <if test="finance != null and finance != ''">and finance = #{finance}</if>
- <if test="production != null and production != ''">and production = #{production}</if>
- <if test="saleApprover != null and saleApprover != ''">and sale_approver = #{saleApprover}</if>
- <if test="status != null and status != ''">and status = #{status}</if>
- <if test="orderType != null and orderType != ''">and order_type = #{orderType}</if>
- <if test="createById != null ">and create_by_id = #{createById}</if>
- <if test="updateById != null ">and update_by_id = #{updateById}</if>
- <if test="taskProcessKey != null and taskProcessKey != ''">and task_process_key = #{taskProcessKey}</if>
- <if test="taskNodeKey != null and taskNodeKey != ''">and task_node_key = #{taskNodeKey}</if>
- <if test="processKey != null and processKey != ''">and process_key = #{processKey}</if>
- <if test="earnestMoney != null and earnestMoney != ''">and earnest_money = #{earnestMoney}</if>
- <if test="deliveryDate != null and deliveryDate != ''">and delivery_date = #{deliveryDate}</if>
- </select>
- <select id="selectSaleOrderById" parameterType="Long" resultMap="SaleOrderResult">
- <include refid="selectSaleOrderVo"/>
- where id = #{id}
- </select>
- <select id="selectSaleOrderByNo" parameterType="string" resultType="map">
- SELECT sale.sale_no AS saleNo,
- cus.custom_name AS customName,
- tz.delivery_date AS deliveryDate,
- tz.dispatch_note_remark AS dispatchNoteRemark
- FROM {DBNAME}.sale_order AS sale
- LEFT JOIN {DBNAME}.customer AS cus ON sale.sale_custom_no = cus.custom_no
- LEFT JOIN {DBNAME}.product_invoice AS tz ON tz.sale_order_no = sale.sale_no
- WHERE
- sale.sale_no = #{saleOrderNo}
- </select>
- <insert id="insertSaleOrder" parameterType="com.zkqy.business.domain.SaleOrder" useGeneratedKeys="true"
- keyProperty="id">
- insert into {DBNAME}.sale_order
- <trim prefix="(" suffix=")" suffixOverrides=",">
- <if test="saleNo != null">sale_no,</if>
- <if test="saleCustomNo != null">sale_custom_no,</if>
- <if test="saleDate != null">sale_date,</if>
- <if test="saleEstimatedTime != null">sale_estimated_time,</if>
- <if test="saleLeadTime != null">sale_lead_time,</if>
- <if test="saleProductsNo != null">sale_products_no,</if>
- <if test="saleAmounts != null">sale_amounts,</if>
- <if test="saleAmountInWords != null">sale_amount_in_words,</if>
- <if test="salePayType != null">sale_pay_type,</if>
- <if test="saleOrderEstimatedTime != null">sale_order_estimated_time,</if>
- <if test="saleOrderTechnologyNo != null">sale_order_technology_no,</if>
- <if test="salesman != null">salesman,</if>
- <if test="saleLeader != null">sale_leader,</if>
- <if test="finance != null">finance,</if>
- <if test="production != null">production,</if>
- <if test="saleApprover != null">sale_approver,</if>
- <if test="status != null">status,</if>
- <if test="orderType != null">order_type,</if>
- <if test="remark != null">remark,</if>
- <if test="createById != null">create_by_id,</if>
- <if test="createBy != null">create_by,</if>
- <if test="createTime != null">create_time,</if>
- <if test="taskProcessKey != null">task_process_key,</if>
- <if test="taskNodeKey != null">task_node_key,</if>
- <if test="processKey != null">process_key,</if>
- <if test="earnestMoney != null">earnest_money,</if>
- <if test="deliveryDate != null">delivery_date,</if>
- <if test="lotNumber != null">lot_number,</if>
- <if test="completionTime != null">completion_time,</if>
- <if test="processingUnit != null">processing_unit,</if>
- <if test="contactPerson != null">contact_person,</if>
- <if test="address != null">address,</if>
- <if test="materialType != null">material_type,</if>
- <if test="outsourceSalePayType != null">outsource_sale_pay_type,</if>
- del_flag
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides=",">
- <if test="saleNo != null">#{saleNo},</if>
- <if test="saleCustomNo != null">#{saleCustomNo},</if>
- <if test="saleDate != null">#{saleDate},</if>
- <if test="saleEstimatedTime != null">#{saleEstimatedTime},</if>
- <if test="saleLeadTime != null">#{saleLeadTime},</if>
- <if test="saleProductsNo != null">#{saleProductsNo},</if>
- <if test="saleAmounts != null">#{saleAmounts},</if>
- <if test="saleAmountInWords != null">#{saleAmountInWords},</if>
- <if test="salePayType != null">#{salePayType},</if>
- <if test="saleOrderEstimatedTime != null">#{saleOrderEstimatedTime},</if>
- <if test="saleOrderTechnologyNo != null">#{saleOrderTechnologyNo},</if>
- <if test="salesman != null">#{salesman},</if>
- <if test="saleLeader != null">#{saleLeader},</if>
- <if test="finance != null">#{finance},</if>
- <if test="production != null">#{production},</if>
- <if test="saleApprover != null">#{saleApprover},</if>
- <if test="status != null">#{status},</if>
- <if test="orderType != null">#{orderType},</if>
- <if test="remark != null">#{remark},</if>
- <if test="createById != null">#{createById},</if>
- <if test="createBy != null">#{createBy},</if>
- <if test="createTime != null">#{createTime},</if>
- <if test="taskProcessKey != null">#{taskProcessKey},</if>
- <if test="taskNodeKey != null">#{taskNodeKey},</if>
- <if test="processKey != null">#{processKey},</if>
- <if test="earnestMoney != null">#{earnestMoney},</if>
- <if test="deliveryDate != null">#{deliveryDate},</if>
- <if test="lotNumber != null">#{lotNumber},</if>
- <if test="completionTime != null">#{completionTime},</if>
- <if test="processingUnit != null">#{processingUnit},</if>
- <if test="contactPerson != null">#{contactPerson},</if>
- <if test="address != null">#{address},</if>
- <if test="materialType != null">#{materialType},</if>
- <if test="outsourceSalePayType != null">#{outsourceSalePayType},</if>
- '0'
- </trim>
- </insert>
- <update id="updateSaleOrder" parameterType="com.zkqy.business.domain.SaleOrder">
- update {DBNAME}.sale_order
- <trim prefix="SET" suffixOverrides=",">
- <if test="saleNo != null">sale_no = #{saleNo},</if>
- <if test="saleCustomNo != null">sale_custom_no = #{saleCustomNo},</if>
- <if test="saleDate != null">sale_date = #{saleDate},</if>
- <if test="saleEstimatedTime != null">sale_estimated_time = #{saleEstimatedTime},</if>
- <if test="saleLeadTime != null">sale_lead_time = #{saleLeadTime},</if>
- <if test="saleProductsNo != null">sale_products_no = #{saleProductsNo},</if>
- <if test="saleAmounts != null">sale_amounts = #{saleAmounts},</if>
- <if test="saleAmountInWords != null">sale_amount_in_words = #{saleAmountInWords},</if>
- <if test="salePayType != null">sale_pay_type = #{salePayType},</if>
- <if test="saleOrderEstimatedTime != null">sale_order_estimated_time = #{saleOrderEstimatedTime},</if>
- <if test="saleOrderTechnologyNo != null">sale_order_technology_no = #{saleOrderTechnologyNo},</if>
- <if test="salesman != null">salesman = #{salesman},</if>
- <if test="saleLeader != null">sale_leader = #{saleLeader},</if>
- <if test="finance != null">finance = #{finance},</if>
- <if test="production != null">production = #{production},</if>
- <if test="saleApprover != null">sale_approver = #{saleApprover},</if>
- <if test="status != null">status = #{status},</if>
- <if test="orderType != null">order_type = #{orderType},</if>
- <if test="remark != null">remark = #{remark},</if>
- <if test="createById != null">create_by_id = #{createById},</if>
- <if test="updateById != null">update_by_id = #{updateById},</if>
- <if test="updateBy != null">update_by = #{updateBy},</if>
- <if test="updateTime != null">update_time = #{updateTime},</if>
- <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
- <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
- <if test="processKey != null">process_key = #{processKey},</if>
- <if test="earnestMoney != null">earnest_money = #{earnestMoney},</if>
- <if test="deliveryDate != null">delivery_date = #{deliveryDate},</if>
- <if test="lotNumber != null">lot_number = #{lotNumber},</if>
- <if test="completionTime != null">completion_time = #{completionTime},</if>
- <if test="processingUnit != null">processing_unit = #{processingUnit},</if>
- <if test="contactPerson != null">contact_person = #{contactPerson},</if>
- <if test="address != null">address = #{address},</if>
- <if test="materialType != null">material_type = #{materialType},</if>
- <if test="outsourceSalePayType != null">outsource_sale_pay_type = #{outsourceSalePayType},</if>
- </trim>
- where id = #{id}
- </update>
- <delete id="deleteSaleOrderById" parameterType="Long">
- delete
- from sale_order
- where id = #{id}
- </delete>
- <update id="deleteSaleOrderByIds" parameterType="String">
- update {DBNAME}.sale_order set del_flag = '2' where id in
- <foreach item="id" collection="list" open="(" separator="," close=")">
- #{id}
- </foreach>
- </update>
- <select id="selectSaleOrderBySaleNo" parameterType="String" resultMap="SaleOrderResult">
- <include refid="selectSaleOrderVo"/>
- where sale_no = #{saleNo} and del_flag = '0'
- </select>
- <update id="batchUpdateSaleOrder" parameterType="com.zkqy.business.domain.vo.SaleOrderVO">
- update {DBNAME}.sale_order
- <trim prefix="SET" suffixOverrides=",">
- <if test="salesman != null">salesman = #{salesman},</if>
- <if test="saleLeader != null">sale_leader = #{saleLeader},</if>
- <if test="finance != null">finance = #{finance},</if>
- <if test="production != null">production = #{production},</if>
- <if test="saleApprover != null">sale_approver = #{saleApprover},</if>
- <if test="status != null">status = #{status},</if>
- <if test="orderType != null">order_type = #{orderType},</if>
- </trim>
- where id in
- <foreach item="id" collection="idList" open="(" separator="," close=")">
- #{id}
- </foreach>
- </update>
- <update id="updateSaleOrderBatch">
- <foreach collection="list" item="item" index="index" open="" close="" separator=";">
- update {DBNAME}.sale_order
- <set>
- lot_number=#{item.lotNumber}
- </set>
- where sale_no =#{item.saleNo}
- </foreach>
- </update>
- <update id="updateSaleOrderBySaleNo">
- update {DBNAME}.sale_order
- <trim prefix="SET" suffixOverrides=",">
- <if test="lotNumber != null">lot_number = #{lotNumber},</if>
- <if test="status != null">status = #{status},</if>
- <if test="oldInventoryState != null">old_inventory_state = #{oldInventoryState},</if>
- </trim>
- where sale_no = #{saleNo}
- </update>
- <select id="selectCustomerIdBySaleNo" resultType="long">
- SELECT c.id
- FROM {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.customer c
- ON so.sale_custom_no = c.custom_no
- WHERE
- so.sale_no = #{saleNo}
- AND so.del_flag = '0'
- AND c.del_flag = '0'
- </select>
- <select id="saleOrderList" resultType="com.zkqy.business.domain.vo.SaleOrderVO">
- SELECT
- so.id,
- so.sale_no,
- so.sale_date,
- c.custom_name,
- so.sale_order_estimated_time,
- so.sale_lead_time,
- so.sale_amount_in_words,
- so.sale_pay_type,
- so.salesman,
- so.sale_leader,
- so.finance,
- so.production,
- so.sale_approver,
- so.status,
- so.order_type,
- so.delivery_date,
- so.remark,
- so.old_inventory_state
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.customer c on so.sale_custom_no = c.custom_no
- where so.del_flag = '0' and c.del_flag = '0'
- <if test="queryParam != null and queryParam != ''">
- AND CONCAT(
- IFNULL( so.sale_no, '' ),
- IFNULL( c.custom_name, '' ),
- IFNULL( so.sale_lead_time, '' ))
- LIKE concat('%', #{queryParam}, '%')
- </if>
- <if test="createById != null ">and so.create_by_id = #{createById}</if>
- <if test="orderType != null">and so.order_type = #{orderType}</if>
- <choose>
- <when test="saleOrderTechnologyNo =='retailOrder'">
- and so.sale_order_technology_no = 'retailOrder'
- </when>
- <when test="saleOrderTechnologyNo =='processingOrder'">
- and so.sale_order_technology_no = 'processingOrder'
- </when>
- <otherwise>
- and so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- </otherwise>
- </choose>
- <if test="status!=null and status!='' and status=='100'">
- and so.status!=6
- </if>
- <if test="status!=null and status!='' and status=='200'">
- and so.status=6
- </if>
- order by so.id desc
- </select>
- <select id="selectOutsourceOrderList" resultType="com.zkqy.business.domain.vo.SaleOrderVO">
- <include refid="selectSaleOrderVo"/>
- where del_flag = '0' and sale_order_technology_no = 'outsourceOrder'
- <if test="saleNo != null and saleNo != ''">and sale_no = #{saleNo}</if>
- <if test="salesman != null and salesman != ''">and salesman = #{salesman}</if>
- <if test="processingUnit != null and processingUnit != ''">and processing_unit = #{processingUnit}</if>
- <if test="contactPerson != null and contactPerson != ''">and contact_person = #{contactPerson}</if>
- <if test="address != null and address != ''">and address = #{address}</if>
- <if test="createById != null ">and create_by_id = #{createById}</if>
- <if test="orderType != null">and order_type = #{orderType}</if>
- order by id desc
- </select>
- <update id="deleteSaleOrderBySaleNo">
- update {DBNAME}.sale_order set del_flag = '2' where sale_no in
- <foreach collection="list" item="saleNo" open="(" close=")" separator=",">
- #{saleNo}
- </foreach>
- </update>
- <select id="printOutsourceOrderList" resultType="com.zkqy.business.domain.vo.SaleProductsVo">
- select
- a.* ,
- b.productUnitPrice
- from
- (
- SELECT
- p.id as productId,
- p.product_name as productName,
- p.product_specifications as productSpecifications,
- por.lot_num as lotNumber,
- count(box_num) as boxNum,
- TRUNCATE(sum(por.suttle),2) as productNumber,
- por.product_colour as productColour,
- por.notice_number as noticeNumber,
- pi.sale_order_no as saleNo,
- p.product_no as productNo,
- por.levels as productLevel
- FROM
- {DBNAME}.product_outbound_record por
- left join {DBNAME}.production p on p.id = por.product_id
- LEFT JOIN {DBNAME}.product_invoice pi ON por.notice_number = pi.notice_number
- WHERE
- por.del_flag = '0'
- AND pi.notice_number = #{noticeNumber}
- and por.id not in
- (select outbound_record_id from {DBNAME}.product_outbound_record_batch where del_flag = '0' and notice_number = #{noticeNumber})
- group by por.product_id,por.levels,por.lot_num,por.product_colour
- ) as a left join
- (
- SELECT
- sp.product_no as productNo,
- sp.product_unit_price as productUnitPrice,
- CONCAT(m.materie_encoding,m.materie_color_number) as productColour
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.sale_products sp ON so.sale_no = sp.sale_order_no
- AND sp.del_flag = '0'
- left join {DBNAME}.production p on sp.product_no = p.product_no and p.del_flag = '0'
- left join {DBNAME}.materiel m on m.materiel_code = sp.colour_number and m.del_flag = '0'
- where so.del_flag = '0'
- and so.sale_no = #{saleNo}
- ) as b on a.productNo = b.productNo and a.productColour = b.productColour
- </select>
- <!-- <select id="aa">-->
- <!-- SELECT-->
- <!-- so.sale_custom_no,-->
- <!-- COUNT(*) AS order_count,-->
- <!-- s1.weight-->
- <!-- FROM-->
- <!-- sale_order so-->
- <!-- LEFT JOIN (-->
- <!-- SELECT TRUNCATE-->
- <!-- ( sum( sp.product_number ), 2 ) AS weight,-->
- <!-- so.sale_custom_no-->
- <!-- FROM-->
- <!-- sale_products sp-->
- <!-- LEFT JOIN sale_order so ON sp.sale_order_no = so.sale_no-->
- <!-- AND so.del_flag = '0'-->
- <!-- AND sale_no IN (-->
- <!-- SELECT-->
- <!-- sale_no-->
- <!-- FROM-->
- <!-- sale_order-->
- <!-- WHERE-->
- <!-- sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )-->
- <!-- AND sale_custom_no IN ( 16, 15, 14 ))-->
- <!-- WHERE-->
- <!-- sp.del_flag = '0'-->
- <!-- GROUP BY-->
- <!-- so.sale_custom_no-->
- <!-- ) s1 ON so.sale_custom_no = s1.sale_custom_no-->
- <!-- WHERE-->
- <!-- so.del_flag = '0'-->
- <!-- GROUP BY-->
- <!-- so.sale_custom_no-->
- <!-- ORDER BY-->
- <!-- order_count DESC-->
- <!-- LIMIT 10;-->
- <!-- </select>-->
- <select id="saleOrderTop10List" parameterType="string" resultType="map">
- SELECT
- so.sale_custom_no as customerNo,
- c.custom_name as customerName,
- COUNT(*) AS orderCount,
- s1.weight
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN
- (
- SELECT TRUNCATE( sum( sp.product_number ), 2 ) AS weight,so.sale_custom_no FROM {DBNAME}.sale_products sp LEFT JOIN {DBNAME}.sale_order so ON sp.sale_order_no = so.sale_no AND so.del_flag ='0'
- AND sale_no IN (SELECT sale_no FROM {DBNAME}.sale_order WHERE sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' ) and del_flag = '0' AND sale_custom_no IN
- <foreach collection="list" item="customerNo" open="(" separator="," close=")">
- #{customerNo}
- </foreach>
- ) WHERE
- sp.del_flag = '0' GROUP BY so.sale_custom_no
- ) s1 ON so.sale_custom_no = s1.sale_custom_no
- left join {DBNAME}.customer c on so.sale_custom_no = c.custom_no and c.del_flag = '0'
- WHERE
- so.del_flag = '0' and so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- GROUP BY
- so.sale_custom_no
- ORDER BY
- orderCount DESC
- LIMIT 10
- </select>
- <select id="saleRetailOrderTop10List" parameterType="string" resultType="map">
- SELECT
- so.sale_custom_no as customerNo,
- c.custom_name as customerName,
- COUNT(*) AS orderCount,
- sum(por.suttle) as weight
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.product_invoice pi ON so.sale_no = pi.sale_order_no AND pi.del_flag = '0'
- left join {DBNAME}.product_outbound_record por on por.notice_number = pi.notice_number AND por.del_flag = '0'
- left join {DBNAME}.customer c on so.sale_custom_no = c.custom_no and c.del_flag = '0'
- WHERE
- so.sale_order_technology_no = 'retailOrder'
- AND so.del_flag = '0'
- and so.`status` = '6'
- AND so.sale_custom_no IN
- <foreach collection="list" item="customerNo" open="(" separator="," close=")">
- #{customerNo}
- </foreach>
- group by so.sale_custom_no
- </select>
- <!-- <select id="saleRetailOrderTop10List" parameterType="string" resultType="map">-->
- <!-- SELECT-->
- <!-- so.sale_custom_no as customerNo,-->
- <!-- c.custom_name as customerName,-->
- <!-- COUNT(*) AS orderCount,-->
- <!-- por.weight-->
- <!-- FROM-->
- <!-- {DBNAME}.sale_order so left join {DBNAME}.product_invoice pi on so.sale_no = pi.sale_order_no-->
- <!-- left join-->
- <!-- (-->
- <!-- select sum(por.suttle) as weight,por.notice_number from {DBNAME}.product_outbound_record por-->
- <!-- left join {DBNAME}.product_invoice pi on por.notice_number = pi.notice_number and pi.del_flag = '0'-->
- <!-- where por.del_flag = '0' group by pi.customer_id-->
- <!-- ) as por on por.notice_number = pi.notice_number-->
- <!-- left join {DBNAME}.customer c on so.sale_custom_no = c.custom_no and c.del_flag = '0'-->
- <!-- WHERE-->
- <!-- pi.del_flag = '0'-->
- <!-- and so.sale_order_technology_no = 'retailOrder'-->
- <!-- AND so.del_flag = '0'-->
- <!-- and so.`status` = '6'-->
- <!-- AND so.sale_custom_no IN-->
- <!-- <foreach collection="list" item="customerNo" open="(" separator="," close=")">-->
- <!-- #{customerNo}-->
- <!-- </foreach>-->
- <!-- group by so.sale_custom_no-->
- <!-- </select>-->
- <select id="saleOrderTop10CustomerNoList" resultType="string">
- SELECT
- sale_custom_no as customerNo
- FROM
- {DBNAME}.sale_order
- WHERE
- del_flag = '0'
- GROUP BY
- sale_custom_no
- ORDER BY
- COUNT(*) DESC
- LIMIT 10
- </select>
- <select id="selectSaleOrderCountByCustomerNo" resultType="map">
- SELECT
- COUNT(*) AS orderCount,
- so.sale_custom_no as customerNo,
- c.custom_name as customerName
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.customer c on so.sale_custom_no = c.custom_no and c.del_flag = '0'
- WHERE
- so.del_flag = '0'
- AND so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' ) and so.sale_custom_no = #{customerNo}
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- -- group by so.sale_custom_no
- </select>
- <select id="selectRetailOrderCountByCustomerNo" resultType="map">
- SELECT
- COUNT(*) AS orderCount,
- so.sale_custom_no AS customerNo,
- c.custom_name as customerName
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.customer c on so.sale_custom_no = c.custom_no and c.del_flag = '0'
- WHERE
- so.del_flag = '0'
- AND so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- and so.`status` = '6'
- and so.sale_custom_no = #{customerNo}
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- -- group by so.sale_custom_no
- </select>
- <select id="selectSaleOrderProductCountByCustomerNo" resultType="map">
- SELECT
- p.id as productId,
- p.product_name as productName,
- TRUNCATE(sum(sp.product_number),2) as weight,
- CONCAT(m.materie_encoding,m.materie_color_number) as productColour,
- so.sale_custom_no as customerNo
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.sale_products sp ON so.sale_no = sp.sale_order_no AND sp.del_flag = '0'
- left join {DBNAME}.production p on sp.product_no = p.product_no and p.del_flag = '0'
- left join {DBNAME}.materiel m on m.materiel_code = sp.colour_number and m.del_flag = '0'
- where so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' ) and so.del_flag = '0' and so.sale_custom_no = #{customerNo}
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- group by sp.product_no,sp.colour_number
- -- ,so.sale_custom_no
- </select>
- <select id="selectRetailOrderProductCountByCustomerNo" resultType="map">
- SELECT
- por.product_id as productId,
- p.product_name as productName,
- TRUNCATE(sum(por.suttle),2) as weight,
- por.product_colour as productColour,
- so.sale_custom_no as customerNo
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.product_invoice pi ON so.sale_no = pi.sale_order_no and pi.del_flag = '0'
- left join {DBNAME}.product_outbound_record por on por.notice_number = pi.notice_number and por.del_flag = '0'
- left join {DBNAME}.production p on p.id = por.product_id
- where so.sale_order_technology_no = 'retailOrder' and so.del_flag = '0' and so.`status` = '6' and so.sale_custom_no = #{customerNo}
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- group by por.product_id,por.product_colour
- -- ,so.sale_custom_no
- </select>
- <select id="selectMaxProductCountByproductType" resultType="map">
- SELECT
- productIno.*,
- TRUNCATE(sum(weight1),2) as weight
- FROM
- (
- SELECT
- so.sale_no as saleNo,
- por.product_id as productId,
- p.product_name as productName,
- TRUNCATE(sum(por.suttle),2) as weight1,
- por.product_colour as productColour,
- DATE( so.sale_date ) AS days,
- DATE_FORMAT( so.sale_date, '%Y-%m' ) AS months,
- CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) AS quarters,
- YEAR ( so.sale_date ) AS years
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.product_invoice pi ON so.sale_no = pi.sale_order_no AND pi.del_flag = '0'
- left join {DBNAME}.product_outbound_record por on por.notice_number = pi.notice_number and por.del_flag = '0'
- left join {DBNAME}.production p on p.id = por.product_id
- where so.sale_order_technology_no = 'retailOrder' and so.del_flag = '0' and so.`status` = '6' and p.product_type = #{productType}
- group by por.product_id,por.product_colour,por.notice_number
- UNION ALL
- SELECT
- sp.sale_order_no as saleNo,
- p.id as productId,
- p.product_name as productName,
- sp.product_number as weight1,
- CONCAT(m.materie_encoding,m.materie_color_number) as productColour,
- DATE( so.sale_date ) AS days,
- DATE_FORMAT( so.sale_date, '%Y-%m' ) AS months,
- CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) AS quarters,
- YEAR ( so.sale_date ) AS years
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.sale_products sp on so.sale_no = sp.sale_order_no and sp.del_flag = '0'
- left join {DBNAME}.production p on sp.product_no = p.product_no and p.del_flag = '0'
- left join {DBNAME}.materiel m on m.materiel_code = sp.colour_number and m.del_flag = '0'
- WHERE
- so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- AND so.del_flag = '0'
- AND so.`status` = '6' and p.product_type = #{productType}
- ) as productIno
- <where>
- <if test="timeType == 'days'">
- days = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- months = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- quarters = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- years = #{timeParam}
- </if>
- </where>
- group by productId,productColour
- ORDER BY weight DESC
- LIMIT 10;
- </select>
- <select id="saleOrderProductCountBySalesman" resultType="map">
- SELECT
- TRUNCATE( sum( sp.product_number ), 2 ) AS weight,
- so.create_by_id as saleId
- FROM {DBNAME}.sale_products sp LEFT JOIN {DBNAME}.sale_order so ON sp.sale_order_no = so.sale_no AND so.del_flag ='0'
- WHERE sp.del_flag = '0' AND so.sale_no
- IN (SELECT sale_no FROM {DBNAME}.sale_order WHERE sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' ) and del_flag = '0' )
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- group by so.create_by_id
- </select>
- <select id="retailOrderProductCountBySalesman" resultType="map">
- SELECT
- TRUNCATE(sum( por.suttle ),2) AS weight,
- so.create_by_id as saleId
- FROM
- {DBNAME}.product_outbound_record por
- LEFT JOIN {DBNAME}.product_invoice pi ON por.notice_number = pi.notice_number AND pi.del_flag = '0'
- left join {DBNAME}.sale_order so on pi.sale_order_no = so.sale_no and so.del_flag = '0' and so.`status` = '6' and so.sale_order_technology_no = 'retailOrder'
- WHERE
- por.del_flag = '0'
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- GROUP BY
- so.create_by_id
- </select>
- <select id="saleOrderCountBySalesman" resultType="map">
- SELECT
- count( 1 ) as orderCount,
- create_by_id as saleId
- FROM
- {DBNAME}.sale_order
- WHERE
- del_flag = '0'
- AND sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- <if test="timeType == 'days'">
- and DATE( sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( sale_date ),'-',QUARTER ( sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( sale_date ) = #{timeParam}
- </if>
- GROUP BY
- create_by_id
- </select>
- <select id="retailOrderCountBySalesman" resultType="map">
- SELECT
- count( 1 ) as orderCount,
- create_by_id as saleId
- FROM
- {DBNAME}.sale_order
- WHERE
- del_flag = '0'
- AND `status` = '6'
- AND sale_order_technology_no = 'retailOrder'
- <if test="timeType == 'days'">
- and DATE( sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( sale_date ),'-',QUARTER ( sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( sale_date ) = #{timeParam}
- </if>
- GROUP BY
- create_by_id
- </select>
- <select id="saleOrderProductWeightByProductType" resultType="map">
- SELECT
- TRUNCATE(sum(sp.product_number),2) as weight,
- p.product_type as productType
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.sale_products sp on so.sale_no = sp.sale_order_no and sp.del_flag = '0'
- left join {DBNAME}.production p on p.product_no = sp.product_no and p.del_flag = '0'
- WHERE
- so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- AND so.del_flag = '0'
- AND so.`status` = '6'
- group by p.product_type
- </select>
- <select id="retailOrderProductWeightByProductType" resultType="map">
- SELECT
- TRUNCATE(sum( por.suttle ),2) AS weight,
- p.product_type as productType
- FROM
- {DBNAME}.product_outbound_record por
- LEFT JOIN {DBNAME}.product_invoice pi ON por.notice_number = pi.notice_number AND pi.del_flag = '0'
- left join {DBNAME}.sale_order so on pi.sale_order_no = so.sale_no and so.del_flag = '0' and so.`status` = '6' and so.sale_order_technology_no = 'retailOrder'
- left join {DBNAME}.production p on p.id = por.product_id
- where por.del_flag = '0'
- group by p.product_type
- </select>
- <select id="saleOrderSaleVolume" resultType="map">
- SELECT
- IFNULL(TRUNCATE( sum( sp.product_number ), 2 ),0) AS weight
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.sale_products sp on so.sale_no = sp.sale_order_no and sp.del_flag = '0'
- left join {DBNAME}.production p on p.product_no = sp.product_no and p.del_flag = '0'
- WHERE
- so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- AND so.del_flag = '0'
- AND so.`status` = '6'
- and p.product_type = #{productType}
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- </select>
- <select id="retailOrderSaleVolume" resultType="map">
- SELECT
- IFNULL(TRUNCATE( sum( por.suttle ), 2 ),0) AS weight
- FROM
- {DBNAME}.product_outbound_record por
- LEFT JOIN {DBNAME}.product_invoice pi ON por.notice_number = pi.notice_number AND pi.del_flag = '0'
- left join {DBNAME}.sale_order so on pi.sale_order_no = so.sale_no and so.del_flag = '0' and so.`status` = '6' and so.sale_order_technology_no = 'retailOrder'
- left join {DBNAME}.production p on p.id = por.product_id
- where por.del_flag = '0'
- and p.product_type = #{productType}
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- </select>
- <select id="productionVolume" resultType="map">
- SELECT
- IFNULL(TRUNCATE( sum( pwr.suttle ), 2 ),0) AS weight
- FROM
- {DBNAME}.product_warehousing_record pwr
- left join {DBNAME}.production p ON p.id = pwr.product_id
- WHERE
- pwr.del_flag = '0'
- and p.product_type = #{productType}
- <if test="timeType == 'days'">
- and DATE( pwr.warehousing_time ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( pwr.warehousing_time, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( pwr.warehousing_time ),'-',QUARTER ( pwr.warehousing_time )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( pwr.warehousing_time ) = #{timeParam}
- </if>
- </select>
- <select id="saleOrderRanking" resultType="map">
- select a.* from
- (
- SELECT
- so.sale_no as saleNo,
- por.product_id as productId,
- p.product_name as productName,
- TRUNCATE(sum(por.suttle),2) as weight,
- por.product_colour as productColour,
- DATE( so.sale_date ) AS days,
- DATE_FORMAT( so.sale_date, '%Y-%m' ) AS months,
- CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) AS quarters,
- YEAR ( so.sale_date ) AS years
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.product_invoice pi ON so.sale_no = pi.sale_order_no AND pi.del_flag = '0'
- left join {DBNAME}.product_outbound_record por on por.notice_number = pi.notice_number and por.del_flag = '0'
- left join {DBNAME}.production p on p.id = por.product_id
- where so.sale_order_technology_no = 'retailOrder' and so.del_flag = '0' and so.`status` = '6'
- group by so.sale_no
- UNION ALL
- SELECT
- sp.sale_order_no as saleNo,
- p.id as productId,
- p.product_name as productName,
- sum(sp.product_number) as weight,
- CONCAT(m.materie_encoding,m.materie_color_number) as productColour,
- DATE( so.sale_date ) AS days,
- DATE_FORMAT( so.sale_date, '%Y-%m' ) AS months,
- CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) AS quarters,
- YEAR ( so.sale_date ) AS years
- FROM
- {DBNAME}.sale_order so left join {DBNAME}.sale_products sp on so.sale_no = sp.sale_order_no and sp.del_flag = '0'
- left join {DBNAME}.production p on sp.product_no = p.product_no and p.del_flag = '0'
- left join {DBNAME}.materiel m on m.materiel_code = sp.colour_number and m.del_flag = '0'
- WHERE
- so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- AND so.del_flag = '0'
- group by so.sale_no
- ) as a
- <where>
- <if test="timeType == 'days'">
- days = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- months = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- quarters = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- years = #{timeParam}
- </if>
- </where>
- ORDER BY weight DESC
- LIMIT 10
- </select>
- <select id="retailFastSellingProduct" resultType="map">
- SELECT
- por.product_id as productId,
- p.product_name as productName,
- TRUNCATE(sum(por.suttle),2) as weight,
- por.product_colour as productColour,
- p.product_specifications as spec
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.product_invoice pi ON so.sale_no = pi.sale_order_no AND pi.del_flag = '0'
- left join {DBNAME}.product_outbound_record por on por.notice_number = pi.notice_number and por.del_flag = '0'
- left join {DBNAME}.production p on p.id = por.product_id
- where so.sale_order_technology_no = 'retailOrder' and so.del_flag = '0' and so.`status` = '6'
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- group by por.product_id,por.product_colour
- </select>
- <select id="saleFastSellingProduct" resultType="map">
- SELECT
- p.id as productId,
- p.product_name as productName,
- TRUNCATE(sum(sp.product_number),2) as weight,
- CONCAT(m.materie_encoding,m.materie_color_number) as productColour,
- p.product_specifications as spec
- FROM
- {DBNAME}.sale_order so
- LEFT JOIN {DBNAME}.sale_products sp ON sp.sale_order_no = so.sale_no AND sp.del_flag = '0'
- left join {DBNAME}.production p on sp.product_no = p.product_no and p.del_flag = '0'
- left join {DBNAME}.materiel m on sp.colour_number = m.materiel_code and m.del_flag = '0'
- WHERE
- so.del_flag = '0'
- AND so.sale_order_technology_no NOT IN ( 'retailOrder', 'outsourceOrder', 'processingOrder' )
- <if test="timeType == 'days'">
- and DATE( so.sale_date ) = #{timeParam}
- </if>
- <if test="timeType == 'months'">
- and DATE_FORMAT( so.sale_date, '%Y-%m' ) = #{timeParam}
- </if>
- <if test="timeType == 'quarters'">
- and CONCAT(YEAR ( so.sale_date ),'-',QUARTER ( so.sale_date )) = #{timeParam}
- </if>
- <if test="timeType == 'years'">
- and YEAR ( so.sale_date ) = #{timeParam}
- </if>
- group by sp.product_no,sp.colour_number
- </select>
- </mapper>
|