295 lines
19 KiB
XML
295 lines
19 KiB
XML
<?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.bonus.canteen.core.ims.mapper.InquiryMapper">
|
|
<resultMap type="com.bonus.canteen.core.ims.domain.Inquiry" id="InquiryResult">
|
|
<result property="inquiryId" column="inquiry_id" />
|
|
<result property="areaId" column="area_id" />
|
|
<result property="inquiryCode" column="inquiry_code" />
|
|
<result property="title" column="title" />
|
|
<result property="startTime" column="start_time" />
|
|
<result property="endTime" column="end_time" />
|
|
<result property="status" column="status" />
|
|
<result property="bidTime" column="bid_time" />
|
|
<result property="requestArrivalTime" column="request_arrival_time" />
|
|
<result property="inquiryNotes" column="inquiry_notes" />
|
|
<result property="phone" column="phone" />
|
|
<result property="linkMan" column="link_man" />
|
|
<result property="address" column="address" />
|
|
<result property="bidTotalPrice" column="bid_total_price" />
|
|
<result property="supplierId" column="supplier_id" />
|
|
<result property="supplierIdstr" column="supplier_ids" />
|
|
<result property="area" column="area" />
|
|
<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="supplierName" column="supplier_name" />
|
|
<result property="supplierNames" column="supplier_names" />
|
|
</resultMap>
|
|
<resultMap type="com.bonus.canteen.core.ims.domain.InquiryDetail" id="InquiryDetailResult">
|
|
<result property="inquiryId" column="inquiry_id" />
|
|
<result property="areaId" column="area_id" />
|
|
<result property="inquiryCode" column="inquiry_code" />
|
|
<result property="area" column="area" />
|
|
<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="materialId" column="material_id" />
|
|
<result property="areaId" column="area_id" />
|
|
<result property="materialName" column="material_name" />
|
|
<result property="materialCode" column="material_code" />
|
|
<result property="imgUrl" column="img_url" />
|
|
<result property="nutritionId" column="nutrition_id" />
|
|
<result property="materialTypeId" column="material_type_id" />
|
|
<result property="nutritionTypeId" column="nutrition_type_id" />
|
|
<result property="goodsType" column="goods_type" />
|
|
<result property="barCode" column="bar_code" />
|
|
<result property="unitId" column="unit_id" />
|
|
<result property="salePrice" column="sale_price" />
|
|
<result property="unitPrice" column="unit_price" />
|
|
<result property="salesMode" column="sales_mode" />
|
|
<result property="shelfLifeType" column="shelf_life_type" />
|
|
<result property="shelfLifeDays" column="shelf_life_days" />
|
|
<result property="purPriceCeiling" column="pur_price_ceiling" />
|
|
<result property="bigCategoryId" column="big_category_id" />
|
|
<result property="size" column="size" />
|
|
<result property="description" column="description" />
|
|
<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="nutritionName" column="nutrition_name" />
|
|
<result property="materialTypeName" column="material_type_name" />
|
|
<result property="area" column="area_name" />
|
|
<result property="nutritionTypeName" column="nutrition_type_name" />
|
|
<result property="unitName" column="unit_name" />
|
|
<result property="materialTotalNum" column="material_total_num" />
|
|
<result property="purNum" column="purchase_num" />
|
|
<result property="notes" column="notes" />
|
|
<result property="quoteNum" column="quote_num" />
|
|
<result property="totalPrice" column="total_price" />
|
|
<result property="singlePrice" column="single_price" />
|
|
<result property="inquiryDetailId" column="inquiry_detail_id" />
|
|
</resultMap>
|
|
<resultMap type="com.bonus.canteen.core.ims.domain.InquirySupplier" id="InquirySupplierResult">
|
|
<result property="inquirySupplierId" column="inquiry_supplier_id" />
|
|
<result property="inquiryId" column="inquiry_id" />
|
|
<result property="inquiryCode" column="inquiry_code" />
|
|
<result property="quoteTime" column="quote_time" />
|
|
<result property="bidStatus" column="bid_status" />
|
|
<result property="supplierId" column="supplier_id" />
|
|
<result property="quoteAmount" column="quote_amount" />
|
|
<result property="arrivalTime" column="arrival_time" />
|
|
<result property="supplierName" column="supplier_name" />
|
|
<result property="supplierScore" column="supplier_score" />
|
|
<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="totalPrice" column="total_price" />
|
|
<result property="singlePrice" column="single_price" />
|
|
<result property="inquiryDetailId" column="inquiry_detail_id" />
|
|
</resultMap>
|
|
|
|
<sql id="selectInquiryVo">
|
|
select aa.inquiry_id, aa.area_id, aa.inquiry_code, aa.title, aa.start_time, aa.end_time, aa.status, aa.bid_time,
|
|
aa.request_arrival_time, aa.inquiry_notes, aa.phone, aa.link_man, aa.address, aa.bid_total_price, aa.supplier_id,
|
|
bb.area_name as area, aa.create_by, aa.create_time, aa.update_by, aa.update_time,case when cc.bid_status=3 then dd.supplier_name else '' end as supplier_name,
|
|
sum(case when cc.bid_status=2 then 1 else 0 end) as inquirySupplierNum,
|
|
sum(case when cc.bid_status=1 then 1 else 0 end) as supplierNum
|
|
from ims_inquiry aa
|
|
left join basic_area bb on aa.area_id=bb.area_id
|
|
left join ims_inquiry_supplier cc on aa.inquiry_id=cc.inquiry_id
|
|
left join ims_supplier dd on cc.inquiry_supplier_id=dd.supplier_id
|
|
group by aa.inquiry_id
|
|
</sql>
|
|
|
|
<select id="selectInquiryList" parameterType="com.bonus.canteen.core.ims.domain.Inquiry" resultMap="InquiryResult">
|
|
select aa.inquiry_id, aa.area_id, aa.inquiry_code, aa.title, aa.start_time, aa.end_time, aa.status, aa.bid_time,
|
|
aa.request_arrival_time, aa.inquiry_notes, aa.phone, aa.link_man, aa.address, aa.bid_total_price, aa.supplier_id,
|
|
bb.area_name as area, aa.create_by, aa.create_time, aa.update_by, aa.update_time,case when cc.bid_status=3 then dd.supplier_name else '' end as supplier_name,
|
|
GROUP_CONCAT(cc.inquiry_supplier_id ) as supplier_ids,
|
|
GROUP_CONCAT(dd.supplier_name ) as supplier_names,
|
|
sum(case when cc.bid_status=2 then 1 else 0 end) as inquirySupplierNum,
|
|
sum(case when cc.bid_status=1 then 1 else 0 end) as supplierNum
|
|
from ims_inquiry aa
|
|
left join basic_area bb on aa.area_id=bb.area_id
|
|
left join ims_inquiry_supplier cc on aa.inquiry_id=cc.inquiry_id
|
|
left join ims_supplier dd on cc.inquiry_supplier_id=dd.supplier_id
|
|
<where>
|
|
<if test="areaId != null "> and aa.area_id = #{areaId}</if>
|
|
<if test="searchValue != null and searchValue != ''">
|
|
and (aa.inquiry_code like CONCAT('%',#{searchValue},'%') or aa.title like CONCAT('%',#{searchValue},'%')
|
|
)
|
|
</if>
|
|
<if test="inquiryState != null and inquiryState != '' and inquiryState == '1'"> and aa.status = 1 </if>
|
|
<if test="inquiryState != null and inquiryState != '' and inquiryState == '2'"> and aa.status = 3 </if>
|
|
<if test="inquiryState != null and inquiryState != '' and inquiryState == '3'"> and aa.status = 4 </if>
|
|
<if test="inquiryState != null and inquiryState != '' and inquiryState == '4'"> and aa.status = 5 </if>
|
|
<if test="status != null and status != '' and status == '1'"> and aa.status = 4 </if>
|
|
<if test="status != null and status != '' and status == '2'"> and aa.status = 5 </if>
|
|
<if test="orderStatus != null and orderStatus != '' and orderStatus == '1'"> and aa.status = 1 </if>
|
|
<if test="orderStatus != null and orderStatus != '' and orderStatus == '2'"> and aa.status != 1</if>
|
|
<if test="startTime != null "> and aa.start_time >= #{startTime} </if>
|
|
<if test="endTime != null "> and #{endTime}>=aa.start_time </if>
|
|
|
|
</where>
|
|
group by aa.inquiry_id
|
|
</select>
|
|
|
|
<select id="selectInquiryByInquiryId" parameterType="Long" resultMap="InquiryResult">
|
|
select aa.inquiry_id, aa.area_id, aa.inquiry_code, aa.title, aa.start_time, aa.end_time, aa.status, aa.bid_time,
|
|
aa.request_arrival_time, aa.inquiry_notes, aa.phone, aa.link_man, aa.address, aa.bid_total_price, aa.supplier_id,
|
|
bb.area_name as area, aa.create_by, aa.create_time, aa.update_by, aa.update_time,dd.supplier_name as supplier_name,
|
|
aa.bid_total_price,GROUP_CONCAT(dd.supplier_name) as supplier_names,GROUP_CONCAT(dd.supplier_id) AS supplier_ids
|
|
from ims_inquiry aa
|
|
left join basic_area bb on aa.area_id=bb.area_id
|
|
left join ims_inquiry_supplier cc on aa.inquiry_id=cc.inquiry_id
|
|
left join ims_supplier dd on cc.supplier_id=dd.supplier_id
|
|
where aa.inquiry_id = #{inquiryId}
|
|
group by aa.inquiry_id
|
|
</select>
|
|
|
|
<select id="selectInquiryDetailByInquiryId" parameterType="Long" resultMap="InquiryDetailResult">
|
|
SELECT aa.inquiry_id,aa.inquiry_detail_id,aa.purchase_num,aa.notes,aa.inquiry_code,bb.*,cc.quote_num,cc.total_price,cc.single_price
|
|
FROM ims_inquiry_detail aa
|
|
LEFT JOIN (
|
|
select cm.material_id, material_name, material_code,cm.img_url,
|
|
cm.goods_type, bar_code,
|
|
sale_price, unit_price, sales_mode, shelf_life_type, shelf_life_days,
|
|
pur_price_ceiling, big_category_id, size, cm.description,cm.create_by,
|
|
cm.create_time, cm.update_by, cm.update_time,
|
|
cm.nutrition_id,cn.nutrition_name,
|
|
cmt.material_type_id, cmt.material_type_name,
|
|
a.area_id, a.area_name,
|
|
cm.nutrition_type_id, cnt.nutrition_type_name,
|
|
iu.unit_name,cm.unit_id,
|
|
ii.material_total_num
|
|
from cook_material cm
|
|
left join cook_material_type cmt on cm.material_type_id = cmt.material_type_id
|
|
left join cook_nutrition_type cnt on cm.nutrition_type_id = cnt.nutrition_type_id
|
|
left join cook_nutrition cn on cm.nutrition_id = cn.nutrition_id
|
|
left join ims_unit iu on cm.unit_id = iu.unit_id
|
|
left join basic_area a on cm.area_id = a.area_id
|
|
left join
|
|
(select material_id, sum(material_num) as material_total_num
|
|
from ims_inventory
|
|
group by material_id) ii on ii.material_id = cm.material_id
|
|
) bb on aa.material_id =bb.material_id
|
|
left join (
|
|
select bb.inquiry_id,aa.inquiry_detail_id,aa.quote_num,aa.total_price,aa.single_price from ims_quote aa
|
|
left join ims_inquiry_detail bb on aa.inquiry_detail_id=bb.inquiry_detail_id
|
|
left join ims_inquiry_supplier cc on bb.inquiry_id=cc.inquiry_id
|
|
where cc.bid_status=3
|
|
) cc on aa.inquiry_detail_id=cc.inquiry_detail_id
|
|
where aa.inquiry_id = #{inquiryId}
|
|
</select>
|
|
|
|
<select id="selectInquirySupplierByInquiryId" parameterType="Long" resultMap="InquirySupplierResult">
|
|
select aa.inquiry_supplier_id,aa.inquiry_id,aa.inquiry_code,aa.quote_time,aa.bid_status,
|
|
aa.supplier_id,aa.quote_amount,aa.arrival_time,bb.supplier_name,bb.supplier_score,aa.quote_time
|
|
from ims_inquiry_supplier aa
|
|
left join ims_supplier bb on aa.supplier_id=bb.supplier_id
|
|
where aa.inquiry_id=#{inquiryId} and aa.arrival_time is not null
|
|
</select>
|
|
<select id="selectInquirySupplierDetailByInquiryId" resultMap="InquirySupplierResult">
|
|
select cc.inquiry_detail_id,aa.inquiry_supplier_id,aa.inquiry_id,aa.inquiry_code,aa.quote_time,aa.bid_status,
|
|
aa.supplier_id,aa.quote_amount,aa.arrival_time,bb.supplier_name,bb.supplier_score,aa.quote_time,cc.single_price,cc.total_price
|
|
from ims_quote cc
|
|
left join ims_inquiry_supplier aa on cc.inquiry_id=aa.inquiry_id and cc.inquiry_supplier_id=aa.inquiry_supplier_id
|
|
left join ims_supplier bb on aa.supplier_id=bb.supplier_id
|
|
where aa.inquiry_id=#{inquiryId} and cc.inquiry_detail_id =#{detailId}
|
|
</select>
|
|
<insert id="insertInquiry" parameterType="com.bonus.canteen.core.ims.domain.Inquiry" useGeneratedKeys="true" keyProperty="inquiryId">
|
|
insert into ims_inquiry
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
<if test="areaId != null">area_id,</if>
|
|
<if test="inquiryCode != null and inquiryCode != ''">inquiry_code,</if>
|
|
<if test="title != null and title != ''">title,</if>
|
|
<if test="startTime != null">start_time,</if>
|
|
<if test="endTime != null">end_time,</if>
|
|
<if test="status != null">status,</if>
|
|
<if test="bidTime != null">bid_time,</if>
|
|
<if test="requestArrivalTime != null">request_arrival_time,</if>
|
|
<if test="inquiryNotes != null">inquiry_notes,</if>
|
|
<if test="phone != null and phone != ''">phone,</if>
|
|
<if test="linkMan != null and linkMan != ''">link_man,</if>
|
|
<if test="address != null and address != ''">address,</if>
|
|
<if test="bidTotalPrice != null">bid_total_price,</if>
|
|
<if test="supplierId != null">supplier_id,</if>
|
|
<if test="area != null">area,</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>
|
|
</trim>
|
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
<if test="areaId != null">#{areaId},</if>
|
|
<if test="inquiryCode != null and inquiryCode != ''">#{inquiryCode},</if>
|
|
<if test="title != null and title != ''">#{title},</if>
|
|
<if test="startTime != null">#{startTime},</if>
|
|
<if test="endTime != null">#{endTime},</if>
|
|
<if test="status != null">#{status},</if>
|
|
<if test="bidTime != null">#{bidTime},</if>
|
|
<if test="requestArrivalTime != null">#{requestArrivalTime},</if>
|
|
<if test="inquiryNotes != null">#{inquiryNotes},</if>
|
|
<if test="phone != null and phone != ''">#{phone},</if>
|
|
<if test="linkMan != null and linkMan != ''">#{linkMan},</if>
|
|
<if test="address != null and address != ''">#{address},</if>
|
|
<if test="bidTotalPrice != null">#{bidTotalPrice},</if>
|
|
<if test="supplierId != null">#{supplierId},</if>
|
|
<if test="area != null">#{area},</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>
|
|
</trim>
|
|
</insert>
|
|
|
|
<update id="updateInquiry" parameterType="com.bonus.canteen.core.ims.domain.Inquiry">
|
|
update ims_inquiry
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
<if test="areaId != null">area_id = #{areaId},</if>
|
|
<if test="inquiryCode != null and inquiryCode != ''">inquiry_code = #{inquiryCode},</if>
|
|
<if test="title != null and title != ''">title = #{title},</if>
|
|
<if test="startTime != null">start_time = #{startTime},</if>
|
|
<if test="endTime != null">end_time = #{endTime},</if>
|
|
<if test="status != null">status = #{status},</if>
|
|
<if test="bidTime != null">bid_time = #{bidTime},</if>
|
|
<if test="requestArrivalTime != null">request_arrival_time = #{requestArrivalTime},</if>
|
|
<if test="inquiryNotes != null">inquiry_notes = #{inquiryNotes},</if>
|
|
<if test="phone != null and phone != ''">phone = #{phone},</if>
|
|
<if test="linkMan != null and linkMan != ''">link_man = #{linkMan},</if>
|
|
<if test="address != null and address != ''">address = #{address},</if>
|
|
<if test="bidTotalPrice != null">bid_total_price = #{bidTotalPrice},</if>
|
|
<if test="supplierId != null">supplier_id = #{supplierId},</if>
|
|
<if test="area != null">area = #{area},</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>
|
|
</trim>
|
|
where inquiry_id = #{inquiryId}
|
|
</update>
|
|
|
|
<delete id="deleteInquiryByInquiryId" parameterType="Long">
|
|
delete from ims_inquiry where inquiry_id = #{inquiryId}
|
|
</delete>
|
|
<delete id="deleteInquirySupplierByInquiryId" parameterType="Long">
|
|
delete from ims_inquiry_supplier where inquiry_id =#{inquiryId}
|
|
</delete>
|
|
<delete id="deleteInquiryDetailByInquiryId" parameterType="Long">
|
|
delete from ims_inquiry_detail where inquiry_id =#{inquiryId}
|
|
</delete>
|
|
|
|
<delete id="deleteInquiryByInquiryIds" parameterType="String">
|
|
delete from ims_inquiry where inquiry_id in
|
|
<foreach item="inquiryId" collection="array" open="(" separator="," close=")">
|
|
#{inquiryId}
|
|
</foreach>
|
|
</delete>
|
|
|
|
</mapper> |