diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java index 7189ded2..bd196d7c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java @@ -13,6 +13,7 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.purchase.domain.PurchaseQuoteChild; import com.ruoyi.purchase.domain.PurchaseQuoteHistory; +import com.ruoyi.purchase.domain.Vo.ExportPurchaseQuoteChildVo; import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService; import com.ruoyi.system.domain.SysCustomerQuoteHistory; @@ -126,6 +127,23 @@ public class PurchaseQuoteController extends BaseController } + /** + * 导出采购报价单列表 + */ + @RequiresPermissions("purchase:purchaseQuote:export") + + @PostMapping("/exportAll") + @ResponseBody + public AjaxResult exportAll(PurchaseQuote purchaseQuote) + { + List purchaseQuoteList = purchaseQuoteService.selectPurchaseQuoteList2(purchaseQuote); + + List list = purchaseQuoteService.getExportPurchaseQuoteChildVoList(purchaseQuoteList); + ExcelUtil util = new ExcelUtil(ExportPurchaseQuoteChildVo.class); + return util.exportExcel(list, "采购报价单数据"); + } + + /** @@ -135,10 +153,11 @@ public class PurchaseQuoteController extends BaseController @PostMapping("/export") @ResponseBody - public AjaxResult export(PurchaseQuote purchaseQuote) + public AjaxResult export(@RequestBody String[] purchaseQuoteCodes) { - List list = purchaseQuoteService.selectPurchaseQuoteList2(purchaseQuote); - ExcelUtil util = new ExcelUtil(PurchaseQuote.class); + List purchaseQuoteList = purchaseQuoteService.selectPurchaseQuoteListByCodes(purchaseQuoteCodes); + List list = purchaseQuoteService.getExportPurchaseQuoteChildVoList(purchaseQuoteList); + ExcelUtil util = new ExcelUtil(ExportPurchaseQuoteChildVo.class); return util.exportExcel(list, "采购报价单数据"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuote.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuote.java index 6ca8b56c..1d82d997 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuote.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuote.java @@ -72,6 +72,9 @@ public class PurchaseQuote extends BaseEntity @Excel(name = "使用状态") private String useStatus; + /** 创建时间*/ + private Date createTime; + //图片索引id private Long photoAttachId; @@ -361,6 +364,16 @@ public class PurchaseQuote extends BaseEntity this.applyTime = applyTime; } + @Override + public Date getCreateTime() { + return createTime; + } + + @Override + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseQuoteChildVo.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseQuoteChildVo.java new file mode 100644 index 00000000..1854af1d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/Vo/ExportPurchaseQuoteChildVo.java @@ -0,0 +1,78 @@ +package com.ruoyi.purchase.domain.Vo; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + + +/** +* 导出采购报价单详情模板 +* */ +@Data +public class ExportPurchaseQuoteChildVo { + + + /** 采购报价单号 */ + @Excel(name = "采购报价单号") + private String purchaseQuoteCode; + + /** 创建时间*/ + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd") + private Date createTime; + + /** 供应商ID */ + @Excel(name = "供应商ID") + private String supplierQuoteCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称") + private String supplierName; + + /** 税率 */ + @Excel(name = "税率") + private Double taxRate; + + /** 定价日期 */ + @Excel(name = "定价日期") + private String pricingDate; + + + /** 物料表中的编号 */ + @Excel(name = "料号") + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 物料加工方式 */ + @Excel(name = "物料加工方式",dictType = "processMethod") + private String processMethod; + + /** 物料品牌 */ + @Excel(name = "物料品牌") + private String brand; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String describe; + + /** 物料数量 */ + @Excel(name = "物料数量") + private Long materialNum; + + /** 物料对外报价 */ + @Excel(name = "物料对外报价") + private BigDecimal materialSole; + + /** 物料不含税单价(RMB) */ + @Excel(name = "物料不含税单价(RMB)") + private BigDecimal materialRmb; + + /** 物料含税单价(RMB) */ + @Excel(name = "物料含税单价(RMB)") + private BigDecimal materialNoRmb; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteMapper.java index 17ef3560..3355970f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteMapper.java @@ -116,4 +116,8 @@ public interface PurchaseQuoteMapper * */ List selectPurchaseQuoteAllList(); + /** + * 根据采购报价单编号批量查询采购报价单 + * */ + List selectPurchaseQuoteListByCodes(String[] purchaseQuoteCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java index 51f5a5bf..bca475bd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteChildService.java @@ -82,4 +82,9 @@ public interface IPurchaseQuoteChildService int restorePurchaseQuoteChildById(Long purchaseQuoteChildId); List selectQuoteChildByMaterialCode(String materialCode); + + /** + * 根据报价单号查询报价单子表物料信息 + * */ + List selectQuoteChildListByQuoteCode(List purchaseQuoteCodeList); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java index 6f2bd4af..d62777e6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java @@ -1,6 +1,7 @@ package com.ruoyi.purchase.service; import com.github.pagehelper.Page; +import com.ruoyi.purchase.domain.Vo.ExportPurchaseQuoteChildVo; import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; import com.ruoyi.purchase.domain.PurchaseQuote; import org.activiti.engine.runtime.ProcessInstance; @@ -99,4 +100,14 @@ public interface IPurchaseQuoteService * 导入采购报价单 * */ String importPurchaseQuote(List purchaseQuoteList, boolean updateSupport, String operName); + + /** + * 导出采购报价单导出详情页面的数据+单号+单据创建时间 + * */ + List getExportPurchaseQuoteChildVoList(List purchaseQuotes); + + /** + * 根据采购报价单号批量查询采购报价单 + * */ + List selectPurchaseQuoteListByCodes(String[] purchaseQuoteCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteChildServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteChildServiceImpl.java index 7f9f3bec..056dde56 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteChildServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteChildServiceImpl.java @@ -133,4 +133,12 @@ public class PurchaseQuoteChildServiceImpl implements IPurchaseQuoteChildService public List selectQuoteChildByMaterialCode(String materialCode) { return purchaseQuoteChildMapper.selectQuoteChildByMaterialCode(materialCode); } + + /** + * 根据报价单号查询报价单子表物料信息 + * */ + @Override + public List selectQuoteChildListByQuoteCode(List purchaseQuoteCodeList) { + return purchaseQuoteChildMapper.selectPurchaseQuoteChildListByQuoteCodeList(purchaseQuoteCodeList); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java index b145b3da..13fcbd0b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java @@ -1,6 +1,8 @@ package com.ruoyi.purchase.service.impl; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; import com.github.pagehelper.Page; import com.ruoyi.common.core.domain.entity.SysUser; @@ -12,13 +14,13 @@ import com.ruoyi.common.service.ICommonService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.purchase.domain.PurchaseQuoteHistory; +import com.ruoyi.purchase.domain.*; +import com.ruoyi.purchase.domain.Vo.ExportPurchaseQuoteChildVo; import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService; import com.ruoyi.system.domain.SysAttach; -import com.ruoyi.purchase.domain.PurchaseQuoteChild; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysAttachFileService; import com.ruoyi.system.service.ISysAttachService; @@ -32,7 +34,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.purchase.mapper.PurchaseQuoteMapper; -import com.ruoyi.purchase.domain.PurchaseQuote; import com.ruoyi.purchase.service.IPurchaseQuoteService; import com.ruoyi.common.core.text.Convert; import org.springframework.transaction.annotation.Transactional; @@ -164,12 +165,18 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService @Override public Page selectPurchaseQuoteList2(PurchaseQuote purchaseQuote){ - PageDomain pageDomain = TableSupport.buildPageRequest(); - Integer pageNum = pageDomain.getPageNum(); - Integer pageSize = pageDomain.getPageSize(); Page list = purchaseQuoteMapper.selectPurchaseQuoteList2(purchaseQuote); return list; } + + /** + * 根据采购报价单编号批量查询采购报价单 + * */ + @Override + public List selectPurchaseQuoteListByCodes(String[] purchaseQuoteCodes) { + return purchaseQuoteMapper.selectPurchaseQuoteListByCodes(purchaseQuoteCodes); + } + /** * 新增采购报价单 * @@ -527,4 +534,51 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService return successMsg.toString(); } + + /** + * 导出采购报价单 + * */ + @Override + public List getExportPurchaseQuoteChildVoList(List purchaseQuotes) { + + if (!CollectionUtils.isEmpty(purchaseQuotes)){ + List exportPurchaseQuoteChildVoList = new ArrayList<>(); + List purchaseQuoteCodeList = purchaseQuotes.stream().map(PurchaseQuote::getPurchaseQuoteCode).collect(Collectors.toList()); + List purchaseQuoteChildList = purchaseQuoteChildService.selectQuoteChildListByQuoteCode(purchaseQuoteCodeList); + // 创建一个 map 用于快速查找主表数据 + Map purchaseQuoteMap = purchaseQuotes.stream() + .collect(Collectors.toMap(PurchaseQuote::getPurchaseQuoteCode, Function.identity())); + + // 创建一个 map 用于快速查找子表数据 + Map> purchaseQuoteChildMap = purchaseQuoteChildList.stream() + .collect(Collectors.groupingBy(PurchaseQuoteChild::getPurchaseQuoteCode)); + + for (PurchaseQuoteChild purchaseQuoteChild : purchaseQuoteChildList) { + ExportPurchaseQuoteChildVo exportPurchaseQuoteChildVo = new ExportPurchaseQuoteChildVo(); + PurchaseQuote purchaseQuote = purchaseQuoteMap.get(purchaseQuoteChild.getPurchaseQuoteCode()); + exportPurchaseQuoteChildVo.setPurchaseQuoteCode(purchaseQuoteChild.getPurchaseQuoteCode()); + exportPurchaseQuoteChildVo.setCreateTime(purchaseQuote.getCreateTime()); + exportPurchaseQuoteChildVo.setSupplierQuoteCode(purchaseQuote.getSupplierQuoteCode()); + exportPurchaseQuoteChildVo.setSupplierName(purchaseQuote.getSupplierName()); + exportPurchaseQuoteChildVo.setTaxRate(purchaseQuote.getTaxRate()); + exportPurchaseQuoteChildVo.setPricingDate(purchaseQuote.getPricingDate()); + exportPurchaseQuoteChildVo.setMaterialCode(purchaseQuoteChild.getMaterialCode()); + exportPurchaseQuoteChildVo.setMaterialName(purchaseQuoteChild.getMaterialName()); + exportPurchaseQuoteChildVo.setProcessMethod(purchaseQuoteChild.getProcessMethod()); + exportPurchaseQuoteChildVo.setBrand(purchaseQuoteChild.getBrand()); + exportPurchaseQuoteChildVo.setDescribe(purchaseQuoteChild.getDescribe()); + exportPurchaseQuoteChildVo.setMaterialNum(purchaseQuoteChild.getMaterialNum()); + exportPurchaseQuoteChildVo.setMaterialSole(purchaseQuoteChild.getMaterialSole()); + exportPurchaseQuoteChildVo.setMaterialRmb(purchaseQuoteChild.getMaterialRmb()); + exportPurchaseQuoteChildVo.setMaterialNoRmb(purchaseQuoteChild.getMaterialNoRmb()); + exportPurchaseQuoteChildVoList.add(exportPurchaseQuoteChildVo); + + } + return exportPurchaseQuoteChildVoList; + + } + + + return Collections.emptyList(); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteMapper.xml index 129d3212..01f65be3 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteMapper.xml @@ -123,14 +123,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and p.create_time between #{params.beginCreateTime} and #{params.endCreateTime} and p.audit_status = #{auditStatus} and p.use_status = #{useStatus} - and p.instance_id = #{instanceId} - and p.instance_type = #{instanceType} - and p.submit_instance_id = #{submitInstanceId} - and p.cancel_instance_id = #{cancelInstanceId} - and p.restore_instance_id = #{restoreInstanceId} - and p.apply_title = #{applyTitle} - and p.apply_user = #{applyUser} - and p.apply_time = #{applyTime} and p.create_time between #{params.beginCreateTime} and #{params.endCreateTime} @@ -165,6 +157,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where audit_status = '1' and use_status = '1' + + + insert into purchase_quote diff --git a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html index dd12d6ef..255e9c34 100644 --- a/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html +++ b/ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html @@ -66,7 +66,7 @@ 添加 - + 导出 @@ -203,6 +203,64 @@ }; $.table.init(options); }); + + + // 导出 + function exportExcel(formId) { + // $.table.set(); + var purchaseQuoteCodeData = []; + var selections = $("#bootstrap-table").bootstrapTable("getSelections"); + if(selections.length === 0){ + $.modal.confirm("确定导出所有采购报价单吗?", function() { + var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId; + var params = $("#bootstrap-table").bootstrapTable('getOptions'); + var dataParam = $("#" + currentId).serializeArray(); + dataParam.push({ "name": "orderByColumn", "value": params.sortName }); + dataParam.push({ "name": "isAsc", "value": params.sortOrder }); + $.modal.loading("正在导出数据,请稍后..."); + $.post(prefix + '/exportAll', dataParam, function(result) { + if (result.code == web_status.SUCCESS) { + window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true; + } else if (result.code == web_status.WARNING) { + $.modal.alertWarning(result.msg) + } else { + $.modal.alertError(result.msg); + } + $.modal.closeLoading(); + }); + }); + }else { + $.modal.confirm("确定导出选中的所有采购报价单吗?", function () { + //·拼接单号 + for(let i=0;i \ No newline at end of file