diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java index adaa89b9..ac9a0440 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java @@ -8,6 +8,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.system.domain.OutsourceQuote; import com.ruoyi.system.domain.OutsourceQuoteChild; +import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.mapper.OutsourceQuoteMapper; import com.ruoyi.system.service.IOutsourceProcessService; @@ -100,14 +101,20 @@ public class OutsourceQuoteController extends BaseController public AjaxResult export(OutsourceQuoteVO outsourceQuoteVO, String ids) { if (StringUtils.isEmpty(ids)){ - List quoteChildren = outsourceQuoteMapper.selectOutsourceQuoteChildList(); - ExcelUtil util = new ExcelUtil(OutsourceQuoteChild.class); - return util.exportExcel(quoteChildren, "委外报价数据"); + + List list = outsourceQuoteService.selectOutsourceQuoteList(outsourceQuoteVO); + List exportOutsourceQuoteVOs = outsourceQuoteService.exportOutsourceQuoteList(list); + + + ExcelUtil util = new ExcelUtil(ExportOutsourceQuoteVO.class); + return util.exportExcel(exportOutsourceQuoteVOs, "委外报价数据"); }else { String[] quoteCodes = ids.split(","); - List quoteChildren = outsourceQuoteMapper.selectOutsourceQuoteChildByCodes(quoteCodes); - ExcelUtil util = new ExcelUtil(OutsourceQuoteChild.class); - return util.exportExcel(quoteChildren, ids); + List list = outsourceQuoteService.selectOutsourceQuoteListByCodes(quoteCodes); + List exportOutsourceQuoteVOs = outsourceQuoteService.exportOutsourceQuoteList(list); + + ExcelUtil util = new ExcelUtil(ExportOutsourceQuoteVO.class); + return util.exportExcel(exportOutsourceQuoteVOs, "委外报价数据"); } } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceQuoteVO.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceQuoteVO.java new file mode 100644 index 00000000..b551410f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceQuoteVO.java @@ -0,0 +1,76 @@ +package com.ruoyi.system.domain.Vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; + +/** +* 导出委外报价明细 +* */ +@Data +public class ExportOutsourceQuoteVO { + + /** 委外报价单号 */ + @Excel(name = "委外报价单号",sort = 1) + private String outsourceQuoteCode; + + /** 供应商编号 */ + @Excel(name = "供应商ID",sort = 2) + private String supplierQuoteCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称",sort = 3) + private String supplierName; + + /** 工序合计 */ + @Excel(name = "工序合计",sort = 4) + private int processAmount; + + /** 税率 */ +// @Excel(name = "税率") + private BigDecimal taxRate; + + /** 定价日期 */ + @Excel(name = "定价日期",dateFormat = "yyyy-MM-dd",sort = 5) + @JsonFormat(pattern = "yyyy-MM-dd") + private String pricingDate; + + /** 审核状态 */ + @Excel(name = "审核状态",sort = 8,dictType = "auditStatus") + private String auditStatus; + + + /** 委外工序ID */ + @Excel(name = "委外工序ID",sort = 4) + private String outsourceProcessCode; + + /** 委外工序编号 */ + @Excel(name = "委外工序编号",sort = 5) + private String outsourceProcessNo; + + /** 委外工序名称 */ + @Excel(name = "委外工序名称",sort = 6) + private String outsourceProcessName; + + + /** 工序的不含税单价(RMB) */ + @Excel(name = "工序的含税单价(RMB) ",sort = 10) + private BigDecimal materialRmb; + + /** 工序的含税单价(RMB) */ + @Excel(name = "工序的不含税单价(RMB)",sort = 9) + private BigDecimal materialNormb; + + /** 供应商编号 */ + @Excel(name = "供应商编号",sort = 2) + private String supplierCode; + + + /** 计价单位 */ + @Excel(name = "计价单位",sort = 8,dictType = "outsource_quote_unit") + private String chargeUnit; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java index 3fead3f1..050195e6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java @@ -115,4 +115,14 @@ public interface OutsourceQuoteMapper public List selectQuoteChildListByProcessNo(String outsourceProcessNo); public List selectOutsourceQuoteChildByCodes(String[] outsourceQuoteCodes); + + /** + * 通过委外报价单号查询委外报价工序信息 + * */ + List selectOutsourceQuoteChildListByCodeList(List collectOutsourceQuoteCodes); + + /** + * 通过委外报价单号查询委外报价信息 + * */ + List selectOutsourceQuoteListByCodes(String[] quoteCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceQuoteService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceQuoteService.java index 5935b71b..4cd8a734 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceQuoteService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceQuoteService.java @@ -2,6 +2,7 @@ package com.ruoyi.system.service; import com.ruoyi.aftersales.domain.AftersalesOrder; import com.ruoyi.system.domain.OutsourceQuote; +import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import org.activiti.engine.runtime.ProcessInstance; @@ -86,4 +87,13 @@ public interface IOutsourceQuoteService // 更新审核后信息 public int updateAuditOutsourceQuote(OutsourceQuoteVO outsourceQuoteVO); + /** + * 导出委外报价明细 + * */ + List exportOutsourceQuoteList(List list); + + /** + * 根据报价单编号查询所有报价单信息 + * */ + List selectOutsourceQuoteListByCodes(String[] quoteCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java index 47ccad2c..5bda1cef 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java @@ -1,9 +1,8 @@ package com.ruoyi.system.service.impl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +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; @@ -18,6 +17,7 @@ import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.system.domain.OutsourceQuote; import com.ruoyi.system.domain.OutsourceQuoteChild; +import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.mapper.OutsourceQuoteMapper; import com.ruoyi.system.mapper.SysUserMapper; @@ -321,6 +321,64 @@ public class OutsourceQuoteServiceImpl implements IOutsourceQuoteService } + /** + * 根据报价单编号查询所有报价单信息 + * */ + @Override + public List selectOutsourceQuoteListByCodes(String[] quoteCodes) { + + return outsourceQuoteMapper.selectOutsourceQuoteListByCodes(quoteCodes); + } + + /** + * 导出委外报价明细 + * */ + @Override + public List exportOutsourceQuoteList(List list) { + // 获取所有的委外报价单号 + List collectOutsourceQuoteCodes = list.stream().map(OutsourceQuoteVO::getOutsourceQuoteCode).collect(Collectors.toList()); + + // 根据委外报价单号查询对应的子项列表 + List outsourceQuoteChildren = outsourceQuoteMapper.selectOutsourceQuoteChildListByCodeList(collectOutsourceQuoteCodes); + + // 创建一个委外报价单VO的Map,键为委外报价单号 + Map outsourceQuoteVOMap = list.stream() + .collect(Collectors.toMap(OutsourceQuoteVO::getOutsourceQuoteCode, Function.identity())); + + // 初始化导出列表 + List exportOutsourceQuoteVOS = new ArrayList<>(); + + for (OutsourceQuoteChild child : outsourceQuoteChildren) { + ExportOutsourceQuoteVO exportVo = new ExportOutsourceQuoteVO(); + + // 从OutsourceQuoteChild填充数据 + exportVo.setOutsourceProcessCode(child.getOutsourceProcessCode()); + exportVo.setOutsourceProcessNo(child.getOutsourceProcessNo()); + exportVo.setOutsourceProcessName(child.getOutsourceProcessName()); + exportVo.setMaterialRmb(child.getMaterialRmb()); + exportVo.setMaterialNormb(child.getMaterialNormb()); + exportVo.setSupplierCode(child.getSupplierCode()); + exportVo.setChargeUnit(child.getChargeUnit()); + + // 从OutsourceQuoteVO填充数据,通过委外报价单号进行关联 + OutsourceQuoteVO quote = outsourceQuoteVOMap.get(child.getOutsourceQuoteCode()); + if (quote != null) { + exportVo.setOutsourceQuoteCode(quote.getOutsourceQuoteCode()); + exportVo.setSupplierQuoteCode(quote.getSupplierQuoteCode()); + exportVo.setSupplierName(quote.getSupplierName()); + exportVo.setProcessAmount(quote.getProcessAmount()); + exportVo.setTaxRate(quote.getTaxRate()); + exportVo.setPricingDate(quote.getPricingDate()); + exportVo.setAuditStatus(quote.getAuditStatus()); + } + + // 添加到结果列表 + exportOutsourceQuoteVOS.add(exportVo); + } + + return exportOutsourceQuoteVOS; + } + /** * 创建委外报价审核流程 * @param applyTitle diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml index 21b90e48..3af04cb3 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml @@ -79,6 +79,14 @@ where outsource_quote_id = #{outsourceQuoteId} + + + + insert into outsource_quote @@ -223,4 +233,13 @@ #{OutsourceQuoteCode} + + + \ No newline at end of file