Browse Source

[fix] 销售管理

按照万材调整:
重写导出出货发票1模板的后端接口
修改 导出销售出货发票模板数据实体类
按照新模板修改出货发票1.xlsx文件
重写导出出货发票2模板的后端接口
按照新模板修改出货发票2.xlsx文件
dev
liuxiaoxu 3 months ago
parent
commit
cbc673daf3
  1. 7
      ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java
  2. 153
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java
  3. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx
  4. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx
  5. 4
      ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html

7
ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java

@ -15,12 +15,15 @@ public class ExportShippingInvoiceDto {
private String materialName;
private String materialModel;
private String makeNo;
private Integer materialNum;
private BigDecimal materialUsd;
private String materialAmount;
private BigDecimal materialUsdSum;
private String materialAmountSum;
private String total;
}

153
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java

@ -1075,51 +1075,83 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform);
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode);
List<String> salesOrderCodes = new ArrayList<>();
String makeNo = sysMakeOrder.getMakeNo();
if (!StringUtils.isEmpty(makeNo)){
List<AfterSalesShippingDevice> afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo);
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
}
Map<String, Object> map = new HashMap<>();
map.put("customerContact",sysSalesShippingInform.getCustomerContact());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto());
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto());
//生产订主表的数据
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
//销售订单主表的数据
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
//获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
Map<String, SysSalesOrder> salesOrderMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
ArrayList<ExportShippingInvoiceDto> exportShippingInvoiceDtos = new ArrayList<>();
AtomicInteger index = new AtomicInteger(1);
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto();
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId());
exportShippingInvoiceDto.setIndex(index.getAndIncrement());
exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingInvoiceDto.setMaterialNum(1);
exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum());
exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo());
if (sysSalesOrderChild.getMaterialUsd() != null) {
exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd()));
} else {
// 如果 materialUsd 为 null,可以设置为默认值或者保持不变
exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0
}
if ("1".equals(sysSalesOrder.getCommonCurrency())){
String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString();
String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString();
exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB");
exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB");
if (sysSalesOrderChild.getMaterialUsdSum() != null) {
exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum()));
} else {
// 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变
exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0
String materialNoUsd = sysSalesOrderChild.getMaterialNoUsd().toString();
String materialNoUsdSum = sysSalesOrderChild.getMaterialNoUsdSum().toString();
exportShippingInvoiceDto.setMaterialAmount(materialNoUsd + "USD");
exportShippingInvoiceDto.setMaterialAmountSum(materialNoUsdSum + "USD");
}
exportShippingInvoiceDto.setMakeNo(makeNo);
// to do 缺少物料型号
exportShippingInvoiceDtos.add(exportShippingInvoiceDto);
}
Map<String, Object> map = new HashMap<>();
map.put("customerContact",sysSalesShippingInform.getCustomerContact());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto());
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto());
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
@ -1163,50 +1195,79 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform);
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode);
List<String> salesOrderCodes = new ArrayList<>();
String makeNo = sysMakeOrder.getMakeNo();
if (!StringUtils.isEmpty(makeNo)){
List<AfterSalesShippingDevice> afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo);
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
}
Map<String, Object> map = new HashMap<>();
map.put("customerContact",sysSalesShippingInform.getCustomerContact());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto());
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto());
//生产订主表的数据
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
//销售订单主表的数据
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
//获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
Map<String, SysSalesOrder> salesOrderMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
ArrayList<ExportShippingInvoiceDto> exportShippingInvoiceDtos = new ArrayList<>();
AtomicInteger index = new AtomicInteger(1);
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto();
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId());
exportShippingInvoiceDto.setIndex(index.getAndIncrement());
exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingInvoiceDto.setMaterialNum(1);
exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum());
exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo());
if (sysSalesOrderChild.getMaterialUsd() != null) {
exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd()));
} else {
// 如果 materialUsd 为 null,可以设置为默认值或者保持不变
exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0
}
if ("1".equals(sysSalesOrder.getCommonCurrency())){
String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString();
String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString();
exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB");
exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB");
if (sysSalesOrderChild.getMaterialUsdSum() != null) {
exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum()));
} else {
// 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变
exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0
String materialNoUsd = sysSalesOrderChild.getMaterialNoUsd().toString();
String materialNoUsdSum = sysSalesOrderChild.getMaterialNoUsdSum().toString();
exportShippingInvoiceDto.setMaterialAmount(materialNoUsd + "USD");
exportShippingInvoiceDto.setMaterialAmountSum(materialNoUsdSum + "USD");
}
exportShippingInvoiceDto.setMakeNo(makeNo);
// to do 缺少物料型号
exportShippingInvoiceDtos.add(exportShippingInvoiceDto);
}
Map<String, Object> map = new HashMap<>();
map.put("customerContact",sysSalesShippingInform.getCustomerContact());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto());
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto());
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().build();

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx

Binary file not shown.

4
ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html

@ -524,7 +524,7 @@
const row = selectedRows[0];
// 使用 $.modal.confirm 显示确认对话框
$.modal.confirm("确定导出这条数据的出货吗?", function() {
$.modal.confirm("确定导出这条数据的出货发票1吗?", function() {
// 如果用户点击确定,继续导出
var outOrderCode = row.outOrderCode;
window.location.href = prefix + "/exportShippingInvoiceOne/" + outOrderCode;
@ -546,7 +546,7 @@
const row = selectedRows[0];
// 使用 $.modal.confirm 显示确认对话框
$.modal.confirm("确定导出这条数据的出货吗?", function() {
$.modal.confirm("确定导出这条数据的出货发票吗?", function() {
// 如果用户点击确定,继续导出
var outOrderCode = row.outOrderCode;
window.location.href = prefix + "/exportShippingInvoiceTwo/" + outOrderCode;

Loading…
Cancel
Save