feat: 新增甲方客户管理模块及配套功能
1. 新增甲方客户CRUD接口、前端页面与权限控制 2. 新增发货单管理模块,包含订单状态流转 3. 修复系统菜单名称乱码问题 4. 新增项目启动脚本与数据库初始化脚本 5. 新增相关实体类、Mapper、Service实现 6. 补充项目设计文档与忽略配置
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
<?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.BizClientMapper">
|
||||
|
||||
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizClient">
|
||||
<id property="clientId" column="client_id"/>
|
||||
<result property="tenantId" column="tenant_id"/>
|
||||
<result property="clientNo" column="client_no"/>
|
||||
<result property="clientName" column="client_name"/>
|
||||
<result property="contact" column="contact"/>
|
||||
<result property="phone" column="phone"/>
|
||||
<result property="email" column="email"/>
|
||||
<result property="city" column="city"/>
|
||||
<result property="address" column="address"/>
|
||||
<result property="grade" column="grade"/>
|
||||
<result property="source" column="source"/>
|
||||
<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>
|
||||
|
||||
<select id="selectBizClientList" resultMap="BaseRM">
|
||||
SELECT * FROM biz_client
|
||||
<where>
|
||||
<if test="tenantId != null"> AND tenant_id=#{tenantId}</if>
|
||||
<if test="clientName != null and clientName != ''">
|
||||
AND (client_name LIKE CONCAT('%',#{clientName},'%')
|
||||
OR client_no LIKE CONCAT('%',#{clientName},'%')
|
||||
OR contact LIKE CONCAT('%',#{clientName},'%'))
|
||||
</if>
|
||||
<if test="status != null and status != ''"> AND status=#{status}</if>
|
||||
</where>
|
||||
ORDER BY client_id DESC
|
||||
</select>
|
||||
|
||||
<select id="selectBizClientById" resultMap="BaseRM">
|
||||
SELECT * FROM biz_client WHERE client_id=#{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertBizClient" useGeneratedKeys="true" keyProperty="clientId">
|
||||
INSERT INTO biz_client(tenant_id,client_no,client_name,contact,phone,email,city,address,grade,source,status,create_by,create_time)
|
||||
VALUES(#{tenantId},#{clientNo},#{clientName},#{contact},#{phone},#{email},#{city},#{address},#{grade},#{source},#{status},#{createBy},NOW())
|
||||
</insert>
|
||||
|
||||
<update id="updateBizClient">
|
||||
UPDATE biz_client
|
||||
<set>
|
||||
<if test="clientNo != null">client_no=#{clientNo},</if>
|
||||
<if test="clientName != null">client_name=#{clientName},</if>
|
||||
<if test="contact != null">contact=#{contact},</if>
|
||||
<if test="phone != null">phone=#{phone},</if>
|
||||
<if test="email != null">email=#{email},</if>
|
||||
<if test="city != null">city=#{city},</if>
|
||||
<if test="address != null">address=#{address},</if>
|
||||
<if test="grade != null">grade=#{grade},</if>
|
||||
<if test="source != null">source=#{source},</if>
|
||||
<if test="status != null">status=#{status},</if>
|
||||
update_by=#{updateBy}, update_time=NOW()
|
||||
</set>
|
||||
WHERE client_id=#{clientId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteBizClientById">DELETE FROM biz_client WHERE client_id=#{id}</delete>
|
||||
|
||||
<delete id="deleteBizClientByIds">
|
||||
DELETE FROM biz_client WHERE client_id IN
|
||||
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectClientDeliveryOrders" resultType="java.util.Map">
|
||||
SELECT d.do_no,
|
||||
d.delivery_date,
|
||||
d.delay_date,
|
||||
d.actual_close_date,
|
||||
d.delivery_status,
|
||||
d.total_amount,
|
||||
s.supplier_name,
|
||||
(SELECT COUNT(*) FROM biz_delivery_order_item WHERE do_id = d.do_id) AS item_count
|
||||
FROM biz_client_quote cq
|
||||
JOIN biz_rfq r ON r.client_quote_id = cq.quote_id
|
||||
JOIN biz_delivery_order d ON d.rfq_id = r.rfq_id
|
||||
LEFT JOIN biz_supplier s ON d.supplier_id = s.supplier_id
|
||||
WHERE cq.client_id = #{clientId}
|
||||
ORDER BY d.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -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.BizDeliveryOrderItemMapper">
|
||||
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizDeliveryOrderItem">
|
||||
<id property="itemId" column="item_id"/>
|
||||
<result property="doId" column="do_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="selectItemsByDoId" resultMap="BaseRM">
|
||||
SELECT * FROM biz_delivery_order_item WHERE do_id=#{doId}
|
||||
</select>
|
||||
|
||||
<insert id="insertBizDeliveryOrderItem" useGeneratedKeys="true" keyProperty="itemId">
|
||||
INSERT INTO biz_delivery_order_item(do_id,material_id,material_name,spec,unit,quantity,unit_price,total_price,remark)
|
||||
VALUES(#{doId},#{materialId},#{materialName},#{spec},#{unit},#{quantity},#{unitPrice},#{totalPrice},#{remark})
|
||||
</insert>
|
||||
|
||||
<delete id="deleteByDoId">DELETE FROM biz_delivery_order_item WHERE do_id=#{doId}</delete>
|
||||
</mapper>
|
||||
@@ -0,0 +1,76 @@
|
||||
<?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.BizDeliveryOrderMapper">
|
||||
|
||||
<resultMap id="BaseRM" type="com.ruoyi.system.domain.bid.BizDeliveryOrder">
|
||||
<id property="doId" column="do_id"/>
|
||||
<result property="tenantId" column="tenant_id"/>
|
||||
<result property="doNo" column="do_no"/>
|
||||
<result property="rfqId" column="rfq_id"/>
|
||||
<result property="quotationId" column="quotation_id"/>
|
||||
<result property="supplierId" column="supplier_id"/>
|
||||
<result property="totalAmount" column="total_amount"/>
|
||||
<result property="currency" column="currency"/>
|
||||
<result property="deliveryDate" column="delivery_date"/>
|
||||
<result property="delayDate" column="delay_date"/>
|
||||
<result property="actualCloseDate" column="actual_close_date"/>
|
||||
<result property="closeDateSetBy" column="close_date_set_by"/>
|
||||
<result property="deliveryStatus" column="delivery_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"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectBizDeliveryOrderList" resultMap="BaseRM">
|
||||
SELECT d.*, s.supplier_name
|
||||
FROM biz_delivery_order d
|
||||
LEFT JOIN biz_supplier s ON d.supplier_id=s.supplier_id
|
||||
<where>
|
||||
<if test="tenantId != null"> AND d.tenant_id=#{tenantId}</if>
|
||||
<if test="doNo != null and doNo != ''"> AND d.do_no LIKE CONCAT('%',#{doNo},'%')</if>
|
||||
<if test="supplierId != null"> AND d.supplier_id=#{supplierId}</if>
|
||||
<if test="deliveryStatus != null and deliveryStatus != ''"> AND d.delivery_status=#{deliveryStatus}</if>
|
||||
<if test="supplierName != null and supplierName != ''"> AND s.supplier_name LIKE CONCAT('%',#{supplierName},'%')</if>
|
||||
</where>
|
||||
ORDER BY d.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectBizDeliveryOrderById" resultMap="BaseRM">
|
||||
SELECT d.*, s.supplier_name
|
||||
FROM biz_delivery_order d
|
||||
LEFT JOIN biz_supplier s ON d.supplier_id=s.supplier_id
|
||||
WHERE d.do_id=#{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertBizDeliveryOrder" useGeneratedKeys="true" keyProperty="doId">
|
||||
INSERT INTO biz_delivery_order(tenant_id,do_no,rfq_id,quotation_id,supplier_id,total_amount,currency,delivery_date,delay_date,actual_close_date,close_date_set_by,delivery_status,remark,create_by,create_time)
|
||||
VALUES(#{tenantId},#{doNo},#{rfqId},#{quotationId},#{supplierId},#{totalAmount},#{currency},#{deliveryDate},#{delayDate},#{actualCloseDate},#{closeDateSetBy},#{deliveryStatus},#{remark},#{createBy},NOW())
|
||||
</insert>
|
||||
|
||||
<update id="updateBizDeliveryOrder">
|
||||
UPDATE biz_delivery_order
|
||||
<set>
|
||||
<if test="doNo != null">do_no=#{doNo},</if>
|
||||
<if test="supplierId != null">supplier_id=#{supplierId},</if>
|
||||
<if test="totalAmount != null">total_amount=#{totalAmount},</if>
|
||||
<if test="deliveryDate != null">delivery_date=#{deliveryDate},</if>
|
||||
<if test="delayDate != null">delay_date=#{delayDate},</if>
|
||||
<if test="actualCloseDate != null">actual_close_date=#{actualCloseDate},</if>
|
||||
<if test="closeDateSetBy != null">close_date_set_by=#{closeDateSetBy},</if>
|
||||
<if test="deliveryStatus != null">delivery_status=#{deliveryStatus},</if>
|
||||
<if test="remark != null">remark=#{remark},</if>
|
||||
update_by=#{updateBy}, update_time=NOW()
|
||||
</set>
|
||||
WHERE do_id=#{doId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteBizDeliveryOrderById">DELETE FROM biz_delivery_order WHERE do_id=#{id}</delete>
|
||||
|
||||
<delete id="deleteBizDeliveryOrderByIds">
|
||||
DELETE FROM biz_delivery_order WHERE do_id IN
|
||||
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user