feat: 路由跳转重构 + 甲方报价单 + 物料分类 + 比价选择方案 + 规格型号拆分
- 比价页改为列表→路由跳转到 comparison/detail,支持勾选物料行生成采购方案PDF - 新增甲方报价单模块(clientquote):列表+详情路由,含成本价/报价/毛利率,导出PDF - 新增物料分类管理(category):树形结构,CRUD,物料页面关联分类筛选 - BizMaterial 拆分 spec(规格) + modelNo(型号) 两个字段 - Logo 修复:新PNG + 内联样式确保完整显示 - sys_menu 新增 2012(物料分类)、2013(甲方报价单)、2014(报价单详情)、2015(比价详情) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
package com.ruoyi.system.domain.bid;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class BizClientQuote {
|
||||
private Long quoteId;
|
||||
private Long tenantId;
|
||||
private String quoteNo;
|
||||
private String clientName;
|
||||
private Long rfqId;
|
||||
private String rfqNo;
|
||||
private String rfqTitle;
|
||||
private String status;
|
||||
private Date validityDate;
|
||||
private BigDecimal totalAmount;
|
||||
private String currency;
|
||||
private String remark;
|
||||
private String createBy;
|
||||
private Date createTime;
|
||||
private Date updateTime;
|
||||
private List<BizClientQuoteItem> items;
|
||||
|
||||
public Long getQuoteId(){return quoteId;}
|
||||
public void setQuoteId(Long v){quoteId=v;}
|
||||
public Long getTenantId(){return tenantId;}
|
||||
public void setTenantId(Long v){tenantId=v;}
|
||||
public String getQuoteNo(){return quoteNo;}
|
||||
public void setQuoteNo(String v){quoteNo=v;}
|
||||
public String getClientName(){return clientName;}
|
||||
public void setClientName(String v){clientName=v;}
|
||||
public Long getRfqId(){return rfqId;}
|
||||
public void setRfqId(Long v){rfqId=v;}
|
||||
public String getRfqNo(){return rfqNo;}
|
||||
public void setRfqNo(String v){rfqNo=v;}
|
||||
public String getRfqTitle(){return rfqTitle;}
|
||||
public void setRfqTitle(String v){rfqTitle=v;}
|
||||
public String getStatus(){return status;}
|
||||
public void setStatus(String v){status=v;}
|
||||
public Date getValidityDate(){return validityDate;}
|
||||
public void setValidityDate(Date v){validityDate=v;}
|
||||
public BigDecimal getTotalAmount(){return totalAmount;}
|
||||
public void setTotalAmount(BigDecimal v){totalAmount=v;}
|
||||
public String getCurrency(){return currency;}
|
||||
public void setCurrency(String v){currency=v;}
|
||||
public String getRemark(){return remark;}
|
||||
public void setRemark(String v){remark=v;}
|
||||
public String getCreateBy(){return createBy;}
|
||||
public void setCreateBy(String v){createBy=v;}
|
||||
public Date getCreateTime(){return createTime;}
|
||||
public void setCreateTime(Date v){createTime=v;}
|
||||
public Date getUpdateTime(){return updateTime;}
|
||||
public void setUpdateTime(Date v){updateTime=v;}
|
||||
public List<BizClientQuoteItem> getItems(){return items;}
|
||||
public void setItems(List<BizClientQuoteItem> v){items=v;}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.ruoyi.system.domain.bid;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
public class BizClientQuoteItem {
|
||||
private Long itemId;
|
||||
private Long quoteId;
|
||||
private String materialName;
|
||||
private String spec;
|
||||
private String modelNo;
|
||||
private String unit;
|
||||
private BigDecimal quantity;
|
||||
private BigDecimal costPrice;
|
||||
private BigDecimal unitPrice;
|
||||
private BigDecimal totalPrice;
|
||||
private Integer deliveryDays;
|
||||
private String remark;
|
||||
|
||||
public Long getItemId(){return itemId;}
|
||||
public void setItemId(Long v){itemId=v;}
|
||||
public Long getQuoteId(){return quoteId;}
|
||||
public void setQuoteId(Long v){quoteId=v;}
|
||||
public String getMaterialName(){return materialName;}
|
||||
public void setMaterialName(String v){materialName=v;}
|
||||
public String getSpec(){return spec;}
|
||||
public void setSpec(String v){spec=v;}
|
||||
public String getModelNo(){return modelNo;}
|
||||
public void setModelNo(String v){modelNo=v;}
|
||||
public String getUnit(){return unit;}
|
||||
public void setUnit(String v){unit=v;}
|
||||
public BigDecimal getQuantity(){return quantity;}
|
||||
public void setQuantity(BigDecimal v){quantity=v;}
|
||||
public BigDecimal getCostPrice(){return costPrice;}
|
||||
public void setCostPrice(BigDecimal v){costPrice=v;}
|
||||
public BigDecimal getUnitPrice(){return unitPrice;}
|
||||
public void setUnitPrice(BigDecimal v){unitPrice=v;}
|
||||
public BigDecimal getTotalPrice(){return totalPrice;}
|
||||
public void setTotalPrice(BigDecimal v){totalPrice=v;}
|
||||
public Integer getDeliveryDays(){return deliveryDays;}
|
||||
public void setDeliveryDays(Integer v){deliveryDays=v;}
|
||||
public String getRemark(){return remark;}
|
||||
public void setRemark(String v){remark=v;}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ public class BizMaterial extends BaseEntity {
|
||||
private String materialCode;
|
||||
private String materialName;
|
||||
private String spec;
|
||||
private String modelNo;
|
||||
private String unit;
|
||||
private String brand;
|
||||
private String description;
|
||||
@@ -28,6 +29,8 @@ public class BizMaterial extends BaseEntity {
|
||||
public void setMaterialName(String materialName) { this.materialName = materialName; }
|
||||
public String getSpec() { return spec; }
|
||||
public void setSpec(String spec) { this.spec = spec; }
|
||||
public String getModelNo() { return modelNo; }
|
||||
public void setModelNo(String modelNo) { this.modelNo = modelNo; }
|
||||
public String getUnit() { return unit; }
|
||||
public void setUnit(String unit) { this.unit = unit; }
|
||||
public String getBrand() { return brand; }
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.ruoyi.system.domain.bid;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class BizMaterialCategory {
|
||||
private Long categoryId;
|
||||
private Long tenantId;
|
||||
private String categoryName;
|
||||
private Long parentId;
|
||||
private String ancestors;
|
||||
private Integer sort;
|
||||
private String status;
|
||||
private String createBy;
|
||||
private Date createTime;
|
||||
private List<BizMaterialCategory> children;
|
||||
|
||||
public Long getCategoryId(){return categoryId;}
|
||||
public void setCategoryId(Long v){categoryId=v;}
|
||||
public Long getTenantId(){return tenantId;}
|
||||
public void setTenantId(Long v){tenantId=v;}
|
||||
public String getCategoryName(){return categoryName;}
|
||||
public void setCategoryName(String v){categoryName=v;}
|
||||
public Long getParentId(){return parentId;}
|
||||
public void setParentId(Long v){parentId=v;}
|
||||
public String getAncestors(){return ancestors;}
|
||||
public void setAncestors(String v){ancestors=v;}
|
||||
public Integer getSort(){return sort;}
|
||||
public void setSort(Integer v){sort=v;}
|
||||
public String getStatus(){return status;}
|
||||
public void setStatus(String v){status=v;}
|
||||
public String getCreateBy(){return createBy;}
|
||||
public void setCreateBy(String v){createBy=v;}
|
||||
public Date getCreateTime(){return createTime;}
|
||||
public void setCreateTime(Date v){createTime=v;}
|
||||
public List<BizMaterialCategory> getChildren(){return children;}
|
||||
public void setChildren(List<BizMaterialCategory> v){children=v;}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.system.mapper.bid;
|
||||
|
||||
import com.ruoyi.system.domain.bid.BizClientQuote;
|
||||
import com.ruoyi.system.domain.bid.BizClientQuoteItem;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
public interface BizClientQuoteMapper {
|
||||
List<BizClientQuote> selectClientQuoteList(@Param("q") BizClientQuote query);
|
||||
BizClientQuote selectClientQuoteById(@Param("quoteId") Long quoteId);
|
||||
List<BizClientQuoteItem> selectItemsByQuoteId(@Param("quoteId") Long quoteId);
|
||||
int insertClientQuote(BizClientQuote quote);
|
||||
int insertClientQuoteItem(BizClientQuoteItem item);
|
||||
int updateClientQuote(BizClientQuote quote);
|
||||
int deleteClientQuoteById(@Param("quoteId") Long quoteId);
|
||||
int deleteItemsByQuoteId(@Param("quoteId") Long quoteId);
|
||||
String selectNextQuoteNo();
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.system.mapper.bid;
|
||||
|
||||
import com.ruoyi.system.domain.bid.BizMaterialCategory;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
public interface BizMaterialCategoryMapper {
|
||||
List<BizMaterialCategory> selectCategoryList();
|
||||
BizMaterialCategory selectCategoryById(@Param("categoryId") Long categoryId);
|
||||
int insertCategory(BizMaterialCategory category);
|
||||
int updateCategory(BizMaterialCategory category);
|
||||
int deleteCategory(@Param("categoryId") Long categoryId);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.system.service.bid;
|
||||
|
||||
import com.ruoyi.system.domain.bid.BizClientQuote;
|
||||
import java.util.List;
|
||||
|
||||
public interface IBizClientQuoteService {
|
||||
List<BizClientQuote> selectClientQuoteList(BizClientQuote query);
|
||||
BizClientQuote selectClientQuoteById(Long quoteId);
|
||||
int insertClientQuote(BizClientQuote quote);
|
||||
int updateClientQuote(BizClientQuote quote);
|
||||
int deleteClientQuoteById(Long quoteId);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.system.service.bid;
|
||||
|
||||
import com.ruoyi.system.domain.bid.BizMaterialCategory;
|
||||
import java.util.List;
|
||||
|
||||
public interface IBizMaterialCategoryService {
|
||||
List<BizMaterialCategory> selectCategoryList();
|
||||
int insertCategory(BizMaterialCategory category);
|
||||
int updateCategory(BizMaterialCategory category);
|
||||
int deleteCategory(Long categoryId);
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.ruoyi.system.service.bid.impl;
|
||||
|
||||
import com.ruoyi.system.domain.bid.BizClientQuote;
|
||||
import com.ruoyi.system.domain.bid.BizClientQuoteItem;
|
||||
import com.ruoyi.system.mapper.bid.BizClientQuoteMapper;
|
||||
import com.ruoyi.system.service.bid.IBizClientQuoteService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class BizClientQuoteServiceImpl implements IBizClientQuoteService {
|
||||
@Autowired private BizClientQuoteMapper mapper;
|
||||
|
||||
@Override
|
||||
public List<BizClientQuote> selectClientQuoteList(BizClientQuote query) {
|
||||
return mapper.selectClientQuoteList(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizClientQuote selectClientQuoteById(Long quoteId) {
|
||||
BizClientQuote q = mapper.selectClientQuoteById(quoteId);
|
||||
if (q != null) q.setItems(mapper.selectItemsByQuoteId(quoteId));
|
||||
return q;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertClientQuote(BizClientQuote quote) {
|
||||
if (quote.getQuoteNo() == null || quote.getQuoteNo().isBlank()) {
|
||||
quote.setQuoteNo(mapper.selectNextQuoteNo());
|
||||
}
|
||||
if (quote.getStatus() == null) quote.setStatus("draft");
|
||||
if (quote.getCurrency() == null) quote.setCurrency("CNY");
|
||||
// Calculate total
|
||||
if (quote.getItems() != null) {
|
||||
BigDecimal total = BigDecimal.ZERO;
|
||||
for (BizClientQuoteItem item : quote.getItems()) {
|
||||
if (item.getUnitPrice() != null && item.getQuantity() != null) {
|
||||
BigDecimal line = item.getUnitPrice().multiply(item.getQuantity()).setScale(2, RoundingMode.HALF_UP);
|
||||
item.setTotalPrice(line);
|
||||
total = total.add(line);
|
||||
}
|
||||
}
|
||||
quote.setTotalAmount(total);
|
||||
}
|
||||
int rows = mapper.insertClientQuote(quote);
|
||||
if (quote.getItems() != null) {
|
||||
for (BizClientQuoteItem item : quote.getItems()) {
|
||||
item.setQuoteId(quote.getQuoteId());
|
||||
mapper.insertClientQuoteItem(item);
|
||||
}
|
||||
}
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int updateClientQuote(BizClientQuote quote) {
|
||||
if (quote.getItems() != null) {
|
||||
BigDecimal total = BigDecimal.ZERO;
|
||||
for (BizClientQuoteItem item : quote.getItems()) {
|
||||
if (item.getUnitPrice() != null && item.getQuantity() != null) {
|
||||
BigDecimal line = item.getUnitPrice().multiply(item.getQuantity()).setScale(2, RoundingMode.HALF_UP);
|
||||
item.setTotalPrice(line);
|
||||
total = total.add(line);
|
||||
}
|
||||
}
|
||||
quote.setTotalAmount(total);
|
||||
mapper.deleteItemsByQuoteId(quote.getQuoteId());
|
||||
for (BizClientQuoteItem item : quote.getItems()) {
|
||||
item.setQuoteId(quote.getQuoteId());
|
||||
mapper.insertClientQuoteItem(item);
|
||||
}
|
||||
}
|
||||
return mapper.updateClientQuote(quote);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteClientQuoteById(Long quoteId) {
|
||||
mapper.deleteItemsByQuoteId(quoteId);
|
||||
return mapper.deleteClientQuoteById(quoteId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.ruoyi.system.service.bid.impl;
|
||||
|
||||
import com.ruoyi.system.domain.bid.BizMaterialCategory;
|
||||
import com.ruoyi.system.mapper.bid.BizMaterialCategoryMapper;
|
||||
import com.ruoyi.system.service.bid.IBizMaterialCategoryService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class BizMaterialCategoryServiceImpl implements IBizMaterialCategoryService {
|
||||
@Autowired private BizMaterialCategoryMapper mapper;
|
||||
|
||||
@Override
|
||||
public List<BizMaterialCategory> selectCategoryList() {
|
||||
List<BizMaterialCategory> all = mapper.selectCategoryList();
|
||||
return buildTree(all);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertCategory(BizMaterialCategory cat) {
|
||||
if (cat.getParentId() == null) cat.setParentId(0L);
|
||||
if (cat.getSort() == null) cat.setSort(0);
|
||||
if (cat.getStatus() == null) cat.setStatus("0");
|
||||
// Build ancestors string
|
||||
if (cat.getParentId() == 0L) {
|
||||
cat.setAncestors("0");
|
||||
} else {
|
||||
BizMaterialCategory parent = mapper.selectCategoryById(cat.getParentId());
|
||||
cat.setAncestors(parent == null ? "0" : parent.getAncestors() + "," + cat.getParentId());
|
||||
}
|
||||
return mapper.insertCategory(cat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateCategory(BizMaterialCategory cat) { return mapper.updateCategory(cat); }
|
||||
|
||||
@Override
|
||||
public int deleteCategory(Long categoryId) { return mapper.deleteCategory(categoryId); }
|
||||
|
||||
private List<BizMaterialCategory> buildTree(List<BizMaterialCategory> all) {
|
||||
Map<Long, BizMaterialCategory> map = new LinkedHashMap<>();
|
||||
for (BizMaterialCategory c : all) map.put(c.getCategoryId(), c);
|
||||
List<BizMaterialCategory> roots = new ArrayList<>();
|
||||
for (BizMaterialCategory c : all) {
|
||||
Long pid = c.getParentId() == null ? 0L : c.getParentId();
|
||||
if (pid == 0L) { roots.add(c); }
|
||||
else {
|
||||
BizMaterialCategory parent = map.get(pid);
|
||||
if (parent != null) {
|
||||
if (parent.getChildren() == null) parent.setChildren(new ArrayList<>());
|
||||
parent.getChildren().add(c);
|
||||
} else roots.add(c);
|
||||
}
|
||||
}
|
||||
return roots;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
<?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.BizClientQuoteMapper">
|
||||
|
||||
<select id="selectClientQuoteList" resultType="com.ruoyi.system.domain.bid.BizClientQuote">
|
||||
SELECT quote_id AS quoteId, tenant_id AS tenantId, quote_no AS quoteNo,
|
||||
client_name AS clientName, rfq_id AS rfqId, rfq_no AS rfqNo, rfq_title AS rfqTitle,
|
||||
status, validity_date AS validityDate, total_amount AS totalAmount,
|
||||
currency, remark, create_by AS createBy, create_time AS createTime
|
||||
FROM biz_client_quote
|
||||
<where>
|
||||
<if test="q.clientName != null and q.clientName != ''">AND client_name LIKE CONCAT('%',#{q.clientName},'%')</if>
|
||||
<if test="q.status != null and q.status != ''">AND status = #{q.status}</if>
|
||||
</where>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectClientQuoteById" resultType="com.ruoyi.system.domain.bid.BizClientQuote">
|
||||
SELECT quote_id AS quoteId, tenant_id AS tenantId, quote_no AS quoteNo,
|
||||
client_name AS clientName, rfq_id AS rfqId, rfq_no AS rfqNo, rfq_title AS rfqTitle,
|
||||
status, validity_date AS validityDate, total_amount AS totalAmount,
|
||||
currency, remark, create_by AS createBy, create_time AS createTime
|
||||
FROM biz_client_quote WHERE quote_id = #{quoteId}
|
||||
</select>
|
||||
|
||||
<select id="selectItemsByQuoteId" resultType="com.ruoyi.system.domain.bid.BizClientQuoteItem">
|
||||
SELECT item_id AS itemId, quote_id AS quoteId, material_name AS materialName,
|
||||
spec, model_no AS modelNo, unit, quantity, cost_price AS costPrice,
|
||||
unit_price AS unitPrice, total_price AS totalPrice, delivery_days AS deliveryDays, remark
|
||||
FROM biz_client_quote_item WHERE quote_id = #{quoteId} ORDER BY item_id
|
||||
</select>
|
||||
|
||||
<select id="selectNextQuoteNo" resultType="String">
|
||||
SELECT CONCAT('CQ-', DATE_FORMAT(NOW(),'%Y%m'), '-', LPAD(IFNULL(MAX(CAST(SUBSTRING_INDEX(quote_no,'-',-1) AS UNSIGNED)),0)+1,3,'0'))
|
||||
FROM biz_client_quote WHERE quote_no LIKE CONCAT('CQ-', DATE_FORMAT(NOW(),'%Y%m'), '%')
|
||||
</select>
|
||||
|
||||
<insert id="insertClientQuote" useGeneratedKeys="true" keyProperty="quoteId">
|
||||
INSERT INTO biz_client_quote (tenant_id,quote_no,client_name,rfq_id,rfq_no,rfq_title,
|
||||
status,validity_date,total_amount,currency,remark,create_by,create_time)
|
||||
VALUES (1,#{quoteNo},#{clientName},#{rfqId},#{rfqNo},#{rfqTitle},
|
||||
#{status},#{validityDate},#{totalAmount},#{currency},#{remark},#{createBy},NOW())
|
||||
</insert>
|
||||
|
||||
<insert id="insertClientQuoteItem" useGeneratedKeys="true" keyProperty="itemId">
|
||||
INSERT INTO biz_client_quote_item (quote_id,material_name,spec,model_no,unit,quantity,
|
||||
cost_price,unit_price,total_price,delivery_days,remark)
|
||||
VALUES (#{quoteId},#{materialName},#{spec},#{modelNo},#{unit},#{quantity},
|
||||
#{costPrice},#{unitPrice},#{totalPrice},#{deliveryDays},#{remark})
|
||||
</insert>
|
||||
|
||||
<update id="updateClientQuote">
|
||||
UPDATE biz_client_quote SET client_name=#{clientName},status=#{status},
|
||||
validity_date=#{validityDate},total_amount=#{totalAmount},
|
||||
currency=#{currency},remark=#{remark},update_time=NOW()
|
||||
WHERE quote_id=#{quoteId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteClientQuoteById">DELETE FROM biz_client_quote WHERE quote_id=#{quoteId}</delete>
|
||||
<delete id="deleteItemsByQuoteId">DELETE FROM biz_client_quote_item WHERE quote_id=#{quoteId}</delete>
|
||||
</mapper>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?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.BizMaterialCategoryMapper">
|
||||
|
||||
<select id="selectCategoryList" resultType="com.ruoyi.system.domain.bid.BizMaterialCategory">
|
||||
SELECT category_id AS categoryId, tenant_id AS tenantId,
|
||||
category_name AS categoryName, parent_id AS parentId,
|
||||
ancestors, sort, status, create_by AS createBy, create_time AS createTime
|
||||
FROM biz_material_category ORDER BY sort, category_id
|
||||
</select>
|
||||
|
||||
<select id="selectCategoryById" resultType="com.ruoyi.system.domain.bid.BizMaterialCategory">
|
||||
SELECT category_id AS categoryId, category_name AS categoryName,
|
||||
parent_id AS parentId, ancestors, sort, status
|
||||
FROM biz_material_category WHERE category_id = #{categoryId}
|
||||
</select>
|
||||
|
||||
<insert id="insertCategory" useGeneratedKeys="true" keyProperty="categoryId">
|
||||
INSERT INTO biz_material_category (tenant_id,category_name,parent_id,ancestors,sort,status,create_by,create_time)
|
||||
VALUES (1,#{categoryName},#{parentId},#{ancestors},#{sort},#{status},#{createBy},NOW())
|
||||
</insert>
|
||||
|
||||
<update id="updateCategory">
|
||||
UPDATE biz_material_category
|
||||
SET category_name=#{categoryName},parent_id=#{parentId},ancestors=#{ancestors},
|
||||
sort=#{sort},status=#{status}
|
||||
WHERE category_id=#{categoryId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteCategory">
|
||||
DELETE FROM biz_material_category WHERE category_id=#{categoryId}
|
||||
</delete>
|
||||
</mapper>
|
||||
@@ -9,6 +9,7 @@
|
||||
<result property="materialCode" column="material_code"/>
|
||||
<result property="materialName" column="material_name"/>
|
||||
<result property="spec" column="spec"/>
|
||||
<result property="modelNo" column="model_no"/>
|
||||
<result property="unit" column="unit"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="description" column="description"/>
|
||||
@@ -23,9 +24,10 @@
|
||||
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>
|
||||
<if test="categoryId != null"> AND m.category_id = #{categoryId}</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>
|
||||
@@ -35,8 +37,8 @@
|
||||
</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 INTO biz_material(tenant_id,category_id,material_code,material_name,spec,model_no,unit,brand,description,status,create_by,create_time)
|
||||
VALUES(#{tenantId},#{categoryId},#{materialCode},#{materialName},#{spec},#{modelNo},#{unit},#{brand},#{description},#{status},#{createBy},NOW())
|
||||
</insert>
|
||||
|
||||
<update id="updateBizMaterial">
|
||||
@@ -45,6 +47,7 @@
|
||||
<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="modelNo != null">model_no=#{modelNo},</if>
|
||||
<if test="unit != null">unit=#{unit},</if>
|
||||
<if test="brand != null">brand=#{brand},</if>
|
||||
<if test="description != null">description=#{description},</if>
|
||||
|
||||
Reference in New Issue
Block a user