feat(sip): 项目产品信息增加明细展示
- 在 ProjectProductInfo 类中添加了产品 BOM 编码、型号、描述、价格等字段 - 更新了 ProjectProductInfoMapper.xml 文件,增加了新字段的映射 - 修改了相关 SQL 语句,以支持新增的字段查询和插入master
parent
4c24430399
commit
b9eef1f522
|
@ -20,7 +20,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目管理Controller
|
* 项目管理
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
* @date 2025-05-29
|
* @date 2025-05-29
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ruoyi.sip.domain;
|
package com.ruoyi.sip.domain;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -12,7 +13,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
* 项目产品信息对象 project_product_info
|
* 项目产品信息对象 project_product_info
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
* @date 2025-05-29
|
* @date 2025-06-04
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class ProjectProductInfo extends BaseEntity
|
public class ProjectProductInfo extends BaseEntity
|
||||||
|
@ -28,14 +29,46 @@ public class ProjectProductInfo extends BaseEntity
|
||||||
|
|
||||||
/** 产品编码 */
|
/** 产品编码 */
|
||||||
@Excel(name = "产品编码")
|
@Excel(name = "产品编码")
|
||||||
private String productCode;
|
private String productBomCode;
|
||||||
|
|
||||||
/** 数量 */
|
|
||||||
@Excel(name = "数量")
|
|
||||||
private Long quantity;
|
|
||||||
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
|
/** 产品型号 */
|
||||||
|
@Excel(name = "产品型号")
|
||||||
private String model;
|
private String model;
|
||||||
|
|
||||||
|
/** 产品代码 */
|
||||||
|
@Excel(name = "产品代码")
|
||||||
|
private String productCode;
|
||||||
|
|
||||||
|
/** 产品描述 */
|
||||||
|
@Excel(name = "产品描述")
|
||||||
|
private String productDesc;
|
||||||
|
|
||||||
|
/** 产品数量 */
|
||||||
|
@Excel(name = "产品数量")
|
||||||
|
private Long quantity;
|
||||||
|
|
||||||
|
/** 目录单价 */
|
||||||
|
@Excel(name = "目录单价")
|
||||||
|
private BigDecimal cataloguePrice;
|
||||||
|
|
||||||
|
/** 目录总价 */
|
||||||
|
@Excel(name = "目录总价")
|
||||||
|
private BigDecimal catalogueAllPrice;
|
||||||
|
|
||||||
|
/** 单价 */
|
||||||
|
@Excel(name = "单价")
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
/** 总价 */
|
||||||
|
@Excel(name = "总价")
|
||||||
|
private BigDecimal allPrice;
|
||||||
|
|
||||||
|
/** 指导折扣 */
|
||||||
|
@Excel(name = "指导折扣")
|
||||||
|
private BigDecimal guidanceDiscount;
|
||||||
|
|
||||||
|
/** 折扣 */
|
||||||
|
@Excel(name = "折扣")
|
||||||
|
private BigDecimal discount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,21 +7,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<resultMap type="ProjectProductInfo" id="ProjectProductInfoResult">
|
<resultMap type="ProjectProductInfo" id="ProjectProductInfoResult">
|
||||||
<result property="id" column="id" />
|
<result property="id" column="id" />
|
||||||
<result property="projectId" column="project_id" />
|
<result property="projectId" column="project_id" />
|
||||||
|
<result property="productBomCode" column="product_bom_code" />
|
||||||
|
<result property="model" column="model" />
|
||||||
<result property="productCode" column="product_code" />
|
<result property="productCode" column="product_code" />
|
||||||
|
<result property="productDesc" column="product_desc" />
|
||||||
<result property="quantity" column="quantity" />
|
<result property="quantity" column="quantity" />
|
||||||
|
<result property="cataloguePrice" column="catalogue_price" />
|
||||||
|
<result property="catalogueAllPrice" column="catalogue_all_price" />
|
||||||
|
<result property="price" column="price" />
|
||||||
|
<result property="allPrice" column="all_price" />
|
||||||
|
<result property="guidanceDiscount" column="guidance_discount" />
|
||||||
|
<result property="discount" column="discount" />
|
||||||
<result property="remark" column="remark" />
|
<result property="remark" column="remark" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectProjectProductInfoVo">
|
<sql id="selectProjectProductInfoVo">
|
||||||
select id, project_id, product_code, quantity, remark from project_product_info
|
select id, project_id, product_bom_code, model, product_code, product_desc, quantity, catalogue_price, catalogue_all_price, price, all_price, guidance_discount, discount, remark from project_product_info
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectProjectProductInfoList" parameterType="ProjectProductInfo" resultMap="ProjectProductInfoResult">
|
<select id="selectProjectProductInfoList" parameterType="ProjectProductInfo" resultMap="ProjectProductInfoResult">
|
||||||
<include refid="selectProjectProductInfoVo"/>
|
<include refid="selectProjectProductInfoVo"/>
|
||||||
<where>
|
<where>
|
||||||
<if test="projectId != null "> and project_id = #{projectId}</if>
|
<if test="projectId != null "> and project_id = #{projectId}</if>
|
||||||
|
<if test="productBomCode != null and productBomCode != ''"> and product_bom_code = #{productBomCode}</if>
|
||||||
|
<if test="model != null and model != ''"> and model = #{model}</if>
|
||||||
<if test="productCode != null and productCode != ''"> and product_code = #{productCode}</if>
|
<if test="productCode != null and productCode != ''"> and product_code = #{productCode}</if>
|
||||||
|
<if test="productDesc != null and productDesc != ''"> and product_desc = #{productDesc}</if>
|
||||||
<if test="quantity != null "> and quantity = #{quantity}</if>
|
<if test="quantity != null "> and quantity = #{quantity}</if>
|
||||||
|
<if test="cataloguePrice != null "> and catalogue_price = #{cataloguePrice}</if>
|
||||||
|
<if test="catalogueAllPrice != null "> and catalogue_all_price = #{catalogueAllPrice}</if>
|
||||||
|
<if test="price != null "> and price = #{price}</if>
|
||||||
|
<if test="allPrice != null "> and all_price = #{allPrice}</if>
|
||||||
|
<if test="guidanceDiscount != null "> and guidance_discount = #{guidanceDiscount}</if>
|
||||||
|
<if test="discount != null "> and discount = #{discount}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
@ -30,43 +48,72 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</select>
|
</select>
|
||||||
<select id="selectProjectProductInfoListByProjectId" resultType="com.ruoyi.sip.domain.ProjectProductInfo">
|
<select id="selectProjectProductInfoListByProjectId" resultType="com.ruoyi.sip.domain.ProjectProductInfo">
|
||||||
select t1.id, t1.project_id, t1.product_code, t1.quantity, t1.remark
|
<include refid="selectProjectProductInfoVo"/>
|
||||||
,t2.type,t2.model
|
where project_id = #{projectId}
|
||||||
from project_product_info t1
|
|
||||||
left join product_info t2 on t1.product_code=t2.product_code
|
|
||||||
where t1.project_id=#{projectId}
|
|
||||||
order by t2.type
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertProjectProductInfo" parameterType="ProjectProductInfo" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertProjectProductInfo" parameterType="ProjectProductInfo" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into project_product_info
|
insert into project_product_info
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="projectId != null">project_id,</if>
|
<if test="projectId != null">project_id,</if>
|
||||||
|
<if test="productBomCode != null and productBomCode != ''">product_bom_code,</if>
|
||||||
|
<if test="model != null">model,</if>
|
||||||
<if test="productCode != null">product_code,</if>
|
<if test="productCode != null">product_code,</if>
|
||||||
|
<if test="productDesc != null">product_desc,</if>
|
||||||
<if test="quantity != null">quantity,</if>
|
<if test="quantity != null">quantity,</if>
|
||||||
|
<if test="cataloguePrice != null">catalogue_price,</if>
|
||||||
|
<if test="catalogueAllPrice != null">catalogue_all_price,</if>
|
||||||
|
<if test="price != null">price,</if>
|
||||||
|
<if test="allPrice != null">all_price,</if>
|
||||||
|
<if test="guidanceDiscount != null">guidance_discount,</if>
|
||||||
|
<if test="discount != null">discount,</if>
|
||||||
<if test="remark != null">remark,</if>
|
<if test="remark != null">remark,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="projectId != null">#{projectId},</if>
|
<if test="projectId != null">#{projectId},</if>
|
||||||
|
<if test="productBomCode != null and productBomCode != ''">#{productBomCode},</if>
|
||||||
|
<if test="model != null">#{model},</if>
|
||||||
<if test="productCode != null">#{productCode},</if>
|
<if test="productCode != null">#{productCode},</if>
|
||||||
|
<if test="productDesc != null">#{productDesc},</if>
|
||||||
<if test="quantity != null">#{quantity},</if>
|
<if test="quantity != null">#{quantity},</if>
|
||||||
|
<if test="cataloguePrice != null">#{cataloguePrice},</if>
|
||||||
|
<if test="catalogueAllPrice != null">#{catalogueAllPrice},</if>
|
||||||
|
<if test="price != null">#{price},</if>
|
||||||
|
<if test="allPrice != null">#{allPrice},</if>
|
||||||
|
<if test="guidanceDiscount != null">#{guidanceDiscount},</if>
|
||||||
|
<if test="discount != null">#{discount},</if>
|
||||||
<if test="remark != null">#{remark},</if>
|
<if test="remark != null">#{remark},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="saveBatch">
|
<insert id="saveBatch">
|
||||||
insert into project_product_info (project_id, product_code, quantity, remark) values
|
insert into project_product_info (project_id, product_bom_code, model, product_code, product_desc, quantity,
|
||||||
<foreach item="item" index="index" collection="list" separator=",">
|
catalogue_price, catalogue_all_price, price, all_price, guidance_discount, discount, remark) values
|
||||||
(#{item.projectId}, #{item.productCode}, #{item.quantity}, #{item.remark})
|
<foreach collection="list" item="item" separator=",">
|
||||||
|
(#{item.projectId}, #{item.productBomCode}, #{item.model}, #{item.productCode}, #{item.productDesc},
|
||||||
|
#{item.quantity}, #{item.cataloguePrice}, #{item.catalogueAllPrice}, #{item.price}, #{item.allPrice},
|
||||||
|
#{item.guidanceDiscount}, #{item.discount}, #{item.remark})
|
||||||
</foreach>
|
</foreach>
|
||||||
on duplicate key update product_code = values(product_code), quantity = values(quantity), remark = values(remark)
|
ON DUPLICATE KEY UPDATE product_bom_code = #{productBomCode}, model = #{model},
|
||||||
|
product_code = #{productCode}, product_desc = #{productDesc}, quantity = #{quantity}, catalogue_price = #{cataloguePrice},
|
||||||
|
catalogue_all_price = #{catalogueAllPrice}, price = #{price}, all_price = #{allPrice}, guidance_discount = #{guidanceDiscount},
|
||||||
|
discount = #{discount}, remark = #{remark}
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateProjectProductInfo" parameterType="ProjectProductInfo">
|
<update id="updateProjectProductInfo" parameterType="ProjectProductInfo">
|
||||||
update project_product_info
|
update project_product_info
|
||||||
<trim prefix="SET" suffixOverrides=",">
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
<if test="projectId != null">project_id = #{projectId},</if>
|
<if test="projectId != null">project_id = #{projectId},</if>
|
||||||
|
<if test="productBomCode != null and productBomCode != ''">product_bom_code = #{productBomCode},</if>
|
||||||
|
<if test="model != null">model = #{model},</if>
|
||||||
<if test="productCode != null">product_code = #{productCode},</if>
|
<if test="productCode != null">product_code = #{productCode},</if>
|
||||||
|
<if test="productDesc != null">product_desc = #{productDesc},</if>
|
||||||
<if test="quantity != null">quantity = #{quantity},</if>
|
<if test="quantity != null">quantity = #{quantity},</if>
|
||||||
|
<if test="cataloguePrice != null">catalogue_price = #{cataloguePrice},</if>
|
||||||
|
<if test="catalogueAllPrice != null">catalogue_all_price = #{catalogueAllPrice},</if>
|
||||||
|
<if test="price != null">price = #{price},</if>
|
||||||
|
<if test="allPrice != null">all_price = #{allPrice},</if>
|
||||||
|
<if test="guidanceDiscount != null">guidance_discount = #{guidanceDiscount},</if>
|
||||||
|
<if test="discount != null">discount = #{discount},</if>
|
||||||
<if test="remark != null">remark = #{remark},</if>
|
<if test="remark != null">remark = #{remark},</if>
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
|
|
Loading…
Reference in New Issue