Browse Source

库存入库导出、数据库数据添加

master
fkf 2 years ago
parent
commit
3a5b08af8c
  1. 1
      yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/instock/InStock.java
  2. 59
      yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/pushinstockdata/PushInStockData.java
  3. 292
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/instock/InStockService.java
  4. 191
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java
  5. 13
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataMapper.java
  6. 15
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataRest.java
  7. 17
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataService.java

1
yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/instock/InStock.java

@ -55,4 +55,5 @@ public class InStock {
private String source_name;
@ApiModelProperty("来源类型")
private String source_type;
private String time;
}

59
yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/pushinstockdata/PushInStockData.java

@ -0,0 +1,59 @@
package com.yxt.supervise.gf.api.pushinstockdata;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author feikefei
* @create 2023-07-21-15:00
*/
@Data
@ApiModel(value = "货物入库监管数据明细表(推送数据)")
@TableName("push_in_stock_data")
public class PushInStockData {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("物料名称")
private String materiel_name;
@ApiModelProperty("品牌")
private String brand_name;
@ApiModelProperty("物料编号")
private String materiel_no;
@ApiModelProperty("批次号")
private String batch_number;
@ApiModelProperty("物料组")
private String materiel_group_text;
@ApiModelProperty("本次操作数量")
private Integer num;
@ApiModelProperty("单价")
private Double price;
@ApiModelProperty("批次总金额")
private Double actual_price;
@ApiModelProperty("物料单位")
private String unit;
@ApiModelProperty("经办人")
private String admin_name;
@ApiModelProperty("仓库名称")
private String storehouse_name;
@ApiModelProperty("申请时间")
private String happen_time;
@ApiModelProperty("类型")
private String type;
@ApiModelProperty("类型明文")
private String type_text;
@ApiModelProperty("审核状态")
private String status;
@ApiModelProperty("原数量")
private Integer orig_num;
@ApiModelProperty("更新后的数量")
private Integer new_num;
@ApiModelProperty("创建时间")
private String create_time;
@ApiModelProperty("来源名称")
private String source_name;
@ApiModelProperty("来源类型")
private String source_type;
private String time;
}

292
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/instock/InStockService.java

@ -12,16 +12,17 @@ import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.gf.api.instock.InStock;
import com.yxt.supervise.gf.api.instock.InStockQuery;
import com.yxt.supervise.gf.api.instock.InStockVo;
import com.yxt.supervise.gf.api.pushinventorydata.PushInventoryData;
import com.yxt.supervise.gf.api.pushinstockdata.PushInStockData;
import com.yxt.supervise.gf.biz.pushinstockdata.PushInStockDataService;
import com.yxt.supervise.gf.shanhai.ShRequester;
import com.yxt.supervise.gf.shanhai.req.In_stockGetRecordMaterielList;
import com.yxt.supervise.gf.shanhai.resp.BaseResponse;
import com.yxt.supervise.gf.shanhai.resp.BaseResponseListObj;
import com.yxt.supervise.gf.shanhai.resp.InStockGetRecordMaterielList;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@ -42,6 +43,8 @@ public class InStockService extends ServiceImpl<InStockMapper, InStock> {
@Value("${import.filePath}")
private String filePath;
@Autowired
private PushInStockDataService pushInStockDataService;
public ResultBean save(In_stockGetRecordMaterielList reqParams){
ResultBean rb = ResultBean.fireFail();
@ -53,6 +56,7 @@ public class InStockService extends ServiceImpl<InStockMapper, InStock> {
for (InStockGetRecordMaterielList inStockGetRecordMaterielList : list) {
InStock inStock = new InStock();
BeanUtil.copyProperties(inStockGetRecordMaterielList,inStock);
inStock.setTime(DateUtil.format(new Date(), "yyyy-MM-dd"));
baseMapper.insert(inStock);
}
Map<String, List<InStockGetRecordMaterielList>> listMap = list.stream().collect(Collectors.groupingBy(it -> it.getStorehouse_name()));
@ -65,6 +69,12 @@ public class InStockService extends ServiceImpl<InStockMapper, InStock> {
filterValue = value.stream().filter(t -> t.getMateriel_group_text().equals("组件") || t.getMateriel_group_text().equals("逆变器")).collect(Collectors.toList());
if (filterValue.size() != 0){
map.put(stringListEntry.getKey(),filterValue);
for (InStockGetRecordMaterielList inStockGetRecordMaterielList : filterValue) {
PushInStockData pushInStockData = new PushInStockData();
BeanUtil.copyProperties(inStockGetRecordMaterielList,pushInStockData,"id");
pushInStockData.setTime(DateUtil.format(new Date(), "yyyy-MM-dd"));
pushInStockDataService.save(pushInStockData);
}
}
}
}
@ -82,8 +92,122 @@ public class InStockService extends ServiceImpl<InStockMapper, InStock> {
Date date = new Date();
XSSFWorkbook wb = new XSSFWorkbook();
List<Map<String, Object>> listMap1 = new ArrayList<>();//存储汇总数据
map1.forEach((k,v) -> {
HashMap<String, Object> mapCount = new HashMap<>();
Integer sumCount = v.stream().mapToInt(it -> Integer.parseInt(it.getNum())).sum();
Double priceCount = v.stream().mapToDouble(it -> Integer.parseInt(it.getNum()) * Double.parseDouble(it.getPrice())).sum();
mapCount.put("name",k);
mapCount.put("sumCount",sumCount);
mapCount.put("priceCount",priceCount);
listMap1.add(mapCount);
});
//汇总工作簿
String[] collectHead = {"序号","仓库名称","物料数量","核算的价值"};
Sheet stuSheet1 = wb.createSheet("货物入库质押汇总表");
Row headRow1 = stuSheet1.createRow(0); //第一行为头
Font head11 = wb.createFont();
head11.setFontHeightInPoints((short) 25);
CellStyle cellStylehz = wb.createCellStyle();
cellStylehz.setFont(head11);
cellStylehz.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
cellStylehz.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
CellRangeAddress callRangeAddress22 = new CellRangeAddress(0,0,0,collectHead.length-1);
CellRangeAddress callRangeAddress1g = new CellRangeAddress(1,1,0,collectHead.length-1);
CellRangeAddress callRangeAddress2 = new CellRangeAddress(2,2,0,collectHead.length-1);
Cell cell15 = headRow1.createCell(0);
cell15.setCellStyle(cellStylehz);
cell15.setCellValue("货物入库质押汇总表");
stuSheet1.addMergedRegion(callRangeAddress22);
Row headRowOnehz = stuSheet1.createRow(1);
Cell headCellhz = headRowOnehz.createCell(0);
headCellhz.setCellValue("编号:");
stuSheet1.addMergedRegion(callRangeAddress1g);
Row headRowTwohz = stuSheet1.createRow(2);
Cell headCellTwohz = headRowTwohz.createCell(0);
headCellTwohz.setCellValue("上报日期:" + sdf1.format(date));
stuSheet1.addMergedRegion(callRangeAddress2);
//获取表头行
Row titleRowhz = stuSheet1.createRow(3);
CellStyle stylehz = wb.createCellStyle();
Font font = wb.createFont();
font.setFontHeightInPoints((short) 16);
stylehz.setVerticalAlignment(VerticalAlignment.CENTER);
stylehz.setAlignment(HorizontalAlignment.CENTER);
stylehz.setBorderBottom(BorderStyle.THIN); //下边框
stylehz.setBorderLeft(BorderStyle.THIN);//左边框
stylehz.setBorderTop(BorderStyle.THIN);//上边框
stylehz.setBorderRight(BorderStyle.THIN);//右边框
stylehz.setShrinkToFit(true); //自动伸缩
stylehz.setFont(font);
Cell cellhz = null;
//把已经写好的标题行写入excel文件中
for (int i = 0; i < collectHead.length; i++) {
cellhz = titleRowhz.createCell(i);
cellhz.setCellValue(collectHead[i]);
cellhz.setCellStyle(stylehz);
}
//把从数据库中取得的数据一一写入excel文件中
Row rowh = null;
Cell cell2h = null;
CellStyle dataStyle1 = wb.createCellStyle();
dataStyle1.setBorderBottom(BorderStyle.THIN); //下边框
dataStyle1.setBorderLeft(BorderStyle.THIN);//左边框
dataStyle1.setBorderTop(BorderStyle.THIN);//上边框
dataStyle1.setBorderRight(BorderStyle.THIN);//右边框
dataStyle1.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
dataStyle1.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
Integer numSum = 0;
Double countSum = 0.0;
for (int i = 0; i < listMap1.size(); i++) {
//创建list.size()行数据
rowh = stuSheet1.createRow(i + 4);
//把值一一写进单元格里
//设置第一列为自动递增的序号
cell2h = rowh.createCell(0);
cell2h.setCellValue(i + 1);
cell2h.setCellStyle(dataStyle1);
cell2h = rowh.createCell(1);
cell2h.setCellValue(listMap1.get(i).get("name").toString());
cell2h.setCellStyle(dataStyle1);
cell2h = rowh.createCell(2);
cell2h.setCellValue(listMap1.get(i).get("sumCount").toString());
numSum+=Integer.parseInt(listMap1.get(i).get("sumCount").toString());
cell2h.setCellStyle(dataStyle1);
cell2h = rowh.createCell(3);
DecimalFormat df = new DecimalFormat("#0.00");
cell2h.setCellValue(df.format(listMap1.get(i).get("priceCount")));
countSum+=Double.parseDouble(df.format(listMap1.get(i).get("priceCount")));
cell2h.setCellStyle(dataStyle1);
}
font.setFontHeightInPoints((short) 14);
Row row1h = stuSheet1.createRow(listMap1.size()+4);
CellStyle style111 = wb.createCellStyle();
style111.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
style111.setAlignment(HorizontalAlignment.CENTER);
style111.setBorderBottom(BorderStyle.THIN); //下边框
style111.setBorderLeft(BorderStyle.THIN);//左边框
style111.setBorderTop(BorderStyle.THIN);//上边框
style111.setBorderRight(BorderStyle.THIN);//右边框
style111.setFont(font);
Cell cell11 = row1h.createCell(0);
cell11.setCellStyle(style111);
cell11.setCellValue("合计");
cell11 = row1h.createCell(1);
cell11.setCellStyle(style111);
cell11 = row1h.createCell(2);
cell11.setCellStyle(style111);
cell11.setCellValue(numSum);
cell11 = row1h.createCell(3);
cell11.setCellStyle(style111);
cell11.setCellValue(countSum);
//设置单元格宽度自适应,在此基础上把宽度调至1.5倍
for (int i = 0; i < collectHead.length; i++) {
stuSheet1.autoSizeColumn(i, true);
stuSheet1.setColumnWidth(i, stuSheet1.getColumnWidth(i) * 15 / 10);
}
for (Map.Entry<String, List<InStockGetRecordMaterielList>> stringListEntry : map1.entrySet()) {
Map<String, Object> map = new HashMap<>();
//标题行抽出字段
String[] head = {"质物名称","规格(型号)","生产厂家(产地)","数量","重量","质权人确认的单价","核算的价值","货位号","备注"};
//设置sheet名称,并创建新的sheet对象
@ -184,8 +308,8 @@ public class InStockService extends ServiceImpl<InStockMapper, InStock> {
count+=price;
}
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
Font fontq = wb.createFont();
fontq.setFontHeightInPoints((short) 14);
Row row1 = stuSheet.createRow(stringListEntry.getValue().size()+4);
CellStyle style11 = wb.createCellStyle();
style11.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
@ -194,148 +318,34 @@ public class InStockService extends ServiceImpl<InStockMapper, InStock> {
style11.setBorderLeft(BorderStyle.THIN);//左边框
style11.setBorderTop(BorderStyle.THIN);//上边框
style11.setBorderRight(BorderStyle.THIN);//右边框
style11.setFont(font);
Cell cell11 = row1.createCell(0);
cell11.setCellStyle(style11);
cell11.setCellValue("合计");
cell11 = row1.createCell(3);
cell11.setCellStyle(style11);
cell11.setCellValue(numCount);
cell11 = row1.createCell(6);
cell11.setCellStyle(style11);
cell11.setCellValue(count);
cell11 = row1.createCell(1);
cell11.setCellStyle(style11);
cell11 = row1.createCell(2);
cell11.setCellStyle(style11);
cell11 = row1.createCell(4);
cell11.setCellStyle(style11);
cell11 = row1.createCell(5);
cell11.setCellStyle(style11);
cell11 = row1.createCell(7);
cell11.setCellStyle(style11);
cell11 = row1.createCell(8);
cell11.setCellStyle(style11);
map.put("name",stringListEntry.getKey());
map.put("numCount",numCount);
map.put("count",count);
listMap1.add(map);
style11.setFont(fontq);
Cell cell11a = row1.createCell(0);
cell11a.setCellStyle(style11);
cell11a.setCellValue("合计");
cell11a = row1.createCell(3);
cell11a.setCellStyle(style11);
cell11a.setCellValue(numCount);
cell11a = row1.createCell(6);
cell11a.setCellStyle(style11);
cell11a.setCellValue(count);
cell11a = row1.createCell(1);
cell11a.setCellStyle(style11);
cell11a = row1.createCell(2);
cell11a.setCellStyle(style11);
cell11a = row1.createCell(4);
cell11a.setCellStyle(style11);
cell11a = row1.createCell(5);
cell11a.setCellStyle(style11);
cell11a = row1.createCell(7);
cell11a.setCellStyle(style11);
cell11a = row1.createCell(8);
cell11a.setCellStyle(style11);
//设置单元格宽度自适应,在此基础上把宽度调至1.5倍
for (int i = 0; i < head.length; i++) {
stuSheet.autoSizeColumn(i, true);
stuSheet.setColumnWidth(i, stuSheet.getColumnWidth(i) * 15 / 10);
}
}
//汇总工作簿
String[] collectHead = {"序号","仓库名称","物料数量","核算的价值"};
Sheet stuSheet = wb.createSheet("货物入库质押汇总表");
Row headRow = stuSheet.createRow(0); //第一行为头
Font head1 = wb.createFont();
head1.setFontHeightInPoints((short) 25);
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setFont(head1);
cellStyle.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
CellRangeAddress callRangeAddress = new CellRangeAddress(0,0,0,collectHead.length-1);
CellRangeAddress callRangeAddress1 = new CellRangeAddress(1,1,0,collectHead.length-1);
CellRangeAddress callRangeAddress2 = new CellRangeAddress(2,2,0,collectHead.length-1);
Cell cell1 = headRow.createCell(0);
cell1.setCellStyle(cellStyle);
cell1.setCellValue("货物入库质押汇总表");
stuSheet.addMergedRegion(callRangeAddress);
Row headRowOne = stuSheet.createRow(1);
Cell headCell = headRowOne.createCell(0);
headCell.setCellValue("编号:");
stuSheet.addMergedRegion(callRangeAddress1);
Row headRowTwo = stuSheet.createRow(2);
Cell headCellTwo = headRowTwo.createCell(0);
headCellTwo.setCellValue("上报日期:" + sdf1.format(date));
stuSheet.addMergedRegion(callRangeAddress2);
//设置表头字体大小
Font font1 = wb.createFont();
font1.setFontHeightInPoints((short) 16);
//获取表头行
Row titleRow = stuSheet.createRow(3);
CellStyle style = wb.createCellStyle();
Font font = wb.createFont();
font.setFontHeightInPoints((short) 16);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setAlignment(HorizontalAlignment.CENTER);
style.setBorderBottom(BorderStyle.THIN); //下边框
style.setBorderLeft(BorderStyle.THIN);//左边框
style.setBorderTop(BorderStyle.THIN);//上边框
style.setBorderRight(BorderStyle.THIN);//右边框
style.setShrinkToFit(true); //自动伸缩
style.setFont(font);
Cell cell = null;
//把已经写好的标题行写入excel文件中
for (int i = 0; i < collectHead.length; i++) {
cell = titleRow.createCell(i);
cell.setCellValue(collectHead[i]);
cell.setCellStyle(style);
}
//把从数据库中取得的数据一一写入excel文件中
Row row = null;
Cell cell2 = null;
Double count = 0.0;
CellStyle dataStyle = wb.createCellStyle();
dataStyle.setBorderBottom(BorderStyle.THIN); //下边框
dataStyle.setBorderLeft(BorderStyle.THIN);//左边框
dataStyle.setBorderTop(BorderStyle.THIN);//上边框
dataStyle.setBorderRight(BorderStyle.THIN);//右边框
dataStyle.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
dataStyle.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
Integer numSum = 0;
Double countSum = 0.0;
for (int i = 0; i < listMap1.size(); i++) {
//创建list.size()行数据
row = stuSheet.createRow(i + 4);
//把值一一写进单元格里
//设置第一列为自动递增的序号
cell2 = row.createCell(0);
cell2.setCellValue(i + 1);
cell2.setCellStyle(dataStyle);
cell2 = row.createCell(1);
cell2.setCellValue(listMap1.get(i).get("name").toString());
cell2.setCellStyle(dataStyle);
cell2 = row.createCell(2);
cell2.setCellValue(listMap1.get(i).get("numCount").toString());
numSum+=Integer.parseInt(listMap1.get(i).get("numCount").toString());
cell2.setCellStyle(dataStyle);
cell2 = row.createCell(3);
DecimalFormat df = new DecimalFormat("#0.00");
cell2.setCellValue(df.format(listMap1.get(i).get("count")));
countSum+=Double.parseDouble(df.format(listMap1.get(i).get("count")));
cell2.setCellStyle(dataStyle);
}
font.setFontHeightInPoints((short) 14);
Row row1 = stuSheet.createRow(listMap1.size()+4);
CellStyle style11 = wb.createCellStyle();
style11.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
style11.setAlignment(HorizontalAlignment.CENTER);
style11.setBorderBottom(BorderStyle.THIN); //下边框
style11.setBorderLeft(BorderStyle.THIN);//左边框
style11.setBorderTop(BorderStyle.THIN);//上边框
style11.setBorderRight(BorderStyle.THIN);//右边框
style11.setFont(font);
Cell cell11 = row1.createCell(0);
cell11.setCellStyle(style11);
cell11.setCellValue("合计");
cell11 = row1.createCell(1);
cell11.setCellStyle(style11);
cell11 = row1.createCell(2);
cell11.setCellStyle(style11);
cell11.setCellValue(numSum);
cell11 = row1.createCell(3);
cell11.setCellStyle(style11);
cell11.setCellValue(countSum);
//设置单元格宽度自适应,在此基础上把宽度调至1.5倍
for (int i = 0; i < collectHead.length; i++) {
stuSheet.autoSizeColumn(i, true);
stuSheet.setColumnWidth(i, stuSheet.getColumnWidth(i) * 15 / 10);
}
File file = new File(filePath);
if (!file.exists()) {
file.mkdirs();

191
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java

@ -96,8 +96,101 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
Date date = new Date();
XSSFWorkbook wb = new XSSFWorkbook();
List<Map<String, Object>> listMap1 = new ArrayList<>();//存储汇总数据
mapList.forEach((k,v) -> {
HashMap<String, Object> mapCount = new HashMap<>();
Integer sumCount = v.stream().mapToInt(it -> Integer.parseInt(it.getNum())).sum();
Double priceCount = v.stream().mapToDouble(it -> Integer.parseInt(it.getNum()) * it.getPrice()).sum();
mapCount.put("name",k);
mapCount.put("sumCount",sumCount);
mapCount.put("priceCount",priceCount);
listMap1.add(mapCount);
});
//汇总工作簿
String[] collectHead = {"序号","仓库名称","物料数量","货值"};
Sheet stuSheeth = wb.createSheet("汇总");
Row headRowh = stuSheeth.createRow(0); //第一行为头
Font head1h = wb.createFont();
head1h.setFontHeightInPoints((short) 25);
CellStyle cellStyleh = wb.createCellStyle();
cellStyleh.setFont(head1h);
cellStyleh.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
cellStyleh.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
CellRangeAddress callRangeAddressh = new CellRangeAddress(0,0,0,collectHead.length-1);
Cell cell1h = headRowh.createCell(0);
cell1h.setCellStyle(cellStyleh);
cell1h.setCellValue("库存汇总");
stuSheeth.addMergedRegion(callRangeAddressh);
//设置表头字体大小
Font font1h = wb.createFont();
font1h.setFontHeightInPoints((short) 16);
//获取表头行
Row titleRowh = stuSheeth.createRow(1);
CellStyle styleh = wb.createCellStyle();
Font fonth = wb.createFont();
fonth.setFontHeightInPoints((short) 16);
styleh.setVerticalAlignment(VerticalAlignment.CENTER);
styleh.setAlignment(HorizontalAlignment.CENTER);
styleh.setShrinkToFit(true); //自动伸缩
styleh.setFont(fonth);
Cell cell = null;
//把已经写好的标题行写入excel文件中
for (int i = 0; i < collectHead.length; i++) {
cell = titleRowh.createCell(i);
cell.setCellValue(collectHead[i]);
cell.setCellStyle(styleh);
}
//把从数据库中取得的数据一一写入excel文件中
Row rowh = null;
Cell cell2h = null;
CellStyle dataStyleh = wb.createCellStyle();
dataStyleh.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
dataStyleh.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
Integer numSum = 0;
Double countSum = 0.0;
for (int i = 0; i < listMap1.size(); i++) {
//创建list.size()行数据
rowh = stuSheeth.createRow(i + 2);
//把值一一写进单元格里
//设置第一列为自动递增的序号
cell2h = rowh.createCell(0);
cell2h.setCellValue(i + 1);
cell2h.setCellStyle(dataStyleh);
cell2h = rowh.createCell(1);
cell2h.setCellValue(listMap1.get(i).get("name").toString());
cell2h.setCellStyle(dataStyleh);
cell2h = rowh.createCell(2);
cell2h.setCellValue(listMap1.get(i).get("sumCount").toString());
numSum+=Integer.parseInt(listMap1.get(i).get("sumCount").toString());
cell2h.setCellStyle(dataStyleh);
cell2h = rowh.createCell(3);
DecimalFormat df = new DecimalFormat("#0.00");
cell2h.setCellValue(df.format(listMap1.get(i).get("priceCount")));
countSum+=Double.parseDouble(df.format(listMap1.get(i).get("priceCount")));
cell2h.setCellStyle(dataStyleh);
}
fonth.setFontHeightInPoints((short) 14);
Row row1h = stuSheeth.createRow(listMap1.size()+2);
CellStyle style11h = wb.createCellStyle();
style11h.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
style11h.setAlignment(HorizontalAlignment.CENTER);
style11h.setFont(fonth);
Cell cell11h = row1h.createCell(0);
cell11h.setCellStyle(style11h);
cell11h.setCellValue("合计");
cell11h = row1h.createCell(2);
cell11h.setCellStyle(style11h);
cell11h.setCellValue(numSum);
cell11h = row1h.createCell(3);
cell11h.setCellStyle(style11h);
cell11h.setCellValue(countSum);
//设置单元格宽度自适应,在此基础上把宽度调至1.5倍
for (int i = 0; i < collectHead.length; i++) {
stuSheeth.autoSizeColumn(i, true);
stuSheeth.setColumnWidth(i, stuSheeth.getColumnWidth(i) * 15 / 10);
}
for (Map.Entry<String, List<com.yxt.supervise.gf.shanhai.resp.Inventory>> stringListEntry : mapList.entrySet()) {
Map<String, Object> map = new HashMap<>();
//标题行抽出字段
String[] head = {"序号","仓库名称","物料组","物料编码","物料名称","物料品牌","物料单价","库存数量","货值"};
//设置sheet名称,并创建新的sheet对象
@ -126,12 +219,12 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
style.setAlignment(HorizontalAlignment.CENTER);
style.setShrinkToFit(true); //自动伸缩
style.setFont(font1);
Cell cell = null;
Cell cellh = null;
//把已经写好的标题行写入excel文件中
for (int i = 0; i < head.length; i++) {
cell = titleRow.createCell(i);
cell.setCellValue(head[i]);
cell.setCellStyle(style);
cellh = titleRow.createCell(i);
cellh.setCellValue(head[i]);
cellh.setCellStyle(style);
}
//把从数据库中取得的数据一一写入excel文件中
Row row = null;
@ -194,100 +287,12 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
cell11 = row1.createCell(8);
cell11.setCellStyle(style11);
cell11.setCellValue(count);
map.put("name",stringListEntry.getKey());
map.put("numCount",numCount);
map.put("count",count);
listMap1.add(map);
//设置单元格宽度自适应,在此基础上把宽度调至1.5倍
for (int i = 0; i < head.length; i++) {
stuSheet.autoSizeColumn(i, true);
stuSheet.setColumnWidth(i, stuSheet.getColumnWidth(i) * 15 / 10);
}
}
//汇总工作簿
String[] collectHead = {"序号","仓库名称","物料数量","货值"};
Sheet stuSheet = wb.createSheet("汇总");
Row headRow = stuSheet.createRow(0); //第一行为头
Font head1 = wb.createFont();
head1.setFontHeightInPoints((short) 25);
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setFont(head1);
cellStyle.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
CellRangeAddress callRangeAddress = new CellRangeAddress(0,0,0,collectHead.length-1);
Cell cell1 = headRow.createCell(0);
cell1.setCellStyle(cellStyle);
cell1.setCellValue("库存汇总");
stuSheet.addMergedRegion(callRangeAddress);
//设置表头字体大小
Font font1 = wb.createFont();
font1.setFontHeightInPoints((short) 16);
//获取表头行
Row titleRow = stuSheet.createRow(1);
CellStyle style = wb.createCellStyle();
Font font = wb.createFont();
font.setFontHeightInPoints((short) 16);
style.setVerticalAlignment(VerticalAlignment.CENTER);
style.setAlignment(HorizontalAlignment.CENTER);
style.setShrinkToFit(true); //自动伸缩
style.setFont(font);
Cell cell = null;
//把已经写好的标题行写入excel文件中
for (int i = 0; i < collectHead.length; i++) {
cell = titleRow.createCell(i);
cell.setCellValue(collectHead[i]);
cell.setCellStyle(style);
}
//把从数据库中取得的数据一一写入excel文件中
Row row = null;
Cell cell2 = null;
Double count = 0.0;
CellStyle dataStyle = wb.createCellStyle();
dataStyle.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
dataStyle.setAlignment(HorizontalAlignment.CENTER); //设置水平对齐方式
Integer numSum = 0;
Double countSum = 0.0;
for (int i = 0; i < listMap1.size(); i++) {
//创建list.size()行数据
row = stuSheet.createRow(i + 2);
//把值一一写进单元格里
//设置第一列为自动递增的序号
cell2 = row.createCell(0);
cell2.setCellValue(i + 1);
cell2.setCellStyle(dataStyle);
cell2 = row.createCell(1);
cell2.setCellValue(listMap1.get(i).get("name").toString());
cell2.setCellStyle(dataStyle);
cell2 = row.createCell(2);
cell2.setCellValue(listMap1.get(i).get("numCount").toString());
numSum+=Integer.parseInt(listMap1.get(i).get("numCount").toString());
cell2.setCellStyle(dataStyle);
cell2 = row.createCell(3);
DecimalFormat df = new DecimalFormat("#0.00");
cell2.setCellValue(df.format(listMap1.get(i).get("count")));
countSum+=Double.parseDouble(df.format(listMap1.get(i).get("count")));
cell2.setCellStyle(dataStyle);
}
font.setFontHeightInPoints((short) 14);
Row row1 = stuSheet.createRow(listMap1.size()+2);
CellStyle style11 = wb.createCellStyle();
style11.setVerticalAlignment(VerticalAlignment.CENTER); //设置垂直对齐方式
style11.setAlignment(HorizontalAlignment.CENTER);
style11.setFont(font);
Cell cell11 = row1.createCell(0);
cell11.setCellStyle(style11);
cell11.setCellValue("合计");
cell11 = row1.createCell(2);
cell11.setCellStyle(style11);
cell11.setCellValue(numSum);
cell11 = row1.createCell(3);
cell11.setCellStyle(style11);
cell11.setCellValue(countSum);
//设置单元格宽度自适应,在此基础上把宽度调至1.5倍
for (int i = 0; i < collectHead.length; i++) {
stuSheet.autoSizeColumn(i, true);
stuSheet.setColumnWidth(i, stuSheet.getColumnWidth(i) * 15 / 10);
}
File file = new File(filePath);
if (!file.exists()) {
file.mkdirs();

13
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataMapper.java

@ -0,0 +1,13 @@
package com.yxt.supervise.gf.biz.pushinstockdata;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.supervise.gf.api.pushinstockdata.PushInStockData;
import org.apache.ibatis.annotations.Mapper;
/**
* @author feikefei
* @create 2023-07-21-17:24
*/
@Mapper
public interface PushInStockDataMapper extends BaseMapper<PushInStockData> {
}

15
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataRest.java

@ -0,0 +1,15 @@
package com.yxt.supervise.gf.biz.pushinstockdata;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author feikefei
* @create 2023-07-21-15:01
*/
@Api(value = "货物入库监管数据明细表(推送数据)")
@RestController
@RequestMapping("gf/pushInStockData")
public class PushInStockDataRest {
}

17
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataService.java

@ -0,0 +1,17 @@
package com.yxt.supervise.gf.biz.pushinstockdata;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.supervise.gf.api.pushinstockdata.PushInStockData;
import org.springframework.stereotype.Service;
/**
* @author feikefei
* @create 2023-07-21-17:24
*/
@Service
public class PushInStockDataService extends ServiceImpl<PushInStockDataMapper, PushInStockData> {
void saveInStockData(PushInStockData data){
baseMapper.insert(data);
}
}
Loading…
Cancel
Save