feat: 福安德智慧报价平台 - 完整业务模块

基于RuoYi-Vue2构建的智慧采购报价平台,包含:

后端(Spring Boot + MyBatis):
- 物料管理 (BizMaterial)
- 供应商管理 (BizSupplier)
- 报价请求RFQ (BizRfq)
- 供应商报价单 (BizQuotation)
- 智慧比价分析 (BizComparison)
- 采购单 (BizPurchaseOrder)
- 供应商评价 (BizSupplierEvaluation)
- 订单异议 (BizOrderObjection)
- 交易记录 (BizTransaction)
- 租户管理-SaaS数据隔离 (BizTenant)

前端(Vue2 + Element UI):
- 10个业务模块完整页面
- ERPNext风格主题(蓝色系)
- 福安德品牌logo

部署:
- Docker Compose一键部署
- MySQL 8.0 + Redis 7 + Nginx
- 前端端口 10031
This commit is contained in:
2026-05-22 09:36:01 +08:00
parent 7da12b0c07
commit 2941cd23c4
106 changed files with 5511 additions and 92 deletions

View File

@@ -0,0 +1,25 @@
<?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.ruoyi.system.mapper.bid.BizComparisonMapper">
<select id="selectComparisonData" resultType="java.util.HashMap">
SELECT
ri.item_id AS rfqItemId,
ri.material_name AS materialName,
ri.spec AS spec,
ri.unit AS unit,
ri.quantity AS quantity,
qi.unit_price AS unitPrice,
qi.total_price AS totalPrice,
qi.delivery_days AS deliveryDays,
q.quotation_id AS quotationId,
q.quote_no AS quoteNo,
q.supplier_id AS supplierId,
s.supplier_name AS supplierName
FROM biz_rfq_item ri
LEFT JOIN biz_quotation_item qi ON qi.rfq_item_id = ri.item_id
LEFT JOIN biz_quotation q ON q.quotation_id = qi.quotation_id AND q.status = 'submitted'
LEFT JOIN biz_supplier s ON s.supplier_id = q.supplier_id
WHERE ri.rfq_id = #{rfqId}
ORDER BY ri.item_id, qi.unit_price
</select>
</mapper>

View File

@@ -0,0 +1,63 @@
<?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.ruoyi.system.mapper.bid.BizMaterialMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizMaterial">
<id property="materialId" column="material_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="categoryId" column="category_id"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="spec" column="spec"/>
<result property="unit" column="unit"/>
<result property="brand" column="brand"/>
<result property="description" column="description"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="selectBizMaterialList" resultMap="BaseRM">
SELECT m.* FROM biz_material m
<where>
<if test="tenantId != null"> AND m.tenant_id = #{tenantId}</if>
<if test="materialCode != null and materialCode != ''"> AND m.material_code LIKE CONCAT('%',#{materialCode},'%')</if>
<if test="materialName != null and materialName != ''"> AND m.material_name LIKE CONCAT('%',#{materialName},'%')</if>
<if test="status != null and status != ''"> AND m.status = #{status}</if>
</where>
ORDER BY m.material_id DESC
</select>
<select id="selectBizMaterialById" resultMap="BaseRM">
SELECT * FROM biz_material WHERE material_id=#{id}
</select>
<insert id="insertBizMaterial" useGeneratedKeys="true" keyProperty="materialId">
INSERT INTO biz_material(tenant_id,category_id,material_code,material_name,spec,unit,brand,description,status,create_by,create_time)
VALUES(#{tenantId},#{categoryId},#{materialCode},#{materialName},#{spec},#{unit},#{brand},#{description},#{status},#{createBy},NOW())
</insert>
<update id="updateBizMaterial">
UPDATE biz_material
<set>
<if test="materialName != null">material_name=#{materialName},</if>
<if test="materialCode != null">material_code=#{materialCode},</if>
<if test="spec != null">spec=#{spec},</if>
<if test="unit != null">unit=#{unit},</if>
<if test="brand != null">brand=#{brand},</if>
<if test="description != null">description=#{description},</if>
<if test="categoryId != null">category_id=#{categoryId},</if>
<if test="status != null">status=#{status},</if>
update_by=#{updateBy}, update_time=NOW()
</set>
WHERE material_id=#{materialId}
</update>
<delete id="deleteBizMaterialById">DELETE FROM biz_material WHERE material_id=#{id}</delete>
<delete id="deleteBizMaterialByIds">
DELETE FROM biz_material WHERE material_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,59 @@
<?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.ruoyi.system.mapper.bid.BizOrderObjectionMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizOrderObjection">
<id property="objectionId" column="objection_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="poId" column="po_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="reason" column="reason"/>
<result property="attachment" column="attachment"/>
<result property="status" column="status"/>
<result property="resolution" column="resolution"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="resolveTime" column="resolve_time"/>
<result property="supplierName" column="supplier_name"/>
<result property="poNo" column="po_no"/>
</resultMap>
<select id="selectBizOrderObjectionList" resultMap="BaseRM">
SELECT o.*, s.supplier_name, p.po_no
FROM biz_order_objection o
LEFT JOIN biz_supplier s ON o.supplier_id=s.supplier_id
LEFT JOIN biz_purchase_order p ON o.po_id=p.po_id
<where>
<if test="tenantId != null"> AND o.tenant_id=#{tenantId}</if>
<if test="status != null and status != ''"> AND o.status=#{status}</if>
</where>
ORDER BY o.objection_id DESC
</select>
<select id="selectBizOrderObjectionById" resultMap="BaseRM">
SELECT o.*, s.supplier_name, p.po_no FROM biz_order_objection o
LEFT JOIN biz_supplier s ON o.supplier_id=s.supplier_id
LEFT JOIN biz_purchase_order p ON o.po_id=p.po_id
WHERE o.objection_id=#{id}
</select>
<insert id="insertBizOrderObjection" useGeneratedKeys="true" keyProperty="objectionId">
INSERT INTO biz_order_objection(tenant_id,po_id,supplier_id,reason,attachment,status,create_by,create_time)
VALUES(#{tenantId},#{poId},#{supplierId},#{reason},#{attachment},'pending',#{createBy},NOW())
</insert>
<update id="updateBizOrderObjection">
UPDATE biz_order_objection
<set>
<if test="status != null">status=#{status},</if>
<if test="resolution != null">resolution=#{resolution},</if>
<if test="resolveTime != null">resolve_time=#{resolveTime},</if>
</set>
WHERE objection_id=#{objectionId}
</update>
<delete id="deleteBizOrderObjectionById">DELETE FROM biz_order_objection WHERE objection_id=#{id}</delete>
<delete id="deleteBizOrderObjectionByIds">
DELETE FROM biz_order_objection WHERE objection_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,27 @@
<?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.ruoyi.system.mapper.bid.BizPurchaseOrderItemMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizPurchaseOrderItem">
<id property="itemId" column="item_id"/>
<result property="poId" column="po_id"/>
<result property="materialId" column="material_id"/>
<result property="materialName" column="material_name"/>
<result property="spec" column="spec"/>
<result property="unit" column="unit"/>
<result property="quantity" column="quantity"/>
<result property="unitPrice" column="unit_price"/>
<result property="totalPrice" column="total_price"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectItemsByPoId" resultMap="BaseRM">
SELECT * FROM biz_purchase_order_item WHERE po_id=#{poId}
</select>
<insert id="insertBizPurchaseOrderItem" useGeneratedKeys="true" keyProperty="itemId">
INSERT INTO biz_purchase_order_item(po_id,material_id,material_name,spec,unit,quantity,unit_price,total_price,remark)
VALUES(#{poId},#{materialId},#{materialName},#{spec},#{unit},#{quantity},#{unitPrice},#{totalPrice},#{remark})
</insert>
<delete id="deleteByPoId">DELETE FROM biz_purchase_order_item WHERE po_id=#{poId}</delete>
</mapper>

View File

@@ -0,0 +1,70 @@
<?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.ruoyi.system.mapper.bid.BizPurchaseOrderMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizPurchaseOrder">
<id property="poId" column="po_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="poNo" column="po_no"/>
<result property="rfqId" column="rfq_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="totalAmount" column="total_amount"/>
<result property="currency" column="currency"/>
<result property="deliveryAddr" column="delivery_addr"/>
<result property="deliveryDate" column="delivery_date"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<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="rfqTitle" column="rfq_title"/>
</resultMap>
<select id="selectBizPurchaseOrderList" resultMap="BaseRM">
SELECT p.*, s.supplier_name, r.rfq_title
FROM biz_purchase_order p
LEFT JOIN biz_supplier s ON p.supplier_id=s.supplier_id
LEFT JOIN biz_rfq r ON p.rfq_id=r.rfq_id
<where>
<if test="tenantId != null"> AND p.tenant_id=#{tenantId}</if>
<if test="poNo != null and poNo != ''"> AND p.po_no LIKE CONCAT('%',#{poNo},'%')</if>
<if test="supplierId != null"> AND p.supplier_id=#{supplierId}</if>
<if test="status != null and status != ''"> AND p.status=#{status}</if>
</where>
ORDER BY p.po_id DESC
</select>
<select id="selectBizPurchaseOrderById" resultMap="BaseRM">
SELECT p.*, s.supplier_name, r.rfq_title
FROM biz_purchase_order p
LEFT JOIN biz_supplier s ON p.supplier_id=s.supplier_id
LEFT JOIN biz_rfq r ON p.rfq_id=r.rfq_id
WHERE p.po_id=#{id}
</select>
<insert id="insertBizPurchaseOrder" useGeneratedKeys="true" keyProperty="poId">
INSERT INTO biz_purchase_order(tenant_id,po_no,rfq_id,supplier_id,total_amount,currency,delivery_addr,delivery_date,status,remark,create_by,create_time)
VALUES(#{tenantId},#{poNo},#{rfqId},#{supplierId},#{totalAmount},#{currency},#{deliveryAddr},#{deliveryDate},#{status},#{remark},#{createBy},NOW())
</insert>
<update id="updateBizPurchaseOrder">
UPDATE biz_purchase_order
<set>
<if test="totalAmount != null">total_amount=#{totalAmount},</if>
<if test="deliveryAddr != null">delivery_addr=#{deliveryAddr},</if>
<if test="deliveryDate != null">delivery_date=#{deliveryDate},</if>
<if test="status != null">status=#{status},</if>
<if test="remark != null">remark=#{remark},</if>
update_by=#{updateBy}, update_time=NOW()
</set>
WHERE po_id=#{poId}
</update>
<delete id="deleteBizPurchaseOrderById">DELETE FROM biz_purchase_order WHERE po_id=#{id}</delete>
<delete id="deleteBizPurchaseOrderByIds">
DELETE FROM biz_purchase_order WHERE po_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,28 @@
<?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.ruoyi.system.mapper.bid.BizQuotationItemMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizQuotationItem">
<id property="itemId" column="item_id"/>
<result property="quotationId" column="quotation_id"/>
<result property="rfqItemId" column="rfq_item_id"/>
<result property="materialName" column="material_name"/>
<result property="spec" column="spec"/>
<result property="unit" column="unit"/>
<result property="quantity" column="quantity"/>
<result property="unitPrice" column="unit_price"/>
<result property="totalPrice" column="total_price"/>
<result property="deliveryDays" column="delivery_days"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectItemsByQuotationId" resultMap="BaseRM">
SELECT * FROM biz_quotation_item WHERE quotation_id=#{quotationId}
</select>
<insert id="insertBizQuotationItem" useGeneratedKeys="true" keyProperty="itemId">
INSERT INTO biz_quotation_item(quotation_id,rfq_item_id,material_name,spec,unit,quantity,unit_price,total_price,delivery_days,remark)
VALUES(#{quotationId},#{rfqItemId},#{materialName},#{spec},#{unit},#{quantity},#{unitPrice},#{totalPrice},#{deliveryDays},#{remark})
</insert>
<delete id="deleteByQuotationId">DELETE FROM biz_quotation_item WHERE quotation_id=#{quotationId}</delete>
</mapper>

View File

@@ -0,0 +1,72 @@
<?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.ruoyi.system.mapper.bid.BizQuotationMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizQuotation">
<id property="quotationId" column="quotation_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="rfqId" column="rfq_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="quoteNo" column="quote_no"/>
<result property="validDays" column="valid_days"/>
<result property="deliveryDays" column="delivery_days"/>
<result property="totalAmount" column="total_amount"/>
<result property="currency" column="currency"/>
<result property="status" column="status"/>
<result property="note" column="note"/>
<result property="submitTime" column="submit_time"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="supplierName" column="supplier_name"/>
<result property="rfqTitle" column="rfq_title"/>
<result property="rfqNo" column="rfq_no"/>
</resultMap>
<select id="selectBizQuotationList" resultMap="BaseRM">
SELECT q.*, s.supplier_name, r.rfq_title, r.rfq_no
FROM biz_quotation q
LEFT JOIN biz_supplier s ON q.supplier_id=s.supplier_id
LEFT JOIN biz_rfq r ON q.rfq_id=r.rfq_id
<where>
<if test="tenantId != null"> AND q.tenant_id=#{tenantId}</if>
<if test="rfqId != null"> AND q.rfq_id=#{rfqId}</if>
<if test="supplierId != null"> AND q.supplier_id=#{supplierId}</if>
<if test="status != null and status != ''"> AND q.status=#{status}</if>
</where>
ORDER BY q.quotation_id DESC
</select>
<select id="selectBizQuotationById" resultMap="BaseRM">
SELECT q.*, s.supplier_name, r.rfq_title, r.rfq_no
FROM biz_quotation q
LEFT JOIN biz_supplier s ON q.supplier_id=s.supplier_id
LEFT JOIN biz_rfq r ON q.rfq_id=r.rfq_id
WHERE q.quotation_id=#{id}
</select>
<insert id="insertBizQuotation" useGeneratedKeys="true" keyProperty="quotationId">
INSERT INTO biz_quotation(tenant_id,rfq_id,supplier_id,quote_no,valid_days,delivery_days,total_amount,currency,status,note,create_by,create_time)
VALUES(#{tenantId},#{rfqId},#{supplierId},#{quoteNo},#{validDays},#{deliveryDays},#{totalAmount},#{currency},#{status},#{note},#{createBy},NOW())
</insert>
<update id="updateBizQuotation">
UPDATE biz_quotation
<set>
<if test="validDays != null">valid_days=#{validDays},</if>
<if test="deliveryDays != null">delivery_days=#{deliveryDays},</if>
<if test="totalAmount != null">total_amount=#{totalAmount},</if>
<if test="status != null">status=#{status},</if>
<if test="note != null">note=#{note},</if>
<if test="submitTime != null">submit_time=#{submitTime},</if>
update_time=NOW()
</set>
WHERE quotation_id=#{quotationId}
</update>
<delete id="deleteBizQuotationById">DELETE FROM biz_quotation WHERE quotation_id=#{id}</delete>
<delete id="deleteBizQuotationByIds">
DELETE FROM biz_quotation WHERE quotation_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,26 @@
<?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.ruoyi.system.mapper.bid.BizRfqItemMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizRfqItem">
<id property="itemId" column="item_id"/>
<result property="rfqId" column="rfq_id"/>
<result property="materialId" column="material_id"/>
<result property="materialName" column="material_name"/>
<result property="spec" column="spec"/>
<result property="unit" column="unit"/>
<result property="quantity" column="quantity"/>
<result property="expectedPrice" column="expected_price"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectItemsByRfqId" resultMap="BaseRM">
SELECT * FROM biz_rfq_item WHERE rfq_id=#{rfqId}
</select>
<insert id="insertBizRfqItem" useGeneratedKeys="true" keyProperty="itemId">
INSERT INTO biz_rfq_item(rfq_id,material_id,material_name,spec,unit,quantity,expected_price,remark)
VALUES(#{rfqId},#{materialId},#{materialName},#{spec},#{unit},#{quantity},#{expectedPrice},#{remark})
</insert>
<delete id="deleteByRfqId">DELETE FROM biz_rfq_item WHERE rfq_id=#{rfqId}</delete>
</mapper>

View File

@@ -0,0 +1,56 @@
<?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.ruoyi.system.mapper.bid.BizRfqMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizRfq">
<id property="rfqId" column="rfq_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="rfqNo" column="rfq_no"/>
<result property="rfqTitle" column="rfq_title"/>
<result property="deadline" column="deadline"/>
<result property="deliveryAddr" column="delivery_addr"/>
<result property="status" column="status"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="selectBizRfqList" resultMap="BaseRM">
SELECT * FROM biz_rfq
<where>
<if test="tenantId != null"> AND tenant_id=#{tenantId}</if>
<if test="rfqNo != null and rfqNo != ''"> AND rfq_no LIKE CONCAT('%',#{rfqNo},'%')</if>
<if test="rfqTitle != null and rfqTitle != ''"> AND rfq_title LIKE CONCAT('%',#{rfqTitle},'%')</if>
<if test="status != null and status != ''"> AND status=#{status}</if>
</where>
ORDER BY rfq_id DESC
</select>
<select id="selectBizRfqById" resultMap="BaseRM">SELECT * FROM biz_rfq WHERE rfq_id=#{id}</select>
<insert id="insertBizRfq" useGeneratedKeys="true" keyProperty="rfqId">
INSERT INTO biz_rfq(tenant_id,rfq_no,rfq_title,deadline,delivery_addr,status,remark,create_by,create_time)
VALUES(#{tenantId},#{rfqNo},#{rfqTitle},#{deadline},#{deliveryAddr},#{status},#{remark},#{createBy},NOW())
</insert>
<update id="updateBizRfq">
UPDATE biz_rfq
<set>
<if test="rfqTitle != null">rfq_title=#{rfqTitle},</if>
<if test="deadline != null">deadline=#{deadline},</if>
<if test="deliveryAddr != null">delivery_addr=#{deliveryAddr},</if>
<if test="status != null">status=#{status},</if>
<if test="remark != null">remark=#{remark},</if>
update_by=#{updateBy}, update_time=NOW()
</set>
WHERE rfq_id=#{rfqId}
</update>
<delete id="deleteBizRfqById">DELETE FROM biz_rfq WHERE rfq_id=#{id}</delete>
<delete id="deleteBizRfqByIds">
DELETE FROM biz_rfq WHERE rfq_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,63 @@
<?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.ruoyi.system.mapper.bid.BizSupplierEvaluationMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizSupplierEvaluation">
<id property="evalId" column="eval_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="poId" column="po_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="qualityScore" column="quality_score"/>
<result property="deliveryScore" column="delivery_score"/>
<result property="serviceScore" column="service_score"/>
<result property="priceScore" column="price_score"/>
<result property="totalScore" column="total_score"/>
<result property="comment" column="comment"/>
<result property="evaluator" column="evaluator"/>
<result property="evalTime" column="eval_time"/>
<result property="supplierName" column="supplier_name"/>
<result property="poNo" column="po_no"/>
</resultMap>
<select id="selectBizSupplierEvaluationList" resultMap="BaseRM">
SELECT e.*, s.supplier_name, p.po_no
FROM biz_supplier_evaluation e
LEFT JOIN biz_supplier s ON e.supplier_id=s.supplier_id
LEFT JOIN biz_purchase_order p ON e.po_id=p.po_id
<where>
<if test="tenantId != null"> AND e.tenant_id=#{tenantId}</if>
<if test="supplierId != null"> AND e.supplier_id=#{supplierId}</if>
</where>
ORDER BY e.eval_id DESC
</select>
<select id="selectBizSupplierEvaluationById" resultMap="BaseRM">
SELECT e.*, s.supplier_name, p.po_no FROM biz_supplier_evaluation e
LEFT JOIN biz_supplier s ON e.supplier_id=s.supplier_id
LEFT JOIN biz_purchase_order p ON e.po_id=p.po_id
WHERE e.eval_id=#{id}
</select>
<insert id="insertBizSupplierEvaluation" useGeneratedKeys="true" keyProperty="evalId">
INSERT INTO biz_supplier_evaluation(tenant_id,po_id,supplier_id,quality_score,delivery_score,service_score,price_score,total_score,comment,evaluator,eval_time)
VALUES(#{tenantId},#{poId},#{supplierId},#{qualityScore},#{deliveryScore},#{serviceScore},#{priceScore},#{totalScore},#{comment},#{evaluator},NOW())
</insert>
<update id="updateBizSupplierEvaluation">
UPDATE biz_supplier_evaluation
<set>
<if test="qualityScore != null">quality_score=#{qualityScore},</if>
<if test="deliveryScore != null">delivery_score=#{deliveryScore},</if>
<if test="serviceScore != null">service_score=#{serviceScore},</if>
<if test="priceScore != null">price_score=#{priceScore},</if>
<if test="totalScore != null">total_score=#{totalScore},</if>
<if test="comment != null">comment=#{comment},</if>
</set>
WHERE eval_id=#{evalId}
</update>
<delete id="deleteBizSupplierEvaluationById">DELETE FROM biz_supplier_evaluation WHERE eval_id=#{id}</delete>
<delete id="deleteBizSupplierEvaluationByIds">
DELETE FROM biz_supplier_evaluation WHERE eval_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,57 @@
<?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.ruoyi.system.mapper.bid.BizSupplierMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizSupplier">
<id property="supplierId" column="supplier_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="supplierName" column="supplier_name"/>
<result property="contact" column="contact"/>
<result property="phone" column="phone"/>
<result property="email" column="email"/>
<result property="address" column="address"/>
<result property="userId" column="user_id"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="selectBizSupplierList" resultMap="BaseRM">
SELECT * FROM biz_supplier
<where>
<if test="tenantId != null"> AND tenant_id=#{tenantId}</if>
<if test="supplierName != null and supplierName != ''"> AND supplier_name LIKE CONCAT('%',#{supplierName},'%')</if>
<if test="status != null and status != ''"> AND status=#{status}</if>
</where>
ORDER BY supplier_id DESC
</select>
<select id="selectBizSupplierById" resultMap="BaseRM">SELECT * FROM biz_supplier WHERE supplier_id=#{id}</select>
<insert id="insertBizSupplier" useGeneratedKeys="true" keyProperty="supplierId">
INSERT INTO biz_supplier(tenant_id,supplier_name,contact,phone,email,address,user_id,status,create_by,create_time)
VALUES(#{tenantId},#{supplierName},#{contact},#{phone},#{email},#{address},#{userId},#{status},#{createBy},NOW())
</insert>
<update id="updateBizSupplier">
UPDATE biz_supplier
<set>
<if test="supplierName != null">supplier_name=#{supplierName},</if>
<if test="contact != null">contact=#{contact},</if>
<if test="phone != null">phone=#{phone},</if>
<if test="email != null">email=#{email},</if>
<if test="address != null">address=#{address},</if>
<if test="status != null">status=#{status},</if>
update_by=#{updateBy}, update_time=NOW()
</set>
WHERE supplier_id=#{supplierId}
</update>
<delete id="deleteBizSupplierById">DELETE FROM biz_supplier WHERE supplier_id=#{id}</delete>
<delete id="deleteBizSupplierByIds">
DELETE FROM biz_supplier WHERE supplier_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,58 @@
<?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.ruoyi.system.mapper.bid.BizTenantMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizTenant">
<id property="tenantId" column="tenant_id"/>
<result property="tenantName" column="tenant_name"/>
<result property="contact" column="contact"/>
<result property="phone" column="phone"/>
<result property="email" column="email"/>
<result property="status" column="status"/>
<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="remark" column="remark"/>
</resultMap>
<sql id="cols">tenant_id,tenant_name,contact,phone,email,status,create_by,create_time,update_by,update_time,remark</sql>
<select id="selectBizTenantList" resultMap="BaseRM">
SELECT <include refid="cols"/> FROM biz_tenant
<where>
<if test="tenantName != null and tenantName != ''"> AND tenant_name LIKE CONCAT('%',#{tenantName},'%')</if>
<if test="status != null and status != ''"> AND status = #{status}</if>
</where>
ORDER BY tenant_id
</select>
<select id="selectBizTenantById" resultMap="BaseRM">
SELECT <include refid="cols"/> FROM biz_tenant WHERE tenant_id = #{id}
</select>
<insert id="insertBizTenant" useGeneratedKeys="true" keyProperty="tenantId">
INSERT INTO biz_tenant(tenant_name,contact,phone,email,status,create_by,create_time,remark)
VALUES(#{tenantName},#{contact},#{phone},#{email},#{status},#{createBy},NOW(),#{remark})
</insert>
<update id="updateBizTenant">
UPDATE biz_tenant
<set>
<if test="tenantName != null">tenant_name=#{tenantName},</if>
<if test="contact != null">contact=#{contact},</if>
<if test="phone != null">phone=#{phone},</if>
<if test="email != null">email=#{email},</if>
<if test="status != null">status=#{status},</if>
<if test="remark != null">remark=#{remark},</if>
update_by=#{updateBy}, update_time=NOW()
</set>
WHERE tenant_id=#{tenantId}
</update>
<delete id="deleteBizTenantById">DELETE FROM biz_tenant WHERE tenant_id=#{id}</delete>
<delete id="deleteBizTenantByIds">
DELETE FROM biz_tenant WHERE tenant_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,54 @@
<?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.ruoyi.system.mapper.bid.BizTransactionMapper">
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizTransaction">
<id property="txId" column="tx_id"/>
<result property="tenantId" column="tenant_id"/>
<result property="poId" column="po_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="txType" column="tx_type"/>
<result property="txNo" column="tx_no"/>
<result property="amount" column="amount"/>
<result property="currency" column="currency"/>
<result property="description" column="description"/>
<result property="operator" column="operator"/>
<result property="txTime" column="tx_time"/>
<result property="createTime" column="create_time"/>
<result property="supplierName" column="supplier_name"/>
<result property="poNo" column="po_no"/>
</resultMap>
<select id="selectBizTransactionList" resultMap="BaseRM">
SELECT t.*, s.supplier_name, p.po_no
FROM biz_transaction t
LEFT JOIN biz_supplier s ON t.supplier_id=s.supplier_id
LEFT JOIN biz_purchase_order p ON t.po_id=p.po_id
<where>
<if test="tenantId != null"> AND t.tenant_id=#{tenantId}</if>
<if test="txType != null and txType != ''"> AND t.tx_type=#{txType}</if>
<if test="supplierId != null"> AND t.supplier_id=#{supplierId}</if>
<if test="beginTime != null and beginTime != ''"> AND t.tx_time >= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> AND t.tx_time &lt;= #{endTime}</if>
</where>
ORDER BY t.tx_id DESC
</select>
<select id="selectBizTransactionById" resultMap="BaseRM">
SELECT t.*, s.supplier_name, p.po_no FROM biz_transaction t
LEFT JOIN biz_supplier s ON t.supplier_id=s.supplier_id
LEFT JOIN biz_purchase_order p ON t.po_id=p.po_id
WHERE t.tx_id=#{id}
</select>
<insert id="insertBizTransaction" useGeneratedKeys="true" keyProperty="txId">
INSERT INTO biz_transaction(tenant_id,po_id,supplier_id,tx_type,tx_no,amount,currency,description,operator,tx_time,create_time)
VALUES(#{tenantId},#{poId},#{supplierId},#{txType},#{txNo},#{amount},#{currency},#{description},#{operator},NOW(),NOW())
</insert>
<update id="updateBizTransaction">UPDATE biz_transaction SET description=#{description} WHERE tx_id=#{txId}</update>
<delete id="deleteBizTransactionById">DELETE FROM biz_transaction WHERE tx_id=#{id}</delete>
<delete id="deleteBizTransactionByIds">
DELETE FROM biz_transaction WHERE tx_id IN
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
</mapper>