diff --git a/yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/instock/InStock.java b/yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/instock/InStock.java index caf5195..58188a8 100644 --- a/yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/instock/InStock.java +++ b/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; } diff --git a/yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/pushinstockdata/PushInStockData.java b/yxt-supervise-gf-api/src/main/java/com/yxt/supervise/gf/api/pushinstockdata/PushInStockData.java new file mode 100644 index 0000000..366de78 --- /dev/null +++ b/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; +} diff --git a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/instock/InStockService.java b/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/instock/InStockService.java index 27e386f..f62eab8 100644 --- a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/instock/InStockService.java +++ b/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 { @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 { 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> listMap = list.stream().collect(Collectors.groupingBy(it -> it.getStorehouse_name())); @@ -65,6 +69,12 @@ public class InStockService extends ServiceImpl { 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 { Date date = new Date(); XSSFWorkbook wb = new XSSFWorkbook(); List> listMap1 = new ArrayList<>();//存储汇总数据 + map1.forEach((k,v) -> { + HashMap 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> stringListEntry : map1.entrySet()) { - Map map = new HashMap<>(); //标题行抽出字段 String[] head = {"质物名称","规格(型号)","生产厂家(产地)","数量","重量","质权人确认的单价","核算的价值","货位号","备注"}; //设置sheet名称,并创建新的sheet对象 @@ -184,8 +308,8 @@ public class InStockService extends ServiceImpl { 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 { 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(); diff --git a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java b/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java index 987cf69..d14e9d2 100644 --- a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java +++ b/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java @@ -96,8 +96,101 @@ public class InventoryService extends ServiceImpl { Date date = new Date(); XSSFWorkbook wb = new XSSFWorkbook(); List> listMap1 = new ArrayList<>();//存储汇总数据 + mapList.forEach((k,v) -> { + HashMap 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> stringListEntry : mapList.entrySet()) { - Map map = new HashMap<>(); //标题行抽出字段 String[] head = {"序号","仓库名称","物料组","物料编码","物料名称","物料品牌","物料单价","库存数量","货值"}; //设置sheet名称,并创建新的sheet对象 @@ -126,12 +219,12 @@ public class InventoryService extends ServiceImpl { 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 { 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(); diff --git a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataMapper.java b/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataMapper.java new file mode 100644 index 0000000..85b59c8 --- /dev/null +++ b/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 { +} diff --git a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataRest.java b/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataRest.java new file mode 100644 index 0000000..1511788 --- /dev/null +++ b/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 { +} diff --git a/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataService.java b/yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/pushinstockdata/PushInStockDataService.java new file mode 100644 index 0000000..e1e7024 --- /dev/null +++ b/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 { + + void saveInStockData(PushInStockData data){ + baseMapper.insert(data); + } +}