diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java index 3e11d0bd..7980be3a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java @@ -160,8 +160,9 @@ public class SysSalesOrderController extends BaseController public AjaxResult exportAll(SysSalesOrderVo sysSalesOrder) { List list = sysSalesOrderService.selectSysSalesOrderAllList(sysSalesOrder); - ExcelUtil util = new ExcelUtil(SysSalesOrderVo.class); - return util.exportExcel(list, "销售订单数据"); + List exportSalesOrderChildVoList = sysSalesOrderService.exportSalesOrderChildListVo(list); + ExcelUtil util = new ExcelUtil(ExportSalesOrderChildVo.class); + return util.exportExcel(exportSalesOrderChildVoList, "销售订单数据"); } @@ -176,8 +177,9 @@ public class SysSalesOrderController extends BaseController public AjaxResult export(@RequestBody String[] salesOrderCodes) { List list = sysSalesOrderService.selectSysSalesOrderListByCodes(salesOrderCodes); - ExcelUtil util = new ExcelUtil(SysSalesOrderVo.class); - return util.exportExcel(list, "销售订单数据"); + List exportSalesOrderChildVoList = sysSalesOrderService.exportSalesOrderChildListVo(list); + ExcelUtil util = new ExcelUtil(ExportSalesOrderChildVo.class); + return util.exportExcel(exportSalesOrderChildVoList, "销售订单数据"); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderChildVo.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderChildVo.java index 14d96bcc..eab363ef 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderChildVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderChildVo.java @@ -2,6 +2,7 @@ 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; @@ -14,57 +15,219 @@ import java.util.Date; public class ExportSalesOrderChildVo { - /*索引*/ - private Integer index; - /** 物料表中的编号 */ + @Excel(name = "销售订单编号") + private String salesOrderCode; + /*订单号码*/ + @Excel(name = "客户订单编号") + private String salesOrderNumber; + @Excel(name = "订单类型", dictType = "sys_order_type") + private String salesOrderType; + /* 客户代码*/ + @Excel(name = "客户代码") + private String enterpriseCode; + /* 客户名称*/ + @Excel(name = "客户名称") + private String enterpriseName; + + /** 出货状态(0待出货通知,1待准备货,2待出货,3部分收货,4全部收货,5部分出货,6全部出货,7部分验收,8全部验收)*/ + @Excel(name = "出货状态", dictType = "sys_delivery_status") + private String deliveryStatus; + + /** 收款结案状态(0待收款,1部分收款,2全部收款,3已结案)*/ + @Excel(name = "收款结案状态", dictType = "sys_close_status") + private String closeStatus; + + /**生产状态(0待评审、1待部门主管确认、2待工程审核、3待生产、4生产中、5部分完成、6全部完成、7采购审核)*/ + @Excel(name = "生产状态", dictType = "sys_erp_makeStatus") + private String makeStatus; + + /** 使用状态 0未使用,1使用,2已作废*/ + @Excel(name = "使用状态", dictType = "useStatus") + private String useStatus; + + /** 审核状态 (0未审核,1审核通过,2审核拒绝)*/ + @Excel(name = "审核状态", dictType = "auditStatus") + private String auditStatus; + + @Excel(name="币种",dictType = "sys_common_currency") + private String commonCurrency; + /*美元汇率*/ + @Excel(name = "美元汇率") + private Double usdTax; + /*税率*/ + @Excel(name = "税率") + private Double taxRate; + /*是否开票*/ + @Excel(name = "是否开票", dictType = "sys_whether") + private String invoice; + + /*事业部*/ + @Excel(name = "事业部") + private String customerPurser; + /*客户电话*/ + @Excel(name = "客户电话") + private String customerPhone; + /*物料合计*/ + @Excel(name = "物料合计") + private Integer materialSum; + /*数量合计*/ + @Excel(name = "数量合计") + private Integer enterpriseSum; + /*不含税单价(RMB)*/ + @Excel(name = "不含税单价(RMB)") + private Double noRmbPrice; + /*不含税总价(RMB)*/ + @Excel(name = "不含税总价(RMB)") + private Double noRmbSum; + /*含税单价(RMB)*/ + @Excel(name = "含税单价(RMB)") + private Double rmbPrice; + /*含税总价(RMB)*/ + @Excel(name = "含税总价(RMB)") + private Double rmbTaxSum; + /*不含税单价(美元)*/ + @Excel(name = "不含税单价(美元)") + private Double noUsdPrice; + /*不含税总价(美元)*/ + @Excel(name = "不含税总价(美元)") + private Double noUsdSum; + + @Excel(name = "含税单价(美元)") + private Double usdPrice; + + @Excel(name = "含税总价(美元)") + private Double usdTaxSum; + + + @Excel(name = "客户收货人") + private String customerDelivery; + + /*客户收货人电话*/ + @Excel(name = "客户收货人电话") + private String deliveryPhone; + + + /* 交货条件*/ + @Excel(name = "交货条件") + private String deliveryConditions; + /* 交货方式*/ + @Excel(name = "交货方式") + private String deliveryMethod; + /*交货地点*/ + @Excel(name = "交货地点") + private String deliveryAddress; + + @Excel(name = "付款条件") + private String paymentTerms; + /*接单方式*/ + @Excel(name = "接单方式") + private String orderReceivingMode; + /* 接单日期*/ + @Excel(name = "接单日期") + private String orderReceivingTime; + /*联系人*/ + @Excel(name = "联系人") + private String customerContact; + /* 联系电话*/ + @Excel(name = "联系电话") + private String contactNumber; + + @Excel(name = "传真号码") + private String customerFax; + + @Excel(name = "邮箱") + private String contactEmail; + + @Excel(name="联系人职务") + private String contactPost; + + @Excel(name = "业务人员") + private String businessMembers; + + + /*贸易条款**/ + @Excel(name = "贸易条款") + private String tradeClause; + + /** 料号 */ + @Excel(name = "料号") private String materialCode; - /** 物料的名称 */ + /** 物料名称 */ + @Excel(name = "物料名称") private String materialName; - //订单数量 - private Integer materialNum; + + /** 物料加工方式 */ + @Excel(name = "物料加工方式", dictType = "processMethod") + private String processMethod; + + + /** 物料型号 */ + @Excel(name = "型号") + private String materialModel; + /** 物料品牌 */ + @Excel(name = "物料品牌") + private String brand; - /** 国内税率 */ - private BigDecimal countTax; + @Excel(name="单位") + private String unit; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String describe; + @Excel(name = "入库部门", dictType = "warehouseDept") + private String warehouseDept; - /** 物料的含税单价 */ - private BigDecimal materialTaxMoney; + + @Excel(name = "物料数量") + private Integer materialNum; + @Excel(name = "物料对外售价") + private Double materialSole; - /** 物料的不含税单价 */ - private BigDecimal materialNoTaxMoney; + /** 物料不含税单价(RMB) */ + @Excel(name = "物料不含税单价(RMB) ") + private Double materialRmb; - /** 物料的含税单价(RMB) */ - private BigDecimal materialRmb; + /** 物料含税单价(RMB) */ + @Excel(name = "物料含税单价(RMB)") + private Double materialNoRmb; - /** 物料的不含税单价(RMB) */ - private BigDecimal materialNoRmb; + /** 物料含税总价(RMB) */ + @Excel(name = "物料含税总价(RMB)") + private Double materialNoRmbSum; - /** 物料的不含税总价(RMB) */ - private BigDecimal materialNoRmbSum; + /** 物料不含税总价(RMB) */ + @Excel(name = "物料不含税总价(RMB)") + private Double materialRmbSum; - /** 物料的含税总价(RMB) */ - private BigDecimal materialRmbSum; + /** 物料不含税单价(USD) */ + @Excel(name = "物料不含税单价(USD)") + private Double materialNoUsd; - /** 物料的不含税单价(USD) */ - private BigDecimal materialNoUsd; + /** 物料含税单价(USD) */ + @Excel(name = "物料含税单价(USD)") + private Double materialUsd; - /** 物料的含税单价(USD) */ - private BigDecimal materialUsd; + /** 物料含税总价(USD) */ + @Excel(name = "物料含税总价(USD)") + private Double materialUsdSum; - /** 物料的含税总价(USD) */ - private BigDecimal materialUsdSum; + /** 物料不含税总价(USD) */ + @Excel(name = "物料不含税总价(USD)") + private Double materialNoUsdSum; - /** 物料的不含税总价(USD) */ - private BigDecimal materialNoUsdSum; - /** 计划交付时间 */ + @Excel(name = "计划交付时间") @JsonFormat(pattern = "yyyy-MM-dd") private Date deliveryTime; + @Excel(name = "质保天数") + private String expiryDay; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java index 0b0a46a3..b9e318d9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java @@ -148,4 +148,9 @@ public interface ISysSalesOrderService * 通过销售订单号集合查询销售订单集合 * */ List selectSysSalesOrderListByCodeList(List salesOrderCodes); + + /** + * 导出销售订单主表和子表详情数据 + * */ + List exportSalesOrderChildListVo(List list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java index 204693f2..6d2124ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.TableSupport; @@ -44,6 +45,7 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -734,6 +736,7 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService SysSalesOrderVo sysSalesOrderVo = sysSalesOrderMapper.selectSysSalesOrderBySalesOrderCode(salesOrderCode); List sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { ExportSalesOrderChildVo exportSalesOrderChildVo = new ExportSalesOrderChildVo(); @@ -744,13 +747,12 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService // 设置税率 BigDecimal countTax = sysSalesOrderChild.getCountTax() != null ? BigDecimal.valueOf(sysSalesOrderChild.getCountTax()) : BigDecimal.ZERO; - exportSalesOrderChildVo.setCountTax(countTax); + // 设置交付时间 exportSalesOrderChildVo.setDeliveryTime(sysSalesOrderChild.getDeliveryTime()); - // 设置价格,根据货币类型 - setMaterialPrice(exportSalesOrderChildVo, sysSalesOrderVo, sysSalesOrderChild); + exportSalesOrderChildVos.add(exportSalesOrderChildVo); } @@ -758,23 +760,23 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService return exportSalesOrderChildVos; } - private void setMaterialPrice(ExportSalesOrderChildVo vo, SysSalesOrderVo sysSalesOrderVo, SysSalesOrderChild child) { - if (RMB.equals(sysSalesOrderVo.getCommonCurrency())) { - // RMB - BigDecimal noTax = child.getMaterialNoRmb() != null ? BigDecimal.valueOf(child.getMaterialNoRmb()) : BigDecimal.ZERO; - BigDecimal tax = child.getMaterialRmb() != null ? BigDecimal.valueOf(child.getMaterialRmb()) : BigDecimal.ZERO; - - vo.setMaterialNoTaxMoney(noTax); - vo.setMaterialTaxMoney(tax); - } else { - // USD - BigDecimal noTax = child.getMaterialNoUsd() != null ? BigDecimal.valueOf(child.getMaterialNoUsd()) : BigDecimal.ZERO; - BigDecimal tax = child.getUsdTax() != null ? BigDecimal.valueOf(child.getUsdTax()) : BigDecimal.ZERO; - - vo.setMaterialNoTaxMoney(noTax); - vo.setMaterialTaxMoney(tax); - } - } +// private void setMaterialPrice(ExportSalesOrderChildVo vo, SysSalesOrderVo sysSalesOrderVo, SysSalesOrderChild child) { +// if (RMB.equals(sysSalesOrderVo.getCommonCurrency())) { +// // RMB +// BigDecimal noTax = child.getMaterialNoRmb() != null ? BigDecimal.valueOf(child.getMaterialNoRmb()) : BigDecimal.ZERO; +// BigDecimal tax = child.getMaterialRmb() != null ? BigDecimal.valueOf(child.getMaterialRmb()) : BigDecimal.ZERO; +// +// vo.setMaterialNoTaxMoney(noTax); +// vo.setMaterialTaxMoney(tax); +// } else { +// // USD +// BigDecimal noTax = child.getMaterialNoUsd() != null ? BigDecimal.valueOf(child.getMaterialNoUsd()) : BigDecimal.ZERO; +// BigDecimal tax = child.getUsdTax() != null ? BigDecimal.valueOf(child.getUsdTax()) : BigDecimal.ZERO; +// +// vo.setMaterialNoTaxMoney(noTax); +// vo.setMaterialTaxMoney(tax); +// } +// } /** @@ -864,10 +866,6 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService List exportSalesOrderChildVoList = showExportSalesOrderChildListByICode(salesOrderCode); AtomicInteger index = new AtomicInteger(1); - exportSalesOrderChildVoList.forEach(exportSalesOrderChildVo -> { - exportSalesOrderChildVo.setIndex(index.getAndIncrement()); - }); - String invoice = sysSalesOrderVo.getInvoice(); if ("1".equals(invoice)){ @@ -912,4 +910,90 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService } } + + + /** + * 导出销售订单主表和子表详情数据 + * */ + @Override + public List exportSalesOrderChildListVo(List list) { + + List collectSalesOrderCodes = list.stream().map(SysSalesOrderVo::getSalesOrderCode).collect(Collectors.toList()); + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(collectSalesOrderCodes); + List exportSalesOrderChildVos = new ArrayList<>(); + Map sysSalesOrderVoMap = list.stream().collect(Collectors.toMap(SysSalesOrderVo::getSalesOrderCode, Function.identity())); + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + ExportSalesOrderChildVo exportSalesOrderChildVo = new ExportSalesOrderChildVo(); + SysSalesOrderVo sysSalesOrderVo = sysSalesOrderVoMap.get(sysSalesOrderChild.getQuoteId()); + exportSalesOrderChildVo.setSalesOrderCode(sysSalesOrderChild.getQuoteId()); + exportSalesOrderChildVo.setSalesOrderType(sysSalesOrderVo.getSalesOrderType()); + exportSalesOrderChildVo.setSalesOrderNumber(sysSalesOrderVo.getSalesOrderNumber()); + exportSalesOrderChildVo.setPaymentTerms(sysSalesOrderVo.getPaymentTerms()); + exportSalesOrderChildVo.setTradeClause(sysSalesOrderVo.getTradeClause()); + exportSalesOrderChildVo.setInvoice(sysSalesOrderVo.getInvoice()); + exportSalesOrderChildVo.setCommonCurrency(sysSalesOrderVo.getCommonCurrency()); + exportSalesOrderChildVo.setCloseStatus(sysSalesOrderVo.getCloseStatus()); + exportSalesOrderChildVo.setBusinessMembers(sysSalesOrderVo.getBusinessMembers()); + exportSalesOrderChildVo.setContactEmail(sysSalesOrderVo.getContactEmail()); + exportSalesOrderChildVo.setContactPost(sysSalesOrderVo.getContactPost()); + exportSalesOrderChildVo.setCustomerDelivery(sysSalesOrderVo.getCustomerDelivery()); + exportSalesOrderChildVo.setCustomerPhone(sysSalesOrderVo.getCustomerPhone()); + exportSalesOrderChildVo.setCustomerFax(sysSalesOrderVo.getCustomerFax()); + exportSalesOrderChildVo.setEnterpriseCode(sysSalesOrderVo.getEnterpriseCode()); + exportSalesOrderChildVo.setEnterpriseName(sysSalesOrderVo.getEnterpriseName()); + exportSalesOrderChildVo.setDeliveryStatus(sysSalesOrderVo.getDeliveryStatus()); + exportSalesOrderChildVo.setMakeStatus(sysSalesOrderVo.getMakeStatus()); + exportSalesOrderChildVo.setAuditStatus(sysSalesOrderVo.getAuditStatus()); + exportSalesOrderChildVo.setUseStatus(sysSalesOrderVo.getUseStatus()); + exportSalesOrderChildVo.setTaxRate(sysSalesOrderVo.getTaxRate()); + exportSalesOrderChildVo.setUsdTax(sysSalesOrderVo.getUsdTax()); + exportSalesOrderChildVo.setCustomerPurser(sysSalesOrderVo.getCustomerPurser()); + exportSalesOrderChildVo.setCustomerPhone(sysSalesOrderVo.getCustomerPhone()); + exportSalesOrderChildVo.setMaterialSum(sysSalesOrderVo.getMaterialSum()); + exportSalesOrderChildVo.setEnterpriseSum(sysSalesOrderVo.getEnterpriseSum()); + exportSalesOrderChildVo.setNoRmbPrice(sysSalesOrderVo.getNoRmbPrice()); + exportSalesOrderChildVo.setRmbPrice(sysSalesOrderVo.getRmbPrice()); + exportSalesOrderChildVo.setNoUsdPrice(sysSalesOrderVo.getNoUsdPrice()); + exportSalesOrderChildVo.setUsdPrice(sysSalesOrderVo.getUsdPrice()); + exportSalesOrderChildVo.setNoRmbSum(sysSalesOrderVo.getNoRmbSum()); + exportSalesOrderChildVo.setRmbTaxSum(sysSalesOrderVo.getRmbTaxSum()); + exportSalesOrderChildVo.setNoUsdSum(sysSalesOrderVo.getNoUsdSum()); + exportSalesOrderChildVo.setUsdTaxSum(sysSalesOrderVo.getUsdTaxSum()); + + exportSalesOrderChildVo.setDeliveryPhone(sysSalesOrderVo.getDeliveryPhone()); + exportSalesOrderChildVo.setDeliveryConditions(sysSalesOrderVo.getDeliveryConditions()); + exportSalesOrderChildVo.setDeliveryMethod(sysSalesOrderVo.getDeliveryMethod()); + exportSalesOrderChildVo.setDeliveryAddress(sysSalesOrderVo.getDeliveryAddress()); + exportSalesOrderChildVo.setOrderReceivingMode(sysSalesOrderVo.getOrderReceivingMode()); + exportSalesOrderChildVo.setOrderReceivingTime(sysSalesOrderVo.getOrderReceivingTime()); + exportSalesOrderChildVo.setCustomerContact(sysSalesOrderVo.getCustomerContact()); + exportSalesOrderChildVo.setContactNumber(sysSalesOrderVo.getContactNumber()); + + exportSalesOrderChildVo.setMaterialCode(sysSalesOrderChild.getMaterialCode()); + exportSalesOrderChildVo.setMaterialName(sysSalesOrderChild.getMaterialName()); + exportSalesOrderChildVo.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + exportSalesOrderChildVo.setUnit(sysSalesOrderChild.getUnit()); + exportSalesOrderChildVo.setProcessMethod(sysSalesOrderChild.getProcessMethod()); + exportSalesOrderChildVo.setBrand(sysSalesOrderChild.getBrand()); + exportSalesOrderChildVo.setDescribe(sysSalesOrderChild.getDescribe()); + exportSalesOrderChildVo.setWarehouseDept(sysSalesOrderChild.getWarehouseDept()); + + exportSalesOrderChildVo.setMaterialSole(sysSalesOrderChild.getMaterialSole()); + exportSalesOrderChildVo.setMaterialRmb(sysSalesOrderChild.getMaterialRmb()); + exportSalesOrderChildVo.setMaterialNoRmb(sysSalesOrderChild.getMaterialNoRmb()); + exportSalesOrderChildVo.setMaterialNoUsd(sysSalesOrderChild.getMaterialNoUsd()); + exportSalesOrderChildVo.setMaterialUsd(sysSalesOrderChild.getMaterialUsd()); + exportSalesOrderChildVo.setMaterialUsdSum(sysSalesOrderChild.getMaterialUsdSum()); + exportSalesOrderChildVo.setMaterialNoUsdSum(sysSalesOrderChild.getMaterialNoUsdSum()); + exportSalesOrderChildVo.setMaterialNoRmbSum(sysSalesOrderChild.getMaterialNoRmbSum()); + exportSalesOrderChildVo.setMaterialRmbSum(sysSalesOrderChild.getMaterialRmbSum()); + exportSalesOrderChildVo.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportSalesOrderChildVo.setDeliveryTime(sysSalesOrderChild.getDeliveryTime()); + exportSalesOrderChildVo.setExpiryDay(sysSalesOrderChild.getExpiryDay()); + exportSalesOrderChildVo.setDeliveryTime(sysSalesOrderChild.getDeliveryTime()); + exportSalesOrderChildVos.add(exportSalesOrderChildVo); + + } + return exportSalesOrderChildVos; + } }