diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BizClientQuoteController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BizClientQuoteController.java new file mode 100644 index 00000000..d8d8f3fa --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BizClientQuoteController.java @@ -0,0 +1,44 @@ +package com.ruoyi.web.controller.bid; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.system.domain.bid.BizClientQuote; +import com.ruoyi.system.service.bid.IBizClientQuoteService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/bid/clientquote") +public class BizClientQuoteController extends BaseController { + @Autowired private IBizClientQuoteService service; + + @GetMapping("/list") + public TableDataInfo list(BizClientQuote query) { + startPage(); + List list = service.selectClientQuoteList(query); + return getDataTable(list); + } + + @GetMapping("/{quoteId}") + public AjaxResult getInfo(@PathVariable Long quoteId) { + return success(service.selectClientQuoteById(quoteId)); + } + + @PostMapping + public AjaxResult add(@RequestBody BizClientQuote quote) { + quote.setCreateBy(getUsername()); + return toAjax(service.insertClientQuote(quote)); + } + + @PutMapping + public AjaxResult edit(@RequestBody BizClientQuote quote) { + return toAjax(service.updateClientQuote(quote)); + } + + @DeleteMapping("/{quoteId}") + public AjaxResult remove(@PathVariable Long quoteId) { + return toAjax(service.deleteClientQuoteById(quoteId)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BizMaterialCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BizMaterialCategoryController.java new file mode 100644 index 00000000..c94e20ce --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bid/BizMaterialCategoryController.java @@ -0,0 +1,38 @@ +package com.ruoyi.web.controller.bid; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.system.domain.bid.BizMaterialCategory; +import com.ruoyi.system.service.bid.IBizMaterialCategoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import java.util.List; + +@RestController +@RequestMapping("/bid/category") +public class BizMaterialCategoryController extends BaseController { + @Autowired private IBizMaterialCategoryService service; + + @GetMapping("/tree") + public AjaxResult tree() { return success(service.selectCategoryList()); } + + @GetMapping("/list") + public AjaxResult list() { return success(service.selectCategoryList()); } + + @PostMapping + public AjaxResult add(@RequestBody BizMaterialCategory cat) { + cat.setCreateBy(getUsername()); + return toAjax(service.insertCategory(cat)); + } + + @PutMapping + public AjaxResult edit(@RequestBody BizMaterialCategory cat) { + return toAjax(service.updateCategory(cat)); + } + + @DeleteMapping("/{categoryId}") + public AjaxResult remove(@PathVariable Long categoryId) { + return toAjax(service.deleteCategory(categoryId)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizClientQuote.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizClientQuote.java new file mode 100644 index 00000000..e4b075c8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizClientQuote.java @@ -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 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 getItems(){return items;} + public void setItems(List v){items=v;} +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizClientQuoteItem.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizClientQuoteItem.java new file mode 100644 index 00000000..6c930095 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizClientQuoteItem.java @@ -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;} +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterial.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterial.java index 599d09d1..919ced33 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterial.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterial.java @@ -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; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterialCategory.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterialCategory.java new file mode 100644 index 00000000..e34666f8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bid/BizMaterialCategory.java @@ -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 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 getChildren(){return children;} + public void setChildren(List v){children=v;} +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/bid/BizClientQuoteMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/bid/BizClientQuoteMapper.java new file mode 100644 index 00000000..86932167 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/bid/BizClientQuoteMapper.java @@ -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 selectClientQuoteList(@Param("q") BizClientQuote query); + BizClientQuote selectClientQuoteById(@Param("quoteId") Long quoteId); + List 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(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/bid/BizMaterialCategoryMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/bid/BizMaterialCategoryMapper.java new file mode 100644 index 00000000..b0a4ab90 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/bid/BizMaterialCategoryMapper.java @@ -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 selectCategoryList(); + BizMaterialCategory selectCategoryById(@Param("categoryId") Long categoryId); + int insertCategory(BizMaterialCategory category); + int updateCategory(BizMaterialCategory category); + int deleteCategory(@Param("categoryId") Long categoryId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/IBizClientQuoteService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/IBizClientQuoteService.java new file mode 100644 index 00000000..1105dc0e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/IBizClientQuoteService.java @@ -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 selectClientQuoteList(BizClientQuote query); + BizClientQuote selectClientQuoteById(Long quoteId); + int insertClientQuote(BizClientQuote quote); + int updateClientQuote(BizClientQuote quote); + int deleteClientQuoteById(Long quoteId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/IBizMaterialCategoryService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/IBizMaterialCategoryService.java new file mode 100644 index 00000000..20e6756c --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/IBizMaterialCategoryService.java @@ -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 selectCategoryList(); + int insertCategory(BizMaterialCategory category); + int updateCategory(BizMaterialCategory category); + int deleteCategory(Long categoryId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/impl/BizClientQuoteServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/impl/BizClientQuoteServiceImpl.java new file mode 100644 index 00000000..b670e374 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/impl/BizClientQuoteServiceImpl.java @@ -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 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); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/impl/BizMaterialCategoryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/impl/BizMaterialCategoryServiceImpl.java new file mode 100644 index 00000000..05606d40 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/bid/impl/BizMaterialCategoryServiceImpl.java @@ -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 selectCategoryList() { + List 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 buildTree(List all) { + Map map = new LinkedHashMap<>(); + for (BizMaterialCategory c : all) map.put(c.getCategoryId(), c); + List 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; + } +} diff --git a/ruoyi-system/src/main/resources/mapper/bid/BizClientQuoteMapper.xml b/ruoyi-system/src/main/resources/mapper/bid/BizClientQuoteMapper.xml new file mode 100644 index 00000000..12a219a8 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/bid/BizClientQuoteMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + 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 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}) + + + + 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} + + + DELETE FROM biz_client_quote WHERE quote_id=#{quoteId} + DELETE FROM biz_client_quote_item WHERE quote_id=#{quoteId} + diff --git a/ruoyi-system/src/main/resources/mapper/bid/BizMaterialCategoryMapper.xml b/ruoyi-system/src/main/resources/mapper/bid/BizMaterialCategoryMapper.xml new file mode 100644 index 00000000..978ced5e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/bid/BizMaterialCategoryMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + 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()) + + + + UPDATE biz_material_category + SET category_name=#{categoryName},parent_id=#{parentId},ancestors=#{ancestors}, + sort=#{sort},status=#{status} + WHERE category_id=#{categoryId} + + + + DELETE FROM biz_material_category WHERE category_id=#{categoryId} + + diff --git a/ruoyi-system/src/main/resources/mapper/bid/BizMaterialMapper.xml b/ruoyi-system/src/main/resources/mapper/bid/BizMaterialMapper.xml index 6ca54002..5eb5298d 100644 --- a/ruoyi-system/src/main/resources/mapper/bid/BizMaterialMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/bid/BizMaterialMapper.xml @@ -9,6 +9,7 @@ + @@ -23,9 +24,10 @@ SELECT m.* FROM biz_material m AND m.tenant_id = #{tenantId} - AND m.material_code LIKE CONCAT('%',#{materialCode},'%') - AND m.material_name LIKE CONCAT('%',#{materialName},'%') - AND m.status = #{status} + AND m.category_id = #{categoryId} + AND m.material_code LIKE CONCAT('%',#{materialCode},'%') + AND m.material_name LIKE CONCAT('%',#{materialName},'%') + AND m.status = #{status} ORDER BY m.material_id DESC @@ -35,8 +37,8 @@ - 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()) @@ -45,6 +47,7 @@ material_name=#{materialName}, material_code=#{materialCode}, spec=#{spec}, + model_no=#{modelNo}, unit=#{unit}, brand=#{brand}, description=#{description}, diff --git a/ruoyi-ui/src/api/bid/category.js b/ruoyi-ui/src/api/bid/category.js new file mode 100644 index 00000000..07e5ae21 --- /dev/null +++ b/ruoyi-ui/src/api/bid/category.js @@ -0,0 +1,7 @@ +import request from '@/utils/request' +const baseUrl = '/bid/category' +export const getCategoryList = () => request({ url: baseUrl + '/list', method: 'get' }) +export const getCategoryTree = () => request({ url: baseUrl + '/tree', method: 'get' }) +export const addCategory = (data) => request({ url: baseUrl, method: 'post', data }) +export const updateCategory = (data) => request({ url: baseUrl, method: 'put', data }) +export const delCategory = (id) => request({ url: baseUrl + '/' + id, method: 'delete' }) diff --git a/ruoyi-ui/src/api/bid/clientquote.js b/ruoyi-ui/src/api/bid/clientquote.js new file mode 100644 index 00000000..9d4106de --- /dev/null +++ b/ruoyi-ui/src/api/bid/clientquote.js @@ -0,0 +1,7 @@ +import request from '@/utils/request' +const baseUrl = '/bid/clientquote' +export const listClientQuote = (params) => request({ url: baseUrl + '/list', method: 'get', params }) +export const getClientQuote = (id) => request({ url: baseUrl + '/' + id, method: 'get' }) +export const addClientQuote = (data) => request({ url: baseUrl, method: 'post', data }) +export const updateClientQuote = (data) => request({ url: baseUrl, method: 'put', data }) +export const delClientQuote = (id) => request({ url: baseUrl + '/' + id, method: 'delete' }) diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png index 62d6ec6a..0e1b671d 100644 Binary files a/ruoyi-ui/src/assets/logo/logo.png and b/ruoyi-ui/src/assets/logo/logo.png differ diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue index 976bb280..83293c19 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue +++ b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue @@ -1,46 +1,48 @@ - - diff --git a/ruoyi-ui/src/views/bid/category/index.vue b/ruoyi-ui/src/views/bid/category/index.vue new file mode 100644 index 00000000..dab7371b --- /dev/null +++ b/ruoyi-ui/src/views/bid/category/index.vue @@ -0,0 +1,120 @@ + + + diff --git a/ruoyi-ui/src/views/bid/clientquote/detail.vue b/ruoyi-ui/src/views/bid/clientquote/detail.vue new file mode 100644 index 00000000..71298ddc --- /dev/null +++ b/ruoyi-ui/src/views/bid/clientquote/detail.vue @@ -0,0 +1,350 @@ + + + + + diff --git a/ruoyi-ui/src/views/bid/clientquote/index.vue b/ruoyi-ui/src/views/bid/clientquote/index.vue new file mode 100644 index 00000000..fcfa8c7e --- /dev/null +++ b/ruoyi-ui/src/views/bid/clientquote/index.vue @@ -0,0 +1,113 @@ + + + diff --git a/ruoyi-ui/src/views/bid/comparison/detail.vue b/ruoyi-ui/src/views/bid/comparison/detail.vue new file mode 100644 index 00000000..c8a9b56b --- /dev/null +++ b/ruoyi-ui/src/views/bid/comparison/detail.vue @@ -0,0 +1,341 @@ + + + + + diff --git a/ruoyi-ui/src/views/bid/comparison/index.vue b/ruoyi-ui/src/views/bid/comparison/index.vue index 11be3f65..1cdea943 100644 --- a/ruoyi-ui/src/views/bid/comparison/index.vue +++ b/ruoyi-ui/src/views/bid/comparison/index.vue @@ -1,495 +1,96 @@ diff --git a/ruoyi-ui/src/views/bid/material/index.vue b/ruoyi-ui/src/views/bid/material/index.vue index bd9431f0..1c89cb90 100644 --- a/ruoyi-ui/src/views/bid/material/index.vue +++ b/ruoyi-ui/src/views/bid/material/index.vue @@ -7,6 +7,12 @@ + + + + + 搜索 重置 @@ -26,35 +32,57 @@ - - - + + + + + - - + - - - - - + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + @@ -68,7 +96,7 @@ - +
@@ -81,22 +109,43 @@