2025-07-15 15:19:30 +08:00
<?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" />
2025-07-20 12:35:21 +08:00
<result property= "supplierIdstr" column= "supplier_ids" />
2025-07-15 15:19:30 +08:00
<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" />
2025-07-20 12:35:21 +08:00
<result property= "supplierName" column= "supplier_name" />
2025-07-20 15:12:02 +08:00
<result property= "supplierNames" column= "supplier_names" />
2025-07-20 12:35:21 +08:00
</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" />
2025-07-20 15:12:02 +08:00
<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" />
2025-07-15 15:19:30 +08:00
</resultMap>
2025-07-21 15:20:54 +08:00
<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" />
2025-07-21 16:17:54 +08:00
<result property= "totalPrice" column= "total_price" />
<result property= "singlePrice" column= "single_price" />
<result property= "inquiryDetailId" column= "inquiry_detail_id" />
2025-07-21 15:20:54 +08:00
</resultMap>
2025-07-15 15:19:30 +08:00
<sql id= "selectInquiryVo" >
2025-07-20 12:35:21 +08:00
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
2025-07-15 15:19:30 +08:00
</sql>
<select id= "selectInquiryList" parameterType= "com.bonus.canteen.core.ims.domain.Inquiry" resultMap= "InquiryResult" >
2025-07-20 12:35:21 +08:00
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,
2025-07-20 15:12:02 +08:00
GROUP_CONCAT(dd.supplier_name ) as supplier_names,
2025-07-20 12:35:21 +08:00
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>
2025-07-15 15:19:30 +08:00
</where>
2025-07-20 12:35:21 +08:00
group by aa.inquiry_id
2025-07-15 15:19:30 +08:00
</select>
<select id= "selectInquiryByInquiryId" parameterType= "Long" resultMap= "InquiryResult" >
2025-07-20 12:35:21 +08:00
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,
2025-07-21 16:45:51 +08:00
bb.area_name as area, aa.create_by, aa.create_time, aa.update_by, aa.update_time,dd.supplier_name as supplier_name,
2025-08-07 10:36:52 +08:00
aa.bid_total_price,GROUP_CONCAT(dd.supplier_name) as supplier_names,GROUP_CONCAT(dd.supplier_id) AS supplier_ids
2025-07-20 12:35:21 +08:00
from ims_inquiry aa
left join basic_area bb on aa.area_id=bb.area_id
2025-08-07 08:53:40 +08:00
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
2025-07-20 12:35:21 +08:00
where aa.inquiry_id = #{inquiryId}
group by aa.inquiry_id
</select>
<select id= "selectInquiryDetailByInquiryId" parameterType= "Long" resultMap= "InquiryDetailResult" >
2025-07-20 15:12:02 +08:00
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
2025-07-20 12:35:21 +08:00
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
2025-07-20 15:12:02 +08:00
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
2025-07-20 12:35:21 +08:00
where aa.inquiry_id = #{inquiryId}
2025-07-15 15:19:30 +08:00
</select>
2025-07-21 15:20:54 +08:00
<select id= "selectInquirySupplierByInquiryId" parameterType= "Long" resultMap= "InquirySupplierResult" >
select aa.inquiry_supplier_id,aa.inquiry_id,aa.inquiry_code,aa.quote_time,aa.bid_status,
2025-07-21 15:50:36 +08:00
aa.supplier_id,aa.quote_amount,aa.arrival_time,bb.supplier_name,bb.supplier_score,aa.quote_time
2025-07-21 15:20:54 +08:00
from ims_inquiry_supplier aa
left join ims_supplier bb on aa.supplier_id=bb.supplier_id
2025-07-21 16:17:54 +08:00
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}
2025-07-21 15:20:54 +08:00
</select>
2025-07-15 15:19:30 +08:00
<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>
2025-07-21 14:06:09 +08:00
<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>
2025-07-15 15:19:30 +08:00
<delete id= "deleteInquiryByInquiryIds" parameterType= "String" >
delete from ims_inquiry where inquiry_id in
<foreach item= "inquiryId" collection= "array" open= "(" separator= "," close= ")" >
#{inquiryId}
</foreach>
</delete>
2025-07-21 14:06:09 +08:00
2025-07-15 15:19:30 +08:00
</mapper>