Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev
王晓迪 2 months ago
parent
commit
2070ff8ba8
  1. 10
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java
  2. 221
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportSalesOrderChildVo.java
  3. 5
      ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java
  4. 132
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java

10
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<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderAllList(sysSalesOrder);
ExcelUtil<SysSalesOrderVo> util = new ExcelUtil<SysSalesOrderVo>(SysSalesOrderVo.class);
return util.exportExcel(list, "销售订单数据");
List<ExportSalesOrderChildVo> exportSalesOrderChildVoList = sysSalesOrderService.exportSalesOrderChildListVo(list);
ExcelUtil<ExportSalesOrderChildVo> util = new ExcelUtil<ExportSalesOrderChildVo>(ExportSalesOrderChildVo.class);
return util.exportExcel(exportSalesOrderChildVoList, "销售订单数据");
}
@ -176,8 +177,9 @@ public class SysSalesOrderController extends BaseController
public AjaxResult export(@RequestBody String[] salesOrderCodes)
{
List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderListByCodes(salesOrderCodes);
ExcelUtil<SysSalesOrderVo> util = new ExcelUtil<SysSalesOrderVo>(SysSalesOrderVo.class);
return util.exportExcel(list, "销售订单数据");
List<ExportSalesOrderChildVo> exportSalesOrderChildVoList = sysSalesOrderService.exportSalesOrderChildListVo(list);
ExcelUtil<ExportSalesOrderChildVo> util = new ExcelUtil<ExportSalesOrderChildVo>(ExportSalesOrderChildVo.class);
return util.exportExcel(exportSalesOrderChildVoList, "销售订单数据");
}

221
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;
}

5
ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderService.java

@ -148,4 +148,9 @@ public interface ISysSalesOrderService
* 通过销售订单号集合查询销售订单集合
* */
List<SysSalesOrder> selectSysSalesOrderListByCodeList(List<String> salesOrderCodes);
/**
* 导出销售订单主表和子表详情数据
* */
List<ExportSalesOrderChildVo> exportSalesOrderChildListVo(List<SysSalesOrderVo> list);
}

132
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<SysSalesOrderChild> 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<ExportSalesOrderChildVo> 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<ExportSalesOrderChildVo> exportSalesOrderChildListVo(List<SysSalesOrderVo> list) {
List<String> collectSalesOrderCodes = list.stream().map(SysSalesOrderVo::getSalesOrderCode).collect(Collectors.toList());
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(collectSalesOrderCodes);
List<ExportSalesOrderChildVo> exportSalesOrderChildVos = new ArrayList<>();
Map<String, SysSalesOrderVo> 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;
}
}

Loading…
Cancel
Save