<?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.nanometer.smartlab.dao.OpeApplyDao">
|
<resultMap id="OpeApply" type="com.nanometer.smartlab.entity.OpeApply">
|
<id property="id" column="id"/>
|
<result property="firstUser" column="first_user"></result>
|
<result property="firName" column="firName"></result>
|
<result property="secondUserName" column="secondUserName"></result>
|
<result property="applyCode" column="apply_code"></result>
|
<result property="num" column="num"></result>
|
<result property="deadline" column="deadline"></result>
|
<result property="applyUserId" column="apply_user_id"></result>
|
<result property="objective" column="objective"></result>
|
<result property="status" column="status" typeHandler="com.nanometer.smartlab.entity.handler.ApplyStatusHandler"></result>
|
<result property="createTime" column="create_time"></result>
|
<result property="updateTime" column="update_time"></result>
|
<result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result>
|
<result property="approveUserId" column="approve_user_id"></result>
|
<result property="beforeApproveUserId" column="before_approve_user_id"></result>
|
<result property="memo" column="memo"></result>
|
<result property="applyUserName" column="applyUserName"></result>
|
<result property="approveUserName" column="approveUserName"></result>
|
<result property="startReagentCode" column="start_reagent_code"></result>
|
<result property="endReagentCode" column="end_reagent_code"></result>
|
<result property="arrivalNum" column="arrival_num"></result>
|
<result property="articleNumber" column="article_number"></result>
|
<result property="houseId" column="house_id"></result>
|
<result property="containerId" column="container_id"></result>
|
<result property="placeId" column="place"></result>
|
<result property="applyGoal" column="apply_goal"></result>
|
<result property="applyPrice" column="apply_price"></result>
|
<result property="stockFlag" column="stock_flag"></result>
|
<association property="reagent" javaType="com.nanometer.smartlab.entity.SysReagent">
|
<id property="id" column="reagent_id"></id>
|
<result property="name" column="reagentName"></result>
|
<result property="cas" column="reagentCas"></result>
|
<result property="reagentType" column="reagentType"></result>
|
<result property="reagentCharacter" column="reagentCharacter"></result>
|
<result property="supplierId" column="reagentSupplierId"></result>
|
<result property="reagentFormat" column="reagentFormat"></result>
|
<result property="mainMetering" column="reagentMainMetering"></result>
|
<result property="reagentUnit" column="reagentUnit"></result>
|
<result property="price" column="reagentPrice"></result>
|
<result property="perBox" column="reagentPerBox"></result>
|
<result property="memo" column="reagentMemo"></result>
|
<result property="validFlag" column="reagentValidFlag"></result>
|
<result property="createTime" column="reagentCreateTime"></result>
|
<result property="updateTime" column="reagentUpdateTime"></result>
|
<result property="supplierName" column="supplierName"></result>
|
<result property="productSn" column="reagentProductSn"></result>
|
<result property="controlProducts" column="controlProducts"></result>
|
<result property="dangerousFlag" column="reagentDangerousFlag" typeHandler="com.nanometer.smartlab.entity.handler.DangerousFlagHandler"></result>
|
<result property="productHome" column="productHome"></result>
|
<result property="productHomeName" column="productHomeName"></result>
|
</association>
|
</resultMap>
|
|
<resultMap id="OpeApplyReserve" type="com.nanometer.smartlab.entity.OpeApplyReserve">
|
<id property="id" column="id"/>
|
<result property="applyCode" column="apply_code"></result>
|
<result property="num" column="num"></result>
|
<result property="used" column="used"></result>
|
<result property="arrivalNum" column="arrival_num"></result>
|
<result property="status" column="status" typeHandler="com.nanometer.smartlab.entity.handler.ApplyStatusHandler"></result>
|
<result property="applyUserId" column="apply_user_id"></result>
|
<result property="arrivalTime" column="arrival_time"></result>
|
<result property="projectManage" column="projectManage"/>
|
<result property="project" column="project"/>
|
<association property="reagent" javaType="com.nanometer.smartlab.entity.SysReagent">
|
<id property="id" column="reagent_id"></id>
|
<result property="name" column="reagentName"></result>
|
<result property="cas" column="reagentCas"></result>
|
<result property="reagentType" column="reagentType"></result>
|
<result property="reagentCharacter" column="reagentCharacter"></result>
|
<result property="supplierId" column="reagentSupplierId"></result>
|
<result property="reagentFormat" column="reagentFormat"></result>
|
<result property="mainMetering" column="reagentMainMetering"></result>
|
<result property="reagentUnit" column="reagentUnit"></result>
|
<result property="price" column="reagentPrice"></result>
|
<result property="perBox" column="reagentPerBox"></result>
|
<result property="memo" column="reagentMemo"></result>
|
<result property="validFlag" column="reagentValidFlag"></result>
|
<result property="createTime" column="reagentCreateTime"></result>
|
<result property="updateTime" column="reagentUpdateTime"></result>
|
<result property="supplierName" column="supplierName"></result>
|
<result property="productSn" column="reagentProductSn"></result>
|
<result property="controlProducts" column="controlProducts"></result>
|
<result property="dangerousFlag" column="reagentDangerousFlag" typeHandler="com.nanometer.smartlab.entity.handler.DangerousFlagHandler"></result>
|
<result property="productHome" column="productHome"></result>
|
<result property="productHomeName" column="productHomeName"></result>
|
</association>
|
</resultMap>
|
|
<sql id="queryWhereSql">
|
<if test="reagentName != null and reagentName != ''">
|
and sr.name like #{reagentName}
|
</if>
|
<if test="startDeadline != null">
|
and oa.deadline >= #{startDeadline}
|
</if>
|
<if test="endDeadline != null">
|
and #{endDeadline} >= oa.deadline
|
</if>
|
<if test="status != null">
|
and oa.status = #{status}
|
</if>
|
<if test="applyUserId != null and applyUserId != ''">
|
and oa.apply_user_id = #{applyUserId}
|
</if>
|
<if test="approveUserId != null and approveUserId != ''">
|
and (oa.approve_user_id = #{approveUserId} or oa.before_approve_user_id = #{approveUserId})
|
</if>
|
<if test="searchApproval != null and searchApproval != ''">
|
and (oa.approve_user_id = #{searchApproval} or oa.before_approve_user_id = #{searchApproval})
|
</if>
|
|
<if test="applyUserName != null and applyUserName != ''">
|
and su.name like #{applyUserName}
|
</if>
|
|
<if test="approvaUserName != null and approvaUserName != ''">
|
and (suApprove.name like #{approvaUserName} or sys.name like #{approvaUserName})
|
</if>
|
|
<if test="editId != null and editId != ''">
|
and oa.id != #{editId}
|
</if>
|
<if test="cas != null and cas != ''">
|
and sr.cas like #{cas}
|
</if>
|
<if test="applyCode != null and applyCode != ''">
|
and oa.apply_code like concat('%',#{applyCode},'%')
|
</if>
|
<if test="applyUserName != null and applyUserName != ''">
|
and su.name like concat('%',#{applyUserName},'%')
|
</if>
|
</sql>
|
|
<select id="getOpeApply" parameterType="java.lang.String" resultMap="OpeApply" >
|
select oa.*,sys.name as secondUserName,
|
sr.name as reagentName, sr.cas as reagentCas, sr.reagent_type as reagentType, sr.reagent_character as reagentCharacter, sr.supplier_id as reagentSupplierId, sr.dangerous_flag as reagentDangerousFlag,
|
sr.reagent_format as reagentFormat, sr.main_metering as reagentMainMetering, sr.reagent_unit as reagentUnit, sr.price as reagentPrice, sr.per_box as reagentPerBox,
|
sr.memo as reagentMemo, sr.valid_flag as reagentValidFlag, sr.create_time as reagentCreateTime, sr.update_time as reagentUpdateTime,sr.control_products as controlProducts,sr.product_sn as reagentProductSn,sr.product_home as productHome,
|
ss.name as supplierName,
|
su.name as applyUserName,
|
suApprove.name as approveUserName,
|
bm.meta_value as productHomeName
|
from ope_apply as oa
|
left join sys_reagent sr on oa.reagent_id = sr.id
|
left join sys_supplier as ss on sr.supplier_id = ss.id
|
left join sys_user as su on oa.apply_user_id = su.id
|
left join sys_user as suApprove on oa.approve_user_id = suApprove.id
|
left join sys_user as sys on sys.id=oa.before_approve_user_id
|
left join base_meta as bm on sr.product_home = bm.id
|
where oa.id = #{id} and oa.valid_flag = 1
|
</select>
|
|
<select id="getOpeApplyList" parameterType="java.util.Map" resultMap="OpeApply">
|
select oa.*,sys.name as secondUserName,
|
sr.name as reagentName,sr.price as reagentPrice ,sr.cas as reagentCas, sr.reagent_type as reagentType, sr.reagent_character as reagentCharacter, sr.supplier_id as reagentSupplierId,
|
sr.reagent_format as reagentFormat, sr.main_metering as reagentMainMetering, sr.reagent_unit as reagentUnit, sr.per_box as reagentPerBox,
|
sr.memo as reagentMemo, sr.valid_flag as reagentValidFlag, sr.create_time as reagentCreateTime, sr.update_time as reagentUpdateTime, sr.product_sn as reagentProductSn,
|
sr.dangerous_flag as reagentDangerousFlag,sr.control_products as controlProducts,sr.product_home as productHome,
|
ss.name as supplierName,
|
su.name as applyUserName,
|
suApprove.name as approveUserName,
|
bm.meta_value as productHomeName,
|
fir.name as firName
|
from ope_apply as oa
|
left join sys_reagent sr on oa.reagent_id = sr.id
|
left join sys_supplier as ss on sr.supplier_id = ss.id
|
left join sys_user as su on oa.apply_user_id = su.id
|
left join sys_user as suApprove on oa.approve_user_id = suApprove.id
|
left join sys_user as sys on sys.id=oa.before_approve_user_id
|
left join sys_user as fir on fir.id=oa.first_user
|
left join base_meta as bm on sr.product_home = bm.id
|
where oa.valid_flag = 1
|
<include refid="queryWhereSql"/>
|
order by oa.create_time desc
|
<if test="first != null and pageSize != null">
|
limit #{first}, #{pageSize}
|
</if>
|
</select>
|
|
<select id="getOpeApplyTotalCount" parameterType="java.util.Map" resultType="int">
|
select count(1)
|
from ope_apply as oa
|
left join sys_reagent sr on oa.reagent_id = sr.id
|
left join sys_supplier as ss on sr.supplier_id = ss.id
|
left join sys_user as su on oa.apply_user_id = su.id
|
left join sys_user as suApprove on oa.approve_user_id = suApprove.id
|
left join sys_user as sys on sys.id=oa.before_approve_user_id
|
left join sys_user as fir on fir.id=oa.first_user
|
left join base_meta as bm on sr.product_home = bm.id
|
where oa.valid_flag = 1
|
<include refid="queryWhereSql"/>
|
</select>
|
|
<insert id="insertOpeApply" parameterType="com.nanometer.smartlab.entity.OpeApply">
|
insert into ope_apply(id, apply_code, reagent_id, num, deadline, apply_user_id, objective, status, approve_user_id, memo, valid_flag, create_time, update_time)
|
values (#{id}, #{applyCode}, #{reagent.id}, #{num}, #{deadline}, #{applyUserId}, #{objective}, #{status}, #{approveUserId}, #{memo}, 1, now(), now())
|
</insert>
|
|
<insert id="insertOpeApplyList" parameterType="java.util.List">
|
insert into ope_apply
|
(id, apply_code, reagent_id, num, deadline, apply_user_id, objective, status, approve_user_id, memo, valid_flag, create_time, update_time,apply_goal,apply_price,first_user)
|
values
|
<foreach collection="list" item="opeApply" separator=",">
|
(#{opeApply.id}, #{opeApply.applyCode}, #{opeApply.reagent.id}, #{opeApply.num}, #{opeApply.deadline},
|
#{opeApply.applyUserId}, #{opeApply.objective}, #{opeApply.status}, #{opeApply.approveUserId}, #{opeApply.memo}, 1, now(), now(),#{opeApply.applyGoal},#{opeApply.reagent.price},#{opeApply.approveUserId})
|
</foreach>
|
</insert>
|
|
<update id="updateFirst" parameterType="java.util.Map">
|
update ope_apply set first_user=approve_user_id where id=#{id}
|
</update>
|
<update id="updateFirst2" parameterType="java.util.Map">
|
update ope_apply set first_user=before_approve_user_id where id=#{id}
|
</update>
|
<update id="updateOpeApply" parameterType="com.nanometer.smartlab.entity.OpeApply">
|
update ope_apply set apply_code=#{applyCode}, reagent_id=#{reagent.id}, num=#{num}, deadline=#{deadline}, apply_user_id=#{applyUserId}, objective=#{objective},
|
status=#{status}, approve_user_id=#{approveUserId}, memo=#{memo}, update_time=now(),start_reagent_code=#{startReagentCode},end_reagent_code=#{endReagentCode},
|
arrival_num=#{arrivalNum},
|
house_id=#{houseId},
|
place=#{placeId},
|
container_id=#{containerId},
|
article_number=#{articleNumber}
|
where id=#{id}
|
</update>
|
|
<update id="updateOpeApplyStatus" parameterType="java.util.Map" >
|
update ope_apply set status=#{status}, memo=#{memo}, update_time=now()
|
where id in
|
<foreach collection="applyIds" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</update>
|
|
<update id="updateOpeApplyProject" parameterType="java.util.Map">
|
update ope_apply set objective =#{newObjective} where objective=#{oldObjective}
|
</update>
|
|
|
<update id="cancelApply" parameterType="java.util.Map">
|
update ope_apply set status=#{status} where id=#{id}
|
</update>
|
|
<update id="updateOpeApplyUsed" parameterType="com.nanometer.smartlab.entity.OpeApplyReserve">
|
update ope_apply set used=#{used} where id=#{id}
|
</update>
|
|
<update id="updateOpeApplyAdmin" parameterType="java.util.Map" >
|
update ope_apply set before_memo=#{memo}, before_approve_user_id=approve_user_id,
|
approve_user_id=#{userId}, update_time=now()
|
where id in
|
<foreach collection="applyIds" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</update>
|
|
<update id="updateOpeApplyAdmin2" parameterType="java.util.Map" >
|
update ope_apply set before_memo=#{memo}, before_approve_user_id=#{beforeUserId},
|
approve_user_id=#{userId}, update_time=now()
|
where id =#{id}
|
|
</update>
|
|
|
<update id="deleteOpeApply" parameterType="java.util.List">
|
update ope_apply set valid_flag=0, update_time=now()
|
where id in
|
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</update>
|
|
|
<select id="selectOpeApplyByPrimaryKey" parameterType="java.util.Map" resultMap="OpeApply">
|
select *
|
from ope_apply as oa
|
where id = #{id}
|
</select>
|
|
<sql id="getOpeApplyReserveList_queryColumns">
|
select oa.id, oa.apply_code,
|
sr.id reagent_id,
|
oa.status,
|
sr.product_sn reagentProductSn,
|
sr.`name` reagentName,
|
bm2.meta_value controlProducts,
|
bm3.meta_value reagentFormat,
|
sr.main_metering reagentMainMetering,
|
sr.price reagentPrice,
|
sr.cas reagentCas,
|
oa.article_number articleNumber,
|
bm4.meta_value reagentCharacter,
|
bm1.meta_value productHome,
|
sr.dangerous_flag,
|
oa.num,
|
oa.used,
|
su.`name` apply_user_id
|
</sql>
|
|
<sql id="getOpeApplyReserveList_queryJoins1">
|
left JOIN sys_reagent sr on sr.id = oa.reagent_id
|
left JOIN sys_user su on su.id = oa.apply_user_id
|
</sql>
|
|
<sql id="getOpeApplyReserveList_queryJoins2">
|
left join base_meta as bm2 on sr.control_products = bm2.id
|
left join base_meta as bm3 on sr.reagent_format = bm3.id
|
left join base_meta as bm4 on sr.reagent_character = bm4.id
|
left join base_meta as bm1 on sr.product_home = bm1.id
|
</sql>
|
|
<sql id="getOpeApplyReserveList_queryWhereSql">
|
<if test="reagentName != null and reagentName != ''">
|
and sr.name like concat('%',#{reagentName},'%')
|
</if>
|
<if test="personName != null and personName != ''">
|
and su.name like concat('%',#{personName},'%')
|
</if>
|
<if test="userId != null and userId != ''">
|
and oa.apply_user_id =#{userId}
|
</if>
|
<if test="status != null and status != ''">
|
and oa.status =#{status}
|
</if>
|
<if test="productSn != null and productSn != ''">
|
and sr.product_sn like concat('%',#{productSn},'%')
|
</if>
|
<if test="applyCode != null and applyCode != ''">
|
and oa.apply_code = #{applyCode}
|
</if>
|
</sql>
|
|
<select id="getOpeApplyReserveTotalCount" parameterType="java.util.Map"
|
resultType="int">
|
select count(1)
|
from ope_apply as oa
|
<include refid="getOpeApplyReserveList_queryJoins1" />
|
where oa.valid_flag = 1
|
<include refid="getOpeApplyReserveList_queryWhereSql" />
|
</select>
|
|
<select id="getOpeApplyReserveTotalCountFor" parameterType="java.util.Map"
|
resultType="int">
|
select count(1)
|
from
|
(select count(1)
|
from ope_apply as oa
|
LEFT JOIN sys_reagent sr ON sr.id = oa.reagent_id
|
LEFT JOIN sys_user su ON su.id = oa.apply_user_id
|
LEFT JOIN base_meta AS bm2 ON sr.control_products = bm2.id
|
LEFT JOIN base_meta AS bm3 ON sr.reagent_format = bm3.id
|
LEFT JOIN base_meta AS bm4 ON sr.reagent_character = bm4.id
|
LEFT JOIN base_meta AS bm1 ON sr.product_home = bm1.id
|
LEFT JOIN sys_project as project on project.project = su.project
|
LEFT JOIN sys_user as su1 on su1.id = project.sys_user_id
|
where oa.valid_flag = 1 and (oa.status=4 or oa.status=6)
|
<include refid="getOpeApplyReserveList_queryWhereSql" />
|
GROUP BY oa.id
|
)as oaa
|
</select>
|
|
<select id="getOpeApplyReserveList" parameterType="java.util.Map"
|
resultMap="OpeApplyReserve">
|
<include refid="getOpeApplyReserveList_queryColumns" />
|
from ope_apply as oa
|
<include refid="getOpeApplyReserveList_queryJoins1" />
|
<include refid="getOpeApplyReserveList_queryJoins2" />
|
where oa.valid_flag = 1
|
<include refid="getOpeApplyReserveList_queryWhereSql" />
|
GROUP BY oa.id
|
order by oa.update_time desc
|
<if test="first != null and pageSize != null">
|
limit #{first}, #{pageSize}
|
</if>
|
</select>
|
|
<select id="getOpeApplyReserveListFor" parameterType="java.util.Map"
|
resultMap="OpeApplyReserve">
|
SELECT
|
oa.id,
|
oa.apply_code,
|
sr.id reagent_id,
|
oa. STATUS,
|
sr.product_sn reagentProductSn,
|
sr.`name` reagentName,
|
bm2.meta_value controlProducts,
|
bm3.meta_value reagentFormat,
|
sr.main_metering reagentMainMetering,
|
sr.price reagentPrice,
|
sr.cas reagentCas,
|
oa.article_number articleNumber,
|
bm4.meta_value reagentCharacter,
|
bm1.meta_value productHome,
|
sr.dangerous_flag,
|
oa.num,
|
oa.used,
|
su.`name` apply_user_id,
|
su.project,
|
su1.`name` as projectManage,
|
oa.arrival_time
|
FROM
|
ope_apply AS oa
|
LEFT JOIN sys_reagent sr ON sr.id = oa.reagent_id
|
LEFT JOIN sys_user su ON su.id = oa.apply_user_id
|
LEFT JOIN base_meta AS bm2 ON sr.control_products = bm2.id
|
LEFT JOIN base_meta AS bm3 ON sr.reagent_format = bm3.id
|
LEFT JOIN base_meta AS bm4 ON sr.reagent_character = bm4.id
|
LEFT JOIN base_meta AS bm1 ON sr.product_home = bm1.id
|
LEFT JOIN sys_project as project on project.project = su.project
|
LEFT JOIN sys_user as su1 on su1.id = project.sys_user_id
|
where oa.valid_flag = 1 and (oa.status=4 or oa.status=6)
|
<include refid="getOpeApplyReserveList_queryWhereSql" />
|
GROUP BY oa.id
|
order by oa.update_time desc
|
<if test="first != null and pageSize != null">
|
limit #{first}, #{pageSize}
|
</if>
|
</select>
|
<update id="updaetOpeApplyPrice" parameterType="java.util.Map" >
|
update ope_apply set apply_price=#{applyPrice}
|
where id=#{id}
|
</update>
|
|
<update id="updaetOpeApplyStockFlag" parameterType="java.util.Map">
|
update ope_apply set stock_flag=#{stockFlag} where id=#{id}
|
</update>
|
|
<select id="selectByReId" resultMap="OpeApply">
|
select * from ope_apply where reagent_id=#{id}
|
</select>
|
<select id="getOpeApplyDetail" resultMap="OpeApplyReserve">
|
select oa.id, oa.apply_code,
|
sr.id reagent_id,
|
oa.status,
|
sr.product_sn reagentProductSn,
|
sr.`name` reagentName,
|
bm2.meta_value controlProducts,
|
bm3.meta_value reagentFormat,
|
sr.main_metering reagentMainMetering,
|
sr.price reagentPrice,
|
sr.cas reagentCas,
|
oa.article_number articleNumber,
|
bm4.meta_value reagentCharacter,
|
bm1.meta_value productHome,
|
sr.dangerous_flag,
|
oa.num,
|
oa.used,
|
oa.arrival_num,
|
su.id apply_user_id
|
from ope_apply as oa
|
left JOIN sys_reagent sr on sr.id = oa.reagent_id
|
left JOIN sys_user su on su.id = oa.apply_user_id
|
left join base_meta as bm2 on sr.control_products = bm2.id
|
left join base_meta as bm3 on sr.reagent_format = bm3.id
|
left join base_meta as bm4 on sr.reagent_character = bm4.id
|
left join base_meta as bm1 on sr.product_home = bm1.id
|
where oa.valid_flag = 1
|
and oa.id = #{0}
|
</select>
|
|
|
<update id="updateByReId" parameterType="java.util.Map">
|
update ope_apply set reagent_id=#{newReId} where reagent_id=#{oldReId}
|
</update>
|
|
<update id="updateOpeApplyInfo" parameterType="java.util.Map">
|
update
|
ope_apply
|
set status = #{status},
|
arrival_time = #{arrivalTime},
|
consignee_id = #{consigneeId}
|
where valid_flag = 1
|
and id = #{applyId}
|
</update>
|
</mapper>
|