guoyujie
2025-04-08 3c55debea2b60faf89acdf89074ffd135dc44d7e
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -112,6 +112,15 @@
            fc.order_number
    </select>
    <select id="getFlowCardList">
        SELECT *
        FROM
            pp.flow_card AS fc
        WHERE
            fc.project_no = #{projectNo}
    </select>
    <!--库存信息-->
    <select id="materialStoreMp">
        SELECT
@@ -224,13 +233,58 @@
                AND pd.glass_sort = fc.technology_number
        WHERE
                CONCAT( JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.color' )) )= #{optionVal}
              and ISNULL(fc.project_no)
              and ISNULL(fc.project_no) and fc.layout_status=1
        GROUP BY
            fc.process_id,
            fc.technology_number
        ORDER BY
            fc.process_id,
            fc.technology_number
    </select>
    <select id="getFlowCardListWhole">
        SELECT 流程卡号 as process_id,
               层 as technology_number,
               总层数 as TotalFloors,
               规格 as TotalNumber,
               数量 as quantity,
               形状 as shape,
               项目 as project,
               单片名称 as glass_child,
               面积 as area,
               GlassType as glassType
        FROM pp.v_optimize_process_whole where
                CONCAT( JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.color' )) )= #{optionVal}
    </select>
    <select id="getFlowCardListNormal">
        SELECT 流程卡号 as process_id,
               层 as technology_number,
               总层数 as TotalFloors,
               规格 as TotalNumber,
               数量 as quantity,
               形状 as shape,
               项目 as project,
               单片名称 as glass_child,
               面积 as area,
               GlassType as glassType
        FROM pp.v_optimize_process_normal where
                CONCAT( JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.color' )) )= #{optionVal}
    </select>
    <select id="getFlowCardListPatch">
        SELECT 流程卡号 as process_id,
               层 as technology_number,
               总层数 as TotalFloors,
               规格 as TotalNumber,
               数量 as quantity,
               形状 as shape,
               项目 as project,
               单片名称 as glass_child,
               面积 as area,
               GlassType as glassType
        FROM pp.v_optimize_process_patch where
                CONCAT( JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.color' )) )= #{optionVal}
    </select>
        <!--工程管理-->
@@ -283,16 +337,31 @@
        where project_no = #{projectNumber}
    </delete>
    <delete id="deleteOptimizeHeatDetail">
        delete from pp.optimize_heat_detail
        where project_no = #{projectNumber}
    </delete>
    <delete id="deleteOptimizeHeatLayout">
        delete from pp.optimize_heat_layout
        where project_no = #{projectNumber}
    </delete>
    <delete id="deleteOptimizeDetail">
        delete from pp.optimize_detail
        where project_no = #{projectNumber}
    </delete>
    <select id="getProjectListMp">
        SELECT
            p.id,
            p.project_no,
            p.project_no as projectNumber,
            p.project_name,
            p.glass_type,
            p.glass_thickness,
            p.type,
            p.state,
            p.glass_total,
            p.glass_total as quantity,
            p.glass_total_area,
            p.process_qty,
            p.process_cards,
@@ -354,6 +423,10 @@
            fc.process_id, fc.technology_number;
    </select>
    <select id="selectProjectCount">
        select * from pp.optimize_project where project_no=#{projectNo}
    </select>
    <!--模拟计算流程卡详情-->
    <select id="selectComputeDetailMp1">
        SELECT
@@ -407,6 +480,7 @@
                LEFT JOIN pp.damage_details dal ON  dal.order_number = g.order_number AND dal.technology_number = g.technology_number and f.process_id=dal.process_id
                LEFT JOIN pp.flow_card fl ON fl.order_id = g.order_id AND fl.order_number = g.order_number AND fl.technology_number = g.technology_number
        WHERE
            p.state IN (1, 2) and
          f.process_id = #{processId}
    </select>
@@ -458,8 +532,13 @@
    </select>
    <update id="updateFlowCardProject">
        UPDATE pp.flow_card set project_no=#{projectId}
        UPDATE pp.flow_card set project_no=#{projectId},layout_status=2
                             where process_id=#{processId} and technology_number=#{technologyNumber}
    </update>
    <update id="updateFlowCardProjectReturn">
        UPDATE pp.flow_card set project_no=null,layout_status=1
        where process_id=#{processId} and technology_number=#{technologyNumber}
    </update>
    <select id="getSelectArea">
@@ -476,8 +555,10 @@
    </select>
    <insert id="addProjectMp">
        insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness)
        values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness})
        insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness,glass_type, glass_thickness,
                                         glass_total,glass_total_area,type,state,process_qty,process_cards)
        values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness}, #{glassType}, #{glassThickness},#{sumQuantity}, #{sumArea},
                #{type},1,#{processIdCount},#{processId})
    </insert>
@@ -528,7 +609,7 @@
            );
        </foreach>
    </insert>
    <!--模拟计算结果保存-->
    <insert id="addratioResult" parameterType="map">
        <foreach collection="projectdetail.data[0].ratioResult" item="glass">
            INSERT INTO pp.optimize_heat_layout (
@@ -555,4 +636,52 @@
        </foreach>
    </insert>
    <!--模拟计算工程更新-->
    <update id="addratioProjectResult" parameterType="map">
        UPDATE pp.optimize_project
        SET
            state = 10,
            chaos_pct = #{inputValues.chaos_pct},
            max_load_pct = #{inputValues.max_load_pct},
            max_area=#{inputValues.max_area},
            max_qty=#{inputValues.max_qty},
            load_width=#{inputValues.load_width},
            load_length=#{inputValues.load_length},
            x_space=#{inputValues.x_space},
            y_space=#{inputValues.y_space},
            load_rate=#{inputValues.load_rate}
        WHERE
            project_no = #{inputValues.project_no}
    </update>
<!--优化设置保存-->
    <update id="optimizeParmsSave">
        update erp_user_info.user as u
        set u.optimize_parms = #{jsonString}
    </update>
    <update id="updateOptimizeResult">
        update pp.optimize_project_file as u
        set u.content = #{jsonString}
        where  u.project_no=#{processId} and type='优化结果'
    </update>
    <select id="selectOptimizeResult">
        SELECT content as Layouts
                        FROM pp.optimize_project_file
                        WHERE  project_no=#{processId} and type='优化结果';
    </select>
    <select id="getTemperedConfiguration">
        select JSON_EXTRACT( oc.config_detail, '$.glass_thickness' ) as glass_thickness,
               JSON_EXTRACT( oc.config_detail, '$.glass_type' ) as glass_type,
               JSON_EXTRACT( oc.config_detail, '$.tempering_time' ) as tempering_time,
               JSON_EXTRACT( oc.config_detail, '$.load_width' ) as load_width,
               JSON_EXTRACT( oc.config_detail, '$.load_length' ) as load_length,
               JSON_EXTRACT( oc.config_detail, '$.x_space' ) as x_space,
               JSON_EXTRACT( oc.config_detail, '$.y_space' ) as y_space
        from pp.optimize_admin oa left join pp.optimize_config oc on oa.h_id=oc.id where name='admin'
    </select>
</mapper>