chenlu
2025-10-30 174cc2a8aa52f00334e0e9a3a0ea91b2e3e7acd3
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -12,6 +12,7 @@
        <result column="layout_status" property="layoutStatus"/>
        <result column="merge" property="merge"/>
        <result column="rack" property="rack"/>
        <result column="compute_gross_area" property="computeGrossArea"/>
        <!--接收其他外键实体类数据-->
        <association property="order" javaType="com.example.erp.entity.sd.Order">
            <result column="project" property="project"/>
@@ -24,6 +25,8 @@
            <result column="salesman" property="salesman"/>
            <result column="processing_note" property="processingNote"/>
            <result column="delivery_address" property="deliveryAddress"/>
            <result column="create_time" property="createTime"/>
            <result column="update_time" property="updateTime"/>
        </association>
        <association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
            <result column="product_id" property="productId"/>
@@ -31,7 +34,6 @@
            <result column="compute_gross_area" property="computeGrossArea"/>
            <result column="processing_note" property="processingNote"/>
            <result column="quantity" property="quantity"/>
            <result column="compute_gross_area" property="computeGrossArea"/>
            <result column="perimeter" property="perimeter"/>
            <result column="order_number" property="orderNumber"/>
            <result column="width" property="width"/>
@@ -55,6 +57,75 @@
    <!--    流程卡管理查询-->
    <select id="selectFlowCard" resultMap="flowCardMap">
        select
        a.order_Id,
        a.process_Id,
        c.product_id,
        c.product_name,
        b.project,
        sum(a.quantity) as quantity,
        sum(a.quantity) * c.area as compute_gross_area,
        a.founder,
        c.processing_note,
        b.customer_name,
        layout_status as layout_status,
        a.merge,
        a.rack,
        b.batch,
        b.create_time,
        b.update_time
        from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack from flow_card
        group by process_Id,order_number) as a
        left join sd.`order` as b on a.order_Id=b.order_id
        left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
        where date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
        and b.create_order>0
        <if test="flowCard.orderId != null and flowCard.orderId != ''">
            and a.order_id regexp #{flowCard.orderId}
        </if>
        <if test="flowCard.processId != null and flowCard.processId != ''">
            and a.process_Id regexp #{flowCard.processId}
        </if>
        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
            and c.product_id regexp #{flowCard.orderDetail.productId}
        </if>
        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
            and c.product_name regexp #{flowCard.orderDetail.productName}
        </if>
        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
            and b.project regexp #{flowCard.order.project}
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '不可排版'">
            and a.layout_status regexp 0
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '可排版'">
            and a.layout_status regexp 1
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '已排版'">
            and a.layout_status regexp 2
        </if>
        <if test="flowCard.merge != null">
            and a.merge regexp #{flowCard.merge}
        </if>
        <if test="flowCard.rack != null and flowCard.rack != ''">
            and a.rack regexp #{flowCard.rack}
        </if>
        <if test="flowCard.order.customerName != null and flowCard.order.customerName!= ''">
            and b.customer_name regexp #{flowCard.order.customerName}
        </if>
        group by a.process_Id
        ORDER BY a.id desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getPageTotal">
        SELECT SUM(quantity) as quantity,
               SUM(compute_gross_area) as computeGrossArea,
               CEILING(count(fcd.process_Id)/100) as 'pageTotal',
               count(distinct fcd.process_Id) as 'total'
        from (
        select
        a.order_Id,
        a.process_Id,
@@ -112,49 +183,7 @@
        </if>
        group by a.process_Id
        ORDER BY a.id desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getPageTotal">
        select
        CEILING(count(a.process_Id)/#{pageSize}) as 'pageTotal',
        count(distinct a.process_Id) as 'total'
        from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
        left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
        where date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
        and b.create_order>0
        <if test="flowCard.orderId != null and flowCard.orderId != ''">
            and a.order_id regexp #{flowCard.orderId}
        </if>
        <if test="flowCard.processId != null and flowCard.processId != ''">
            and a.process_Id regexp #{flowCard.processId}
        </if>
        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
            and c.product_id regexp #{flowCard.orderDetail.productId}
        </if>
        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
            and c.product_name regexp #{flowCard.orderDetail.productName}
        </if>
        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
            and b.project regexp #{flowCard.order.project}
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '不可排版'">
            and a.layout_status regexp 0
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '可排版'">
            and a.layout_status regexp 1
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '已排版'">
            and a.layout_status regexp 2
        </if>
        <if test="flowCard.merge != null">
            and a.merge regexp #{flowCard.merge}
        </if>
        ORDER BY a.id desc
        limit #{offset},#{pageSize};
        ) as fcd
    </select>
    <!--分架查询-->
@@ -298,7 +327,7 @@
               ods.S03,
               ods.S04,
               ods.S05,
               od.building_number
               od.building_number as 'buildingNumber'
        from sd.order_detail as od
                 left join sd.order_glass_detail as ogd
                           on od.order_id = ogd.order_id and od.order_number = ogd.order_number
@@ -534,7 +563,8 @@
    </select>
    <select id="selectPrintFlowCard">
        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness
        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness,
               GROUP_CONCAT(DISTINCT o.order_id SEPARATOR '~') as order_id
        from pp.optimize_project as op
                 left join pp.flow_card as fc on op.project_no=fc.project_no
                 left join sd.`order` as o on o.order_id=fc.order_id
@@ -786,7 +816,7 @@
                              fcs.technology_number = fc.technology_number
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
          and FIND_IN_SET(fc.technology_number , #{technologyNumber})
        group by fc.process_id, fc.order_number
        <choose>
            <!-- 当 landingSequence != 1 且 flashback != 1 时,按 landing_sequence 倒序 -->
@@ -1454,7 +1484,7 @@
        from sd.order_detail as od
                 left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
        where fc.process_id = #{processId}
          and POSITION(fc.technology_number in #{technologyNumber})
          and  FIND_IN_SET(fc.technology_number , #{technologyNumber})
        GROUP BY other_columns
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
    </select>
@@ -1604,7 +1634,7 @@
                              fcs.technology_number = fc.technology_number
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
          and  FIND_IN_SET(fc.technology_number , #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        <choose>
            <when test="landingSequence != 1 and flashback != 1">
@@ -2793,6 +2823,7 @@
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                              ogd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
        group by fc.process_id,od.order_number, width, height
@@ -2962,6 +2993,7 @@
    <select id="getPrintCustomDataProjectDetail">
        select
            opt.glass_id                                          as heat_layout_sort ,
            o.order_id                                            as orderId,
            project,
            customer_id                                           as customerId,
@@ -2979,25 +3011,25 @@
            contacts,
            delivery_address                                      as deliveryAddress,
            od.processing_note                                    as processingNote,
            od.width,
            od.height,
            opt.width,
            opt.height,
            opl.glass_count as flowQuantity,
            CONCAT(
                    TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width AS CHAR))),
                    opt.width,
                    ' X ',
                    TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height AS CHAR))),
                    opt.height,
                    ' = ',opl.glass_count )      as size,
               CONCAT(
                       od.order_number,')      ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width   AS CHAR))),
                       opt.width,
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height    AS CHAR))),
                       opt.height,
                       ' = ',opl.glass_count )      as numberSize,
               CONCAT(
                       od.order_number,')','   ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width   AS CHAR))),
                        opt.width,
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height    AS CHAR))))      as numberSizeQuantity,
                       opt.height)      as numberSizeQuantity,
            od.order_number                                       as orderNumber,
            fc.technology_number                                  as technologyNumber,
            od.building_number                                    as buildingNumber,
@@ -3026,7 +3058,8 @@
            '文本' as custom3,
            '文本' as custom4,
            '文本' as custom5,
            od.quantity
            od.quantity,
         CONCAT(opt.stock_id,"/",opt.polys_id) as stockPolysId
        from optimize_detail as opt
            left join optimize_layout as opl on opl.project_no=opt.project_no and opl.stock_id=opt.stock_id
                 left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
@@ -3507,7 +3540,8 @@
        fcs.technology_number = fc.technology_number
        and fcs.process = #{process}
        where fc.process_id = #{processId}
        and position(fc.technology_number in #{compound})
        and
        FIND_IN_SET(fc.technology_number , #{compound})
        group by fc.process_id, fc.order_number
        <choose>
            <when test="landingSequence != 1 and flashback != 1">
@@ -3563,7 +3597,7 @@
        fcs.technology_number = fc.technology_number
        and fcs.process = #{process}
        where fc.process_id = #{processId}
        and position(fc.technology_number in #{compound})
        and FIND_IN_SET(fc.technology_number , #{compound})
        group by fc.process_id, fc.order_number
        <choose>
            <when test="landingSequence != 1 and flashback != 1">