Browse Source

[fix] 销售管理

按照万材调整:
重写导出出货单1模板的后端接口
修改 导出销售出货单模板数据实体类
按照新模板修改出货单1.xlsx文件
dev
liuxiaoxu 3 months ago
parent
commit
0dc7652f2f
  1. 6
      ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java
  2. 52
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java
  3. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx

6
ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java

@ -13,9 +13,7 @@ public class ExportShippingOrderDto {
private String materialName;
private String materialNo;
private String materialDescribe;
private String materialModel;
private String materialUnit;
@ -24,4 +22,6 @@ public class ExportShippingOrderDto {
private String salesOrderNumber;
private String remark;
private String enterpriseMaterialNo;
}

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

@ -624,6 +624,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
public void exportShippingOrderOne(String outOrderCode, HttpServletResponse response) {
String fileName = "销售出货单1.xlsx";
String shippingOrderCode = redisCache.generateBillNo("shd");
try {
String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName);
@ -635,6 +636,21 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode);
String salesOrderCode = salesShippingInform.getSalesOrderCode();
List<String> salesOrderCodes = new ArrayList<>();
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
}
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
HashMap<String, SysSalesOrder> salesOrderHashMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
//销售出货单
String shippingInformationType = "2";
@ -644,33 +660,40 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
List<SysSalesShippingInformDetail> salesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String deliverTime = dateFormat.format(salesShippingInform.getDeliverTime());
String realFileName = salesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx";
// 设置响应头,指定文件名和文件类型
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8"));
response.setContentType("application/octet-stream");
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
AtomicInteger index = new AtomicInteger(1);
//处理物料数据
List<ExportShippingOrderDto> exportShippingOrderDtos = new ArrayList<>();
for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) {
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
SysSalesOrder sysSalesOrder = salesOrderHashMap.get(sysSalesOrderChild.getQuoteId());
ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto();
exportShippingOrderDto.setIndex(index.getAndIncrement());
exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName());
exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo());
exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe());
exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit());
exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum());
exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber());
exportShippingOrderDto.setRemark(salesShippingInform.getRemark());
exportShippingOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingOrderDto.setMaterialUnit(sysSalesOrderChild.getUnit());
exportShippingOrderDto.setMakeNum(sysSalesOrderChild.getMaterialNum());
exportShippingOrderDto.setSalesOrderNumber(sysSalesOrder.getSalesOrderNumber());
exportShippingOrderDto.setRemark(sysSalesOrder.getRemark());
exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrder.getEnterpriseMaterialNo());
exportShippingOrderDtos.add(exportShippingOrderDto);
}
//totalMakeNum
String totalMakeNum = String.valueOf(salesShippingInformDetails.stream().mapToInt(SysSalesShippingInformDetail::getMakeNum).sum());
@ -681,11 +704,14 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String shippingDate = dateFormat.format(new Date());
HashMap<String, Object> map = MapUtils.newHashMap();
map.put("customerId",salesShippingInform.getCustomerId());
map.put("deliverTime",deliverTime);
map.put("businessMembers",salesShippingInform.getBusinessMembers());
map.put("shippingDate",shippingDate);
map.put("totalMakeNum",totalMakeNum);
map.put("shippingOrderCode",shippingOrderCode);
// 写入数据
workBook.fill(map, sheet);
@ -744,8 +770,6 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto();
exportShippingOrderDto.setIndex(index.getAndIncrement());
exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName());
exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo());
exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe());
exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit());
exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum());
exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber());

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

Binary file not shown.
Loading…
Cancel
Save