<?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.gx.obe.server.management.boq.dao.ObeSupplyMaterialDetailMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.gx.obe.server.management.boq.entity.ObeSupplyMaterialDetail"> <id column="SUPPLY_MATERIAL_DETAIL_ID" property="id"/> <result column="TENDER_ID" property="tenderId"/> <result column="SUPPLIER_ID" property="supplierId"/> <result column="PROJECT_ID" property="projectId"/> <result column="NUMBER" property="number"/> <result column="NAME" property="name"/> <result column="SPECIFICATION" property="specification"/> <result column="UNIT" property="unit"/> <result column="QUANTITY" property="quantity"/> <result column="PRICE" property="price"/> <result column="TOTAL" property="total"/> <result column="QUALITY_GRADE" property="qualityGrade"/> <result column="SUPPLY_TIME" property="supplyTime"/> <result column="SERVICE_ADDRESS" property="serviceAddress"/> <result column="REMARK" property="remark"/> <result column="SORT_NO" property="sortNo"/> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> SUPPLY_MATERIAL_DETAIL_ID, TENDER_ID, SUPPLIER_ID, PROJECT_ID, NUMBER, NAME, SPECIFICATION, UNIT, QUANTITY, PRICE, TOTAL, QUALITY_GRADE, SUPPLY_TIME, SERVICE_ADDRESS, REMARK, SORT_NO </sql> <!-- 批量更新 --> <update id="updateBatchList" parameterType="java.util.List"> UPDATE obe_supply_material_detail <set> TENDER_ID = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.tenderId != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.tenderId} </if> <if test="ObeSupplyMaterialDetail.tenderId == null"> when #{ObeSupplyMaterialDetail.id} then TENDER_ID </if> </foreach> SUPPLIER_ID = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.supplierId != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.supplierId} </if> <if test="ObeSupplyMaterialDetail.supplierId == null"> when #{ObeSupplyMaterialDetail.id} then SUPPLIER_ID </if> </foreach> PROJECT_ID = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.projectId != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.projectId} </if> <if test="ObeSupplyMaterialDetail.projectId == null"> when #{ObeSupplyMaterialDetail.id} then PROJECT_ID </if> </foreach> NUMBER = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.number != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.number} </if> <if test="ObeSupplyMaterialDetail.number == null"> when #{ObeSupplyMaterialDetail.id} then NUMBER </if> </foreach> NAME = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.name != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.name} </if> <if test="ObeSupplyMaterialDetail.name == null"> when #{ObeSupplyMaterialDetail.id} then NAME </if> </foreach> SPECIFICATION = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.specification != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.specification} </if> <if test="ObeSupplyMaterialDetail.specification == null"> when #{ObeSupplyMaterialDetail.id} then SPECIFICATION </if> </foreach> UNIT = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.unit != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.unit} </if> <if test="ObeSupplyMaterialDetail.unit == null"> when #{ObeSupplyMaterialDetail.id} then UNIT </if> </foreach> QUANTITY = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.quantity != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.quantity} </if> <if test="ObeSupplyMaterialDetail.quantity == null"> when #{ObeSupplyMaterialDetail.id} then QUANTITY </if> </foreach> PRICE = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.price != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.price} </if> <if test="ObeSupplyMaterialDetail.price == null"> when #{ObeSupplyMaterialDetail.id} then PRICE </if> </foreach> TOTAL = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.total != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.total} </if> <if test="ObeSupplyMaterialDetail.total == null"> when #{ObeSupplyMaterialDetail.id} then TOTAL </if> </foreach> QUALITY_GRADE = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.qualityGrade != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.qualityGrade} </if> <if test="ObeSupplyMaterialDetail.qualityGrade == null"> when #{ObeSupplyMaterialDetail.id} then QUALITY_GRADE </if> </foreach> SUPPLY_TIME = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.supplyTime != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.supplyTime} </if> <if test="ObeSupplyMaterialDetail.supplyTime == null"> when #{ObeSupplyMaterialDetail.id} then SUPPLY_TIME </if> </foreach> SERVICE_ADDRESS = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.serviceAddress != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.serviceAddress} </if> <if test="ObeSupplyMaterialDetail.serviceAddress == null"> when #{ObeSupplyMaterialDetail.id} then SERVICE_ADDRESS </if> </foreach> REMARK = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.remark != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.remark} </if> <if test="ObeSupplyMaterialDetail.remark == null"> when #{ObeSupplyMaterialDetail.id} then REMARK </if> </foreach> SORT_NO = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> <if test="ObeSupplyMaterialDetail.sortNo != null"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.sortNo} </if> <if test="ObeSupplyMaterialDetail.sortNo == null"> when #{ObeSupplyMaterialDetail.id} then SORT_NO </if> </foreach> </set> <where> SUPPLY_MATERIAL_DETAIL_ID IN <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator="," open="(" close=")"> #{ObeSupplyMaterialDetail.id} </foreach> </where> </update> <!-- 批量插入--> <insert id="insertByBatch" parameterType="java.util.List"> insert into obe_supply_material_detail ( SUPPLY_MATERIAL_DETAIL_ID, TENDER_ID, SUPPLIER_ID, PROJECT_ID, NUMBER, NAME, SPECIFICATION, UNIT, QUANTITY, PRICE, TOTAL, QUALITY_GRADE, SUPPLY_TIME, SERVICE_ADDRESS, REMARK, SORT_NO ) values <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" open="" close="" separator=","> ( #{ObeSupplyMaterialDetail.id}, #{ObeSupplyMaterialDetail.tenderId}, #{ObeSupplyMaterialDetail.supplierId}, #{ObeSupplyMaterialDetail.projectId}, #{ObeSupplyMaterialDetail.number}, #{ObeSupplyMaterialDetail.name}, #{ObeSupplyMaterialDetail.specification}, #{ObeSupplyMaterialDetail.unit}, #{ObeSupplyMaterialDetail.quantity}, #{ObeSupplyMaterialDetail.price}, #{ObeSupplyMaterialDetail.total}, #{ObeSupplyMaterialDetail.qualityGrade}, #{ObeSupplyMaterialDetail.supplyTime}, #{ObeSupplyMaterialDetail.serviceAddress}, #{ObeSupplyMaterialDetail.remark}, #{ObeSupplyMaterialDetail.sortNo} ) </foreach> </insert> <!-- 指定字段修改 --> <update id="updateAssignProperty"> UPDATE obe_supply_material_detail <set> <foreach collection="attributes" item="attribute" index="index" open="" close="" separator=","> <if test="attribute == 'tenderId'"> TENDER_ID = #{ObeSupplyMaterialDetail.tenderId} </if> <if test="attribute == 'supplierId'"> SUPPLIER_ID = #{ObeSupplyMaterialDetail.supplierId} </if> <if test="attribute == 'projectId'"> PROJECT_ID = #{ObeSupplyMaterialDetail.projectId} </if> <if test="attribute == 'number'"> NUMBER = #{ObeSupplyMaterialDetail.number} </if> <if test="attribute == 'name'"> NAME = #{ObeSupplyMaterialDetail.name} </if> <if test="attribute == 'specification'"> SPECIFICATION = #{ObeSupplyMaterialDetail.specification} </if> <if test="attribute == 'unit'"> UNIT = #{ObeSupplyMaterialDetail.unit} </if> <if test="attribute == 'quantity'"> QUANTITY = #{ObeSupplyMaterialDetail.quantity} </if> <if test="attribute == 'price'"> PRICE = #{ObeSupplyMaterialDetail.price} </if> <if test="attribute == 'total'"> TOTAL = #{ObeSupplyMaterialDetail.total} </if> <if test="attribute == 'qualityGrade'"> QUALITY_GRADE = #{ObeSupplyMaterialDetail.qualityGrade} </if> <if test="attribute == 'supplyTime'"> SUPPLY_TIME = #{ObeSupplyMaterialDetail.supplyTime} </if> <if test="attribute == 'serviceAddress'"> SERVICE_ADDRESS = #{ObeSupplyMaterialDetail.serviceAddress} </if> <if test="attribute == 'remark'"> REMARK = #{ObeSupplyMaterialDetail.remark} </if> <if test="attribute == 'sortNo'"> SORT_NO = #{ObeSupplyMaterialDetail.sortNo} </if> </foreach> </set> <where> SUPPLY_MATERIAL_DETAIL_ID = #{ObeSupplyMaterialDetail.id} </where> </update> <!-- 批量指定字段修改 --> <update id="batchUpdateProperty"> UPDATE obe_supply_material_detail <set> <foreach collection="attributes" item="attribute" index="index" open="" close="" separator=","> <if test="attribute == 'tenderId'"> TENDER_ID = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.tenderId} </foreach> </if> <if test="attribute == 'supplierId'"> SUPPLIER_ID = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.supplierId} </foreach> </if> <if test="attribute == 'projectId'"> PROJECT_ID = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.projectId} </foreach> </if> <if test="attribute == 'number'"> NUMBER = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.number} </foreach> </if> <if test="attribute == 'name'"> NAME = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.name} </foreach> </if> <if test="attribute == 'specification'"> SPECIFICATION = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.specification} </foreach> </if> <if test="attribute == 'unit'"> UNIT = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.unit} </foreach> </if> <if test="attribute == 'quantity'"> QUANTITY = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.quantity} </foreach> </if> <if test="attribute == 'price'"> PRICE = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.price} </foreach> </if> <if test="attribute == 'total'"> TOTAL = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.total} </foreach> </if> <if test="attribute == 'qualityGrade'"> QUALITY_GRADE = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.qualityGrade} </foreach> </if> <if test="attribute == 'supplyTime'"> SUPPLY_TIME = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.supplyTime} </foreach> </if> <if test="attribute == 'serviceAddress'"> SERVICE_ADDRESS = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.serviceAddress} </foreach> </if> <if test="attribute == 'remark'"> REMARK = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.remark} </foreach> </if> <if test="attribute == 'sortNo'"> SORT_NO = <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator=" " open="case SUPPLY_MATERIAL_DETAIL_ID" close="end"> when #{ObeSupplyMaterialDetail.id} then #{ObeSupplyMaterialDetail.sortNo} </foreach> </if> </foreach> </set> <where> SUPPLY_MATERIAL_DETAIL_ID IN <foreach collection="ObeSupplyMaterialDetailList" item="ObeSupplyMaterialDetail" index="index" separator="," open="(" close=")"> #{ObeSupplyMaterialDetail.id} </foreach> </where> </update> <delete id="deleteByTenderId"> DELETE FROM OBE_SUPPLY_MATERIAL_DETAIL WHERE TENDER_ID = #{tenderId} </delete> <select id="getSupplyMaterialDetailListByProjectId" resultMap="BaseResultMap"> SELECT * FROM OBE_SUPPLY_MATERIAL_DETAIL WHERE PROJECT_ID = #{projectId} ORDER BY SORT_NO </select> </mapper>