| New file |
| | |
| | | <?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.example.erp.mapper.pp.GlassOptimizeMapper"> |
| | | <resultMap id="wordOrderMap" type="com.example.erp.entity.sd.OrderGlassDetail"> |
| | | |
| | | <result column="order_id" property="orderId"/> |
| | | <result column="production_id" property="productionId"/> |
| | | <result column="splitting_status" property="splittingStatus"/> |
| | | <result column="founder" property="founder"/> |
| | | <result column="create_time" property="createTime"/> |
| | | <!--接收其他外键实体类数据--> |
| | | <result column="batch" property="order.batch"/> |
| | | <result column="order_type" property="order.orderType"/> |
| | | <result column="project" property="order.project"/> |
| | | <result column="area" property="order.area"/> |
| | | <result column="creator" property="order.creator"/> |
| | | <result column="customer_name" property="order.customerName"/> |
| | | <result column="processing_note" property="order.processingNote"/> |
| | | <!-- <association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">--> |
| | | <!-- <result column="product_id" property="productId"/>--> |
| | | <!-- <result column="product_name" property="productName"/>--> |
| | | <!-- <result column="compute_area" property="computeArea"/>--> |
| | | <result column="quantity" property="orderDetail.quantity"/> |
| | | <!-- <result column="compute_gross_area" property="computeGrossArea"/>--> |
| | | <!-- <result column="perimeter" property="perimeter"/>--> |
| | | <!-- <result column="bend_radius" property="bendRadius"/>--> |
| | | <!-- <result column="processing_note" property="processingNote"/>--> |
| | | <result column="gross_area" property="orderDetail.grossArea"/> |
| | | |
| | | <!-- </association>--> |
| | | |
| | | </resultMap> |
| | | |
| | | <resultMap id="optimizeProjectMangeMap" type="com.example.erp.entity.pp.OptimizeProjectMange"> |
| | | <result property="id" column="id"/> |
| | | <result property="projectNumber" column="project Number"/> |
| | | <result property="projectName" column="project Name"/> |
| | | <result property="glassType" column="glass Type"/> |
| | | <result property="thickness" column="thickness"/> |
| | | <result property="type" column="type"/> |
| | | <result property="state" column="state"/> |
| | | <result property="quantity" column="quantity"/> |
| | | <result property="area" column="area"/> |
| | | <result property="processCardQuantity" column="process Card Quantity"/> |
| | | <result property="usingQuantity" column="using Quantity"/> |
| | | <result property="temperedLoadingRate" column="tempered loading rate"/> |
| | | <result property="numberOfTemperingFurnaces" column="number of tempering furnaces"/> |
| | | <result property="averageCuttingRate" column="average cutting rate"/> |
| | | <result property="effectiveCuttingRate" column="effective cutting rate"/> |
| | | <result property="residueGlassCuttingRate" column="residue glass cutting rate"/> |
| | | <result property="processCardCollection" column="process card collection"/> |
| | | <result property="averageCuttingRate1" column="average cutting rate1"/> |
| | | <result property="notes" column="notes"/> |
| | | <result property="creator" column="creator"/> |
| | | <result property="createTime" column="create time"/> |
| | | <result property="modifyTime" column="modify time"/> |
| | | </resultMap> |
| | | |
| | | <!--工程信息--> |
| | | <select id="projectInfoMp"> |
| | | SELECT |
| | | f.order_number, |
| | | g.child_width , |
| | | g.child_height , |
| | | f.quantity , |
| | | d.shape , |
| | | op.process_cards , |
| | | d.product_name , |
| | | op.remark , |
| | | d.building_number , |
| | | round(((`g`.`child_width` + g.child_height) * 2 * `f`.`quantity`),2) as perimeter , |
| | | round((`g`.`area` * `f`.`quantity`),4) AS area, |
| | | f.technology_number , |
| | | g.glass_child , |
| | | g.icon, |
| | | op.project_name |
| | | FROM |
| | | ((pp.flow_card AS f |
| | | LEFT JOIN sd.order_detail AS d ON (((f.order_id = d.order_id) AND (f.order_number = d.order_number)))) |
| | | LEFT JOIN sd.order_glass_detail AS g ON (((f.order_id = g.order_id) AND (f.order_number = g.order_number) AND (f.technology_number = g.technology_number)))) |
| | | INNER JOIN pp.optimize_project AS op ON op.project_no = f.project_no |
| | | WHERE |
| | | f.project_no = #{projectNo} |
| | | GROUP BY |
| | | f.order_id, |
| | | f.technology_number, |
| | | f.order_number; |
| | | </select> |
| | | |
| | | <!--库存信息--> |
| | | <select id="materialStoreMp"> |
| | | SELECT |
| | | i.id AS id, |
| | | i.producer AS producer, |
| | | i.available_quantity AS available_quantity, |
| | | JSON_EXTRACT(s.json, '$.width') AS width, |
| | | JSON_EXTRACT(s.json, '$.height') AS height, |
| | | JSON_EXTRACT(s.json, '$.thickness') AS thickness, |
| | | JSON_EXTRACT(s.json, '$.name') AS name, |
| | | JSON_EXTRACT(s.json, '$.model') AS model |
| | | FROM mm.material_inventory as `i` |
| | | LEFT JOIN mm.material_store as s ON ( |
| | | ( |
| | | `i`.`material_code` = `s`.`id` |
| | | ) |
| | | ) |
| | | WHERE |
| | | ( |
| | | (`s`.`type` = '原片') |
| | | AND (`i`.`optimize_state` = 1) |
| | | AND (`i`.`available_quantity` > 0) |
| | | AND JSON_EXTRACT(s.json, '$.thickness') = #{thickness} |
| | | AND JSON_EXTRACT(s.json, '$.model') = #{model} |
| | | ) |
| | | ORDER BY |
| | | `i`.`available_quantity` DESC ; |
| | | </select> |
| | | |
| | | <select id="selectWordOrder" resultMap="wordOrderMap"> |
| | | select |
| | | o.order_id, |
| | | o.batch, |
| | | o.project, |
| | | o.order_type, |
| | | o.area as gross_area, |
| | | o.quantity as quantity, |
| | | o.creator, |
| | | o.customer_name, |
| | | o.processing_note |
| | | from sd.order_detail as od |
| | | left join `order` as o |
| | | on o.order_id=od.order_id |
| | | where o.production_order!=2 and o.order_review=2 |
| | | |
| | | <if test="orderGlassDetail.orderId != null and orderGlassDetail.orderId != ''"> |
| | | and o.order_id regexp #{orderGlassDetail.orderId} |
| | | </if> |
| | | |
| | | <if test="orderGlassDetail.order.batch != null and orderGlassDetail.order.batch != ''"> |
| | | and o.batch regexp #{orderGlassDetail.order.batch} |
| | | </if> |
| | | <if test="orderGlassDetail.order.project != null and orderGlassDetail.order.project!= ''"> |
| | | and o.project regexp #{orderGlassDetail.order.project} |
| | | </if> |
| | | <if test="orderGlassDetail.order.orderType != null and orderGlassDetail.order.orderType!= ''"> |
| | | and o.order_type regexp #{orderGlassDetail.order.orderType} |
| | | </if> |
| | | <if test="orderGlassDetail.order.customerName != null and orderGlassDetail.order.customerName!= ''"> |
| | | and o.customer_name regexp #{orderGlassDetail.order.customerName} |
| | | </if> |
| | | <if test="orderGlassDetail.order.processingNote != null and orderGlassDetail.order.processingNote!= ''"> |
| | | and o.processing_note regexp #{orderGlassDetail.order.processingNote} |
| | | </if> |
| | | |
| | | <if test="orderGlassDetail.createTime != ''"> |
| | | and DATE_FORMAT((o.create_time),'%Y-%m-%d') BETWEEN #{ selectTime1 } AND #{ selectTime2 } |
| | | </if> |
| | | |
| | | group by o.order_id |
| | | order by o.id desc |
| | | |
| | | |
| | | ; |
| | | </select> |
| | | |
| | | <select id="getFlowCardListMp"> |
| | | select fc.process_id, |
| | | fc.technology_number, |
| | | fcss.TotalFloors, |
| | | COUNT(fc.order_number) as TotalNumber, |
| | | SUM(fc.quantity) as quantity, |
| | | ROUND(SUM(od.width * od.height * fc.quantity / 1000000), 2) as area, |
| | | o.project, |
| | | ogd.glass_child, |
| | | od.shape |
| | | |
| | | from pp.flow_card as fc |
| | | left join sd.`order` as o on fc.order_id = o.order_id |
| | | left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number |
| | | 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 |
| | | left join (select fcs.process_id, |
| | | fcs.order_number, |
| | | COUNT(DISTINCT fcs.technology_number) as TotalFloors |
| | | from pp.flow_card as fcs |
| | | GROUP BY fcs.process_id, fcs.order_number) as fcss |
| | | on fcss.process_id = fc.process_id and fcss.order_number = fc.order_number |
| | | where position(#{optionVal} in ogd.glass_child) |
| | | GROUP BY fc.process_id, fc.technology_number |
| | | ORDER BY fc.process_id, fc.technology_number |
| | | </select> |
| | | |
| | | <!--工程管理--> |
| | | <select id="optimizeProjectMangeMp" resultMap="optimizeProjectMangeMap"> |
| | | select p.`id` AS `id`, |
| | | p.`project_no` AS `Project Number`, |
| | | p.`project_name` AS `Project Name`, |
| | | p.`glass_type` AS `Glass Type`, |
| | | p.`glass_thickness` AS `Thickness`, |
| | | p.`type` AS `Type`, |
| | | p.`state` AS `State`, |
| | | p.`glass_total` AS `Quantity`, |
| | | p.`glass_total_area` AS `Area`, |
| | | p.`process_qty` AS `Process Card Quantity`, |
| | | p.`raw_stock_qty` AS `Using Quantity`, |
| | | concat((`p`.`load_rate` * 100), ' %') AS `Tempered loading rate`, |
| | | `p`.`furnaces_qty` AS `Number of tempering furnaces`, |
| | | concat(`p`.`avg_cut_pct`, ' %') AS `Average cutting rate`, |
| | | concat(`p`.`valid_cut_pct`, ' %') AS `Effective cutting rate`, |
| | | concat(`p`.`last_cut_pct`, ' %') AS `Residue glass cutting rate`, |
| | | `p`.`process_cards` AS `Process card collection`, |
| | | `p`.`frist_stock_qty` AS `Amount of original glass usage 1`, |
| | | concat(`p`.`frist_cut_pct`, ' %') AS `Average cutting rate 1`, |
| | | `p`.`remark` AS `Notes`, |
| | | `a`.`name` AS `Creator`, |
| | | `p`.`create_time` AS `Create time`, |
| | | `p`.`update_time` AS `Modify time` |
| | | from pp.optimize_project as p |
| | | left join pp.optimize_admin as a on p.creater = a.Id |
| | | where (`p`.`state` > -(1)) |
| | | and DATE (`p`.`create_time`) BETWEEN #{startSelectTime} AND #{endSelectTime} |
| | | <if test="optimizeProjectMange.projectNumber != null and optimizeProjectMange.projectNumber != ''"> |
| | | and p.project_no regexp #{optimizeProjectMange.projectNumber} |
| | | </if> |
| | | <if test="optimizeProjectMange.state!= null"> |
| | | and p.state = #{optimizeProjectMange.state} |
| | | </if> |
| | | order by `p`.`create_time` desc, `p`.`project_no` |
| | | </select> |
| | | <!--修改工程状态--> |
| | | <update id="updateProjectStateMp"> |
| | | update pp.optimize_project as p |
| | | set p.state = #{state} |
| | | where p.project_no = #{projectNumber} |
| | | </update> |
| | | |
| | | <!--删除工程--> |
| | | <delete id="deleteProjectMp"> |
| | | delete from pp.optimize_project |
| | | where project_no = #{projectNumber} |
| | | </delete> |
| | | |
| | | <select id="getProjectListMp"> |
| | | SELECT |
| | | p.id, |
| | | p.project_no, |
| | | p.project_name, |
| | | p.glass_type, |
| | | p.glass_thickness, |
| | | p.type, |
| | | p.state, |
| | | p.glass_total, |
| | | p.glass_total_area, |
| | | p.process_qty, |
| | | p.process_cards, |
| | | p.remark, |
| | | a.name, |
| | | p.create_time, |
| | | p.update_time |
| | | FROM |
| | | ( |
| | | pp.optimize_project p |
| | | LEFT JOIN pp.optimize_admin a ON (( |
| | | p.creater = a.Id |
| | | ))) |
| | | WHERE |
| | | ( p.state = 1 ) |
| | | ORDER BY |
| | | p.create_time DESC, |
| | | p.project_no |
| | | </select> |
| | | |
| | | <!--模拟计算查询流程卡--> |
| | | <select id="selectProjectComputeMp"> |
| | | SELECT |
| | | fc.process_id, |
| | | fc.technology_number, |
| | | fc.project_no, |
| | | fcss.TotalFloors, |
| | | COUNT(fc.order_number) AS TotalNumber, |
| | | SUM(fc.quantity) AS quantity, |
| | | ROUND(SUM(od.width * od.height * fc.quantity / 1000000), 2) AS area, |
| | | o.project, |
| | | ogd.glass_child, |
| | | od.shape |
| | | FROM |
| | | pp.flow_card AS fc |
| | | LEFT JOIN sd.`order` AS o ON fc.order_id = o.order_id |
| | | LEFT JOIN sd.order_detail AS od ON od.order_id = fc.order_id AND od.order_number = fc.order_number |
| | | 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 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | fcs.process_id, |
| | | fcs.order_number, |
| | | COUNT(DISTINCT fcs.technology_number) AS TotalFloors |
| | | FROM |
| | | pp.flow_card AS fcs |
| | | GROUP BY |
| | | fcs.process_id, fcs.order_number |
| | | ) AS fcss |
| | | ON fcss.process_id = fc.process_id AND fcss.order_number = fc.order_number |
| | | WHERE |
| | | fc.project_no = #{projectNo} |
| | | GROUP BY |
| | | fc.process_id, fc.technology_number |
| | | ORDER BY |
| | | fc.process_id, fc.technology_number; |
| | | </select> |
| | | |
| | | <!--模拟计算流程卡详情--> |
| | | <select id="selectComputeDetailMp"> |
| | | SELECT |
| | | d.width AS width, |
| | | d.height AS height, |
| | | f.quantity AS quantity, |
| | | d.building_number AS `Storey Number`, |
| | | d.shape AS shape, |
| | | round(g.area * f.quantity, 4) AS area, |
| | | g.icon AS `Label type` |
| | | FROM |
| | | pp.flow_card f |
| | | LEFT JOIN pp.optimize_project p ON f.project_no = p.project_no |
| | | LEFT JOIN sd.order o ON f.order_id = o.order_id |
| | | LEFT JOIN sd.order_detail d ON f.order_id = d.order_id AND f.order_number = d.order_number |
| | | LEFT JOIN sd.order_glass_detail g ON f.order_id = g.order_id AND f.order_number = g.order_number AND f.technology_number = g.technology_number |
| | | LEFT JOIN sd.product_detail p2 ON d.product_id = p2.prod_id AND f.technology_number = p2.glass_sort |
| | | LEFT JOIN pp.optimize_project j ON f.project_no = j.project_no |
| | | WHERE |
| | | p.state IN (1, 2) |
| | | AND f.process_id = #{processId} |
| | | </select> |
| | | </mapper> |