guoyuji
2024-12-26 a925836fa0ec4d3e5362a289995c5cb3a3942ed7
north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -27,6 +27,10 @@
        <result column="product_id" property="orderDetail.productId"/>
        <result column="product_name" property="orderDetail.productName"/>
        <result column="project" property="order.project"/>
        <result column="customer_name" property="order.customerName"/>
        <result column="delivery_address" property="order.deliveryAddress"/>
    </resultMap>
    <select id="getSelectStorageRecord" resultMap="selectFinishedGoodsInventory">
@@ -52,6 +56,7 @@
        from (select *
        from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='已作废') fol
        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        left join sd.`order` o on o.order_id=fol.order_id
        <where>
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
            <if test="finishedOperateLog.operationOrderNumber != null and finishedOperateLog.operationOrderNumber != ''">
@@ -65,6 +70,9 @@
            </if>
            <if test="finishedOperateLog.quantity != null and finishedOperateLog.quantity != ''">
                and fol.quantity regexp #{finishedOperateLog.quantity}
            </if>
            <if test="finishedOperateLog.processId != null and finishedOperateLog.processId != ''">
                and fol.process_id regexp #{finishedOperateLog.processId}
            </if>
            <if test="finishedOperateLog.operator != null and finishedOperateLog.operator != ''">
                and fol.operator regexp #{finishedOperateLog.operator}
@@ -430,7 +438,7 @@
        from mm.finished_operate_log aa where  aa.status!='已作废') fol
        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        <where>
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate} and fol.operate_type=#{type}
            <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
                and fol.operate_type regexp #{finishedOperateLog.operateType}
            </if>
@@ -491,7 +499,7 @@
        from mm.finished_operate_log aa where  aa.status!='已作废') fol
        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        <where>
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate} and fol.operate_type=#{type}
            <if test="finishedOperateLog.operateType != null and finishedOperateLog.operateType != ''">
                and fol.operate_type regexp #{finishedOperateLog.operateType}
            </if>
@@ -553,7 +561,7 @@
    <select id="getmaximum" >
        select count(*) from mm.finished_operate_log where operate_type =#{type} and date(operate_time)=CURDATE()
        select count(*) from (select * from mm.finished_operate_log where operate_type =#{type} and date(operate_time)=CURDATE() group by operation_order_number) zu
    </select>
    <insert id="insertIntFinishedOperateLog"  useGeneratedKeys="true" >
@@ -565,10 +573,11 @@
                                            operator,
                                            quantity,
                                            operate_time,
                                            status
                                            status,
                                            remarks
        )
        values (
                   #{oddNumber} ,#{flowCard.order.orderId},#{flowCard.processId},#{flowCard.orderNumber},"入库",#{userName},#{flowCard.inventoryQuantity},now(),"未审核"
                   #{oddNumber} ,#{flowCard.order.orderId},#{flowCard.processId},#{flowCard.orderNumber},"入库",#{userName},#{flowCard.inventoryQuantity},now(),"未审核",#{container}
               )
    </insert>
@@ -667,7 +676,7 @@
        from (select *
              from mm.finished_operate_log aa where  aa.status!='已作废') fol
                 left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        where  date(fol.operate_time)>=#{dates[0]} and date(fol.operate_time) &lt;= #{dates[1]}
        where  date(fol.operate_time)>=#{dates[0]} and date(fol.operate_time) &lt;= #{dates[1]} and fol.operate_type=#{type}
    </select>
@@ -687,7 +696,156 @@
               )
    </insert>
    <delete id="updateOrderFinishedOperateLog"  >
        update  mm.finished_operate_log set status="已作废" where order_id=#{orderDetail.orderId} and operation_number=#{orderDetail.orderNumber} and operate_type="入库";
    </delete>
    <select id="getSelectStorageRecordPint" resultMap="selectFinishedGoodsInventory">
        select fol.id,
        fol.operation_order_number,
        fol.order_id,
        fol.operate_type,
        fol.process_id,
        fol.operation_number,
        fol.quantity,
        fol.operator,
        od.product_id,
        od.product_name,
        od.width,
        od.height,
        o.project,
        o.customer_name,
        o.delivery_address,
        fol.operate_time,
        fol.`status`,
        fol.is_state,
        fol.reviewed,
        fol.reviewed_time,
        fol.remarks
        from (select *
        from mm.finished_operate_log aa where aa.operate_type = '入库'  and aa.status!='已作废') fol
        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        left join sd.`order` o on o.order_id=fol.order_id
        <where>
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
            and (fol.remarks is not null and fol.remarks !="") and (fol.process_id !="" and fol.process_id is not null)
            <if test="finishedOperateLog.orderId != null and finishedOperateLog.orderId != ''">
                and fol.order_id regexp #{finishedOperateLog.orderId}
            </if>
            <if test="finishedOperateLog.processId != null and finishedOperateLog.processId != ''">
                and  od.process_id regexp #{finishedOperateLog.processId}
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.productId != null and finishedOperateLog.orderDetail.productId != '')">
                and  od.product_id regexp #{finishedOperateLog.orderDetail.productId}
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.productName != null and finishedOperateLog.orderDetail.productName != '')">
                and  od.product_name regexp #{finishedOperateLog.orderDetail.productName}
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.width != null and finishedOperateLog.orderDetail.width != '')">
                and  od.width regexp  REGEXP_REPLACE(#{finishedOperateLog.orderDetail.width},'\\.0+$','')
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.height != null and finishedOperateLog.orderDetail.height != '')">
                and  od.height regexp REGEXP_REPLACE(#{finishedOperateLog.orderDetail.height},'\\.0+$','')
            </if>
            <if test="finishedOperateLog.order !=null and (finishedOperateLog.order.project != null and finishedOperateLog.order.project != '')">
                and  o.project regexp #{finishedOperateLog.order.project}
            </if>
            <if test="finishedOperateLog.order !=null and (finishedOperateLog.order.customerName != null and finishedOperateLog.order.customerName != '')">
                and  o.customer_name regexp #{finishedOperateLog.order.customerName}
            </if>
            <if test="finishedOperateLog.order !=null and (finishedOperateLog.order.deliveryAddress != null and finishedOperateLog.order.deliveryAddress != '')">
                and  o.delivery_address regexp #{finishedOperateLog.order.deliveryAddress}
            </if>
            <if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
                and fol.remarks regexp #{finishedOperateLog.remarksr}
            </if>
        </where>
        group by fol.remarks,od.order_id,fol.process_id
        order by fol.operate_time desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getSelectStorageRecordPintPageTotal">
        select
        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
        count(zu.id) as 'total' from (
        select fol.id
        from (select *
        from mm.finished_operate_log aa where aa.operate_type = '入库'  and aa.status!='已作废') fol
        left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
        <where>
            date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
            and (fol.remarks is not null and fol.remarks !="") and (fol.process_id !="" and fol.process_id is not null)
            <if test="finishedOperateLog.orderId != null and finishedOperateLog.orderId != ''">
                and fol.order_id regexp #{finishedOperateLog.orderId}
            </if>
            <if test="finishedOperateLog.processId != null and finishedOperateLog.processId != ''">
                and  od.process_id regexp #{finishedOperateLog.processId}
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.productId != null and finishedOperateLog.orderDetail.productId != '')">
                and  od.product_id regexp #{finishedOperateLog.orderDetail.productId}
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.productName != null and finishedOperateLog.orderDetail.productName != '')">
                and  od.product_name regexp #{finishedOperateLog.orderDetail.productName}
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.width != null and finishedOperateLog.orderDetail.width != '')">
                and  od.width regexp  REGEXP_REPLACE(#{finishedOperateLog.orderDetail.width},'\\.0+$','')
            </if>
            <if test="finishedOperateLog.orderDetail !=null and (finishedOperateLog.orderDetail.height != null and finishedOperateLog.orderDetail.height != '')">
                and  od.height regexp REGEXP_REPLACE(#{finishedOperateLog.orderDetail.height},'\\.0+$','')
            </if>
            <if test="finishedOperateLog.order !=null and (finishedOperateLog.order.project != null and finishedOperateLog.order.project != '')">
                and  o.project regexp #{finishedOperateLog.order.project}
            </if>
            <if test="finishedOperateLog.order !=null and (finishedOperateLog.order.customerName != null and finishedOperateLog.order.customerName != '')">
                and  o.customer_name regexp #{finishedOperateLog.order.customerName}
            </if>
            <if test="finishedOperateLog.order !=null and (finishedOperateLog.order.deliveryAddress != null and finishedOperateLog.order.deliveryAddress != '')">
                and  o.delivery_address regexp #{finishedOperateLog.order.deliveryAddress}
            </if>
            <if test="finishedOperateLog.remarks != null and finishedOperateLog.remarks != ''">
                and fol.remarks regexp #{finishedOperateLog.remarksr}
            </if>
        </where>
        group by fol.remarks,od.order_id,fol.process_id) as zu
    </select>
<select id="getPrimaryListLimt">
    select  o.order_id,
    o.customer_name,
    o.project,
    fol.remarks,
    SUM(fol.quantity) as quantity,
    ROUND( sum(od.width * od.height * fol.quantity) / 1000000, 2 ) as area
    from (select *
    from mm.finished_operate_log aa where aa.operate_type = '入库'  and aa.status!='已作废') fol
    left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
    left join sd.`order` o on o.order_id=fol.order_id
    where
    o.order_id=#{orderId}  and fol.remarks=#{remarks}
    and (fol.remarks is not null and fol.remarks !="") and (fol.process_id !="" and fol.process_id is not null)
    group by fol.remarks,od.order_id
    order by fol.operate_time desc
</select>
<select id="getDetailList">
    SELECT
        od.building_number,
        od.width,
        od.height,
        fol.quantity,
        ROUND( od.width * od.height * fol.quantity / 1000000, 2 ) as area
    FROM
        ( SELECT * FROM mm.finished_operate_log aa WHERE aa.operate_type = '入库' AND aa.STATUS != '已作废' ) fol
            LEFT JOIN sd.order_detail od ON fol.order_id = od.order_id
            AND fol.operation_number = od.order_number
            LEFT JOIN sd.`order` o ON o.order_id = fol.order_id
    WHERE
        o.order_id=#{orderId} and fol.remarks=#{remarks}
    ORDER BY
        fol.operate_time DESC
</select>
</mapper>