<?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.op.quality.mapper.QcUserMaterialMapper"> <resultMap type="QcUserMaterial" id="QcUserMaterialResult"> <result property="id" column="id" /> <result property="userCode" column="user_code" /> <result property="userName" column="user_name" /> <result property="materialCode" column="material_code" /> <result property="materialName" column="material_name" /> <result property="attr1" column="attr1" /> <result property="attr2" column="attr2" /> <result property="attr3" column="attr3" /> <result property="attr4" column="attr4" /> <result property="userId" column="user_id"/> <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="factoryCode" column="factory_code" /> <result property="delFlag" column="del_flag" /> </resultMap> <sql id="selectQcUserMaterialVo"> select id, user_code, user_name, material_code, material_name, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_user_material </sql> <select id="selectUserList" parameterType="QcUserMaterial" resultMap="QcUserMaterialResult"> SELECT t.user_id, t.user_name as user_code, t.nick_name as user_name, t.phonenumber, t.email, STRING_AGG(bp.product_desc_zh, ',') materialNames, t.status, t.create_time FROM sys_user t LEFT JOIN lanju_op_xiaolan_ds.dbo.qc_user_material um ON um.user_code = t.user_name LEFT JOIN lanju_op_xiaolan_ds.dbo.base_product bp ON bp.product_code = um.material_code WHERE t.del_flag = '0' <if test="userName != null and userName != ''"> and t.nick_name like concat('%', #{userName}, '%')</if> <if test="phonenumber != null and phonenumber != ''"> and t.phonenumber like concat('%', #{phonenumber}, '%')</if> GROUP BY t.user_id,t.user_name,t.nick_name,t.phonenumber,t.email,t.status,t.create_time </select> <select id="selectQcUserMaterialList" parameterType="QcUserMaterial" resultMap="QcUserMaterialResult"> <include refid="selectQcUserMaterialVo"/> <where> <if test="userCode != null and userCode != ''"> and user_code = #{userCode}</if> <if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if> <if test="materialCode != null and materialCode != ''"> and material_code = #{materialCode}</if> <if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if> <if test="attr1 != null and attr1 != ''"> and attr1 = #{attr1}</if> <if test="attr2 != null and attr2 != ''"> and attr2 = #{attr2}</if> <if test="attr3 != null and attr3 != ''"> and attr3 = #{attr3}</if> <if test="attr4 != null and attr4 != ''"> and attr4 = #{attr4}</if> <if test="factoryCode != null and factoryCode != ''"> and factory_code = #{factoryCode}</if> </where> </select> <select id="selectUserByUserCode" parameterType="QcUserMaterial" resultMap="QcUserMaterialResult"> SELECT user_id, user_name as user_code, nick_name as user_name, phonenumber, create_time FROM sys_user WHERE user_name = #{userCode} </select> <select id="selectQcUserMaterialById" parameterType="String" resultMap="QcUserMaterialResult"> <include refid="selectQcUserMaterialVo"/> where id = #{id} </select> <select id="getUserMaterialListUndo" resultType="com.op.quality.domain.QcUserMaterial"> select bp.product_code materialCode, concat(bp.product_desc_zh,'(',bp.product_code,')') label, concat(bp.product_desc_zh,'(',bp.product_code,')') materialName, bp.product_id materialId from base_product bp where bp.active_flag = '1' and bp.del_flag = '0' and bp.product_code not in ( select um.material_code from qc_user_material um where um.user_code in <foreach item="userCode" collection="userCodes" open="(" separator="," close=")"> #{userCode} </foreach> ) <if test="materialName != null and materialName != ''"> and bp.product_desc_zh like concat('%', #{materialName}, '%')</if> </select> <select id="getUserMaterialListDo" resultType="com.op.quality.domain.QcUserMaterial"> select distinct um.material_code materialCode, concat(bp.product_desc_zh,'(',bp.product_code,')') label from qc_user_material um left join base_product bp on um.material_code = bp.product_code where um.user_code in <foreach item="userCode" collection="userCodes" open="(" separator="," close=")"> #{userCode} </foreach> <if test="materialName != null and materialName != ''"> and bp.product_desc_zh like concat('%', #{materialName}, '%')</if> </select> <insert id="insertQcUserMaterial" parameterType="QcUserMaterial"> insert into qc_user_material <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="userCode != null">user_code,</if> <if test="userName != null">user_name,</if> <if test="materialCode != null">material_code,</if> <if test="materialName != null">material_name,</if> <if test="attr1 != null">attr1,</if> <if test="attr2 != null">attr2,</if> <if test="attr3 != null">attr3,</if> <if test="attr4 != null">attr4,</if> <if test="createBy != null">create_by,</if> <if test="createTime != null">create_time,</if> <if test="updateBy != null">update_by,</if> <if test="updateTime != null">update_time,</if> <if test="factoryCode != null and factoryCode != ''">factory_code,</if> <if test="delFlag != null">del_flag,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="userCode != null">#{userCode},</if> <if test="userName != null">#{userName},</if> <if test="materialCode != null">#{materialCode},</if> <if test="materialName != null">#{materialName},</if> <if test="attr1 != null">#{attr1},</if> <if test="attr2 != null">#{attr2},</if> <if test="attr3 != null">#{attr3},</if> <if test="attr4 != null">#{attr4},</if> <if test="createBy != null">#{createBy},</if> <if test="createTime != null">#{createTime},</if> <if test="updateBy != null">#{updateBy},</if> <if test="updateTime != null">#{updateTime},</if> <if test="factoryCode != null and factoryCode != ''">#{factoryCode},</if> <if test="delFlag != null">#{delFlag},</if> </trim> </insert> <update id="updateQcUserMaterial" parameterType="QcUserMaterial"> update qc_user_material <trim prefix="SET" suffixOverrides=","> <if test="userCode != null">user_code = #{userCode},</if> <if test="userName != null">user_name = #{userName},</if> <if test="materialCode != null">material_code = #{materialCode},</if> <if test="materialName != null">material_name = #{materialName},</if> <if test="attr1 != null">attr1 = #{attr1},</if> <if test="attr2 != null">attr2 = #{attr2},</if> <if test="attr3 != null">attr3 = #{attr3},</if> <if test="attr4 != null">attr4 = #{attr4},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="createTime != null">create_time = #{createTime},</if> <if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateTime != null">update_time = #{updateTime},</if> <if test="factoryCode != null and factoryCode != ''">factory_code = #{factoryCode},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> </trim> where id = #{id} </update> <delete id="deleteQcUserMaterialByUserCode" parameterType="String"> delete from qc_user_material where user_code = #{userCode} </delete> <delete id="deleteQcUserMaterialByUserCodes" parameterType="String"> delete from qc_user_material where user_code in <foreach item="userCode" collection="array" open="(" separator="," close=")"> #{userCode} </foreach> </delete> </mapper>