Browse Source

库存数据导入及csv\xlsx数据解析

master
lzh 3 years ago
parent
commit
a7602fd6d6
  1. 13
      yxt_supervise/supervise-portal/supervise-portal-biz/pom.xml
  2. 59
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventory.java
  3. 46
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryMapper.java
  4. 59
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOk.java
  5. 46
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkMapper.java
  6. 46
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkService.java
  7. 64
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryRest.java
  8. 330
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryService.java
  9. 49
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdRescategoryProd.java
  10. 46
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdRescategoryProdMapper.java
  11. 55
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdRescategoryProdService.java
  12. 14
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInHSSFRowReaderConver.java
  13. 36
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemHSSFRowReaderConver.java
  14. 50
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java
  15. 50
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutService.java
  16. 120
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/extexcel/CsvTool.java
  17. 33
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/extexcel/ExcelTool.java
  18. 2
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/application-devv.yml

13
yxt_supervise/supervise-portal/supervise-portal-biz/pom.xml

@ -100,8 +100,17 @@
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 读取解析CSV文件 -->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>de.siegmar</groupId>
<artifactId>fastcsv</artifactId>
<version>2.2.1</version>
</dependency>
</dependencies>
<build>

59
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventory.java

@ -0,0 +1,59 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.EntityWithId;
import lombok.Data;
/**
* Project: yxt_supervise <br/>
* File: GdInventory.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventory <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 19:59 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@TableName("gd_inventory")
public class GdInventory extends EntityWithId {
private String orgCode; // 企业组织机构代码证
private String warehouseCode; // 仓库/门店编号
private String warehouseName; // 仓库/门店名称
private String prodCode; // 商品编码
private String prodBarCode; // 商品条码
private String prodName; // 商品名称
private int warehouseType; // 仓库类型
private int prodNum; // 商品数量
private double prodValue; // 商品货值
private String suppliderName; // 供应商
private String datadate; // 数据日期
}

46
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryMapper.java

@ -0,0 +1,46 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* Project: yxt_supervise <br/>
* File: GdInventoryMapper.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventoryMapper <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:30 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface GdInventoryMapper extends BaseMapper<GdInventory> {
}

59
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOk.java

@ -0,0 +1,59 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.EntityWithId;
import lombok.Data;
/**
* Project: yxt_supervise <br/>
* File: GdInventoryOk.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventoryOk <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:17 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@TableName("gd_inventory_ok")
public class GdInventoryOk extends EntityWithId {
private String orgCode; // 企业组织机构代码证
private String warehouseCode; // 仓库/门店编号
private String warehouseName; // 仓库/门店名称
private String prodCode; // 商品编码
private String prodBarCode; // 商品条码
private String prodName; // 商品名称
private int warehouseType; // 仓库类型
private int prodNum; // 商品数量
private double prodValue; // 商品货值
private String suppliderName; // 供应商
private String datadate; // 数据日期
}

46
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkMapper.java

@ -0,0 +1,46 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* Project: yxt_supervise <br/>
* File: GdInventoryOkMapper.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventoryOkMapper <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:31 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface GdInventoryOkMapper extends BaseMapper<GdInventoryOk> {
}

46
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkService.java

@ -0,0 +1,46 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* Project: yxt_supervise <br/>
* File: GdInventoryOkService.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventoryOkService <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:35 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class GdInventoryOkService extends ServiceImpl<GdInventoryOkMapper,GdInventoryOk> {
}

64
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryRest.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' /| |// '. *
* / /||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | /\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Project: yxt_supervise <br/>
* File: GdInventoryRest.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventoryRest <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 18:37 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@RestController("com.yxt.supervise.portal.biz.gdinventory.GdInventoryRest")
@RequestMapping("/gd")
public class GdInventoryRest {
@Autowired
private GdInventoryService gdInventoryService;
@GetMapping("/implInventory")
public ResultBean implInventory() {
// gdInventoryService.doCheck();
// gdInventoryService.importFromCsvFilePathHutool("D:/works/projects/javaee/lzh/niejinyi/yunyan/docs/sheji/wx20221130/汇融银行_库存信息查询.csv");
// gdInventoryService.importFromCsvFilePathFastCsv("D:/works/projects/javaee/lzh/niejinyi/yunyan/docs/sheji/wx20221130/汇融银行_库存信息查询.csv");
// gdInventoryService.importFromCsvFilePathJavaCsv("D:/works/projects/javaee/lzh/niejinyi/yunyan/docs/sheji/wx20221130/汇融银行_库存信息查询.csv");
gdInventoryService.importFromXlsx("D:/works/projects/javaee/lzh/niejinyi/yunyan/docs/sheji/wx20221130/汇融银行_库存信息查询.xlsx");
return ResultBean.fireSuccess();
}
}

330
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryService.java

@ -0,0 +1,330 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.csv.*;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.sax.handler.RowHandler;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.supervise.portal.extexcel.CsvTool;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Project: yxt_supervise <br/>
* File: GdInventoryService.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdInventoryService <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class GdInventoryService extends ServiceImpl<GdInventoryMapper, GdInventory> {
private static List<String> codeList = null;
@Autowired
private GdRescategoryProdService gdRescategoryProdService;
@Autowired
private GdInventoryOkService gdInventoryOkService;
public void doCheck() {
if (codeList == null) {
codeList = gdRescategoryProdService.listCode();
}
List<GdInventory> list = super.list();
long ll = list.size();
int x = 0;
int y = 0;
int num = 0;
List<GdInventoryOk> okList = new ArrayList<>();
for (GdInventory entity : list) {
if (codeList.contains(entity.getProdCode().trim())) {
GdInventoryOk ok = new GdInventoryOk();
BeanUtil.copyProperties(entity, ok, "id");
// gdInventoryOkService.save(ok);
okList.add(ok);
if (500 == num) {
gdInventoryOkService.saveBatch(okList);
num = 0;
okList.clear();
} else {
num++;
}
x++;
System.out.println("XX " + entity.getProdCode() + "-" + entity.getProdName() + "size:" + ll + ",X:" + x + ",Y:" + y);
} else {
y++;
System.out.println("-" + entity.getProdCode() + "-" + entity.getProdName() + "size:" + ll + ",X:" + x + ",Y:" + y);
}
}
if (okList != null && !okList.isEmpty()) {
gdInventoryOkService.saveBatch(okList);
}
}
public void importFromCsvFilePathFastCsv(String filePath) {
long millis = System.currentTimeMillis();
de.siegmar.fastcsv.reader.CsvReader red = null;
try {
red = de.siegmar.fastcsv.reader.CsvReader.builder().build(Paths.get(filePath), Charset.forName("GB2312"));
} catch (IOException e) {
throw new RuntimeException(e);
}
Iterator<de.siegmar.fastcsv.reader.CsvRow> iterator = red.stream().iterator();
int x = 0;
int num = 0;
List<GdInventory> toInsertList = new ArrayList<>();
while (iterator.hasNext()) {
de.siegmar.fastcsv.reader.CsvRow r = iterator.next();
if (x > 0) {
GdInventory gd = createGdInventoryFromRowFastCsv(r);
toInsertList.add(gd);
if (800 == num) {
this.saveBatch(toInsertList);
num = 0;
toInsertList.clear();
} else {
num++;
}
}
x++;
System.out.println(",X:" + x);
}
if (toInsertList != null && !toInsertList.isEmpty()) {
this.saveBatch(toInsertList);
}
System.out.println("用时:" + (System.currentTimeMillis() - millis));
}
private GdInventory createGdInventoryFromRowFastCsv(de.siegmar.fastcsv.reader.CsvRow r) {
GdInventory gd = new GdInventory();
gd.setOrgCode(r.getField(0)); // 企业组织机构代码证
gd.setWarehouseCode(r.getField(1)); // 仓库/门店编号
gd.setWarehouseName(r.getField(2)); // 仓库/门店名称
gd.setProdCode(r.getField(3)); // 商品编码
gd.setProdBarCode(r.getField(4)); // 商品条码
gd.setProdName(r.getField(5)); // 商品名称
gd.setWarehouseType(CsvTool.readIntegerFastCsv(r, 6)); // 仓库类型
gd.setProdNum(CsvTool.readIntegerFastCsv(r, 7)); // 商品数量
gd.setProdValue(CsvTool.readDoubleFastCsv(r, 8)); // 商品货值
gd.setSuppliderName(r.getField(9)); // 供应商
gd.setDatadate(r.getField(10)); // 数据日期
return gd;
}
public void importFromCsvFilePathJavaCsv(String filePath) {
long millis = System.currentTimeMillis();
int x = 0;
int num = 0;
List<GdInventory> toInsertList = new ArrayList<>();
try {
com.csvreader.CsvReader r = new com.csvreader.CsvReader(filePath, ',', Charset.forName("GBK"));
//读取表头
r.readHeaders();
//逐条读取记录,直至读完
while (r.readRecord()) {
GdInventory gd = createGdInventoryFromRowJavaCsv(r);
toInsertList.add(gd);
if (800 == num) {
this.saveBatch(toInsertList);
num = 0;
toInsertList.clear();
} else {
num++;
}
x++;
System.out.println(",X:" + x);
}
r.close();
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
if (toInsertList != null && !toInsertList.isEmpty()) {
this.saveBatch(toInsertList);
}
System.out.println("用时:" + (System.currentTimeMillis() - millis));
}
private GdInventory createGdInventoryFromRowJavaCsv(com.csvreader.CsvReader r) throws IOException {
GdInventory gd = new GdInventory();
gd.setOrgCode(r.get(0)); // 企业组织机构代码证
gd.setWarehouseCode(r.get(1)); // 仓库/门店编号
gd.setWarehouseName(r.get(2)); // 仓库/门店名称
gd.setProdCode(r.get(3)); // 商品编码
gd.setProdBarCode(r.get(4)); // 商品条码
gd.setProdName(r.get(5)); // 商品名称
gd.setWarehouseType(CsvTool.readIntegerJavaCsv(r, 6)); // 仓库类型
gd.setProdNum(CsvTool.readIntegerJavaCsv(r, 7)); // 商品数量
gd.setProdValue(CsvTool.readDoubleJavaCsv(r, 8)); // 商品货值
gd.setSuppliderName(r.get(9)); // 供应商
gd.setDatadate(r.get(10)); // 数据日期
return gd;
}
public void importFromCsvFilePathHutool(String filePath) {
long millis = System.currentTimeMillis();
CsvReader red = CsvUtil.getReader();
CsvData read = red.read(FileUtil.file(filePath));
// read.getHeader();
Iterator<CsvRow> iterator = read.iterator();
int x = 0;
int num = 0;
List<GdInventory> toInsertList = new ArrayList<>();
while (iterator.hasNext()) {
CsvRow r = iterator.next();
if (x > 0) {
GdInventory gd = createGdInventoryFromRowHutool(r);
toInsertList.add(gd);
if (800 == num) {
this.saveBatch(toInsertList);
num = 0;
toInsertList.clear();
} else {
num++;
}
}
x++;
System.out.println(",X:" + x);
}
if (toInsertList != null && !toInsertList.isEmpty()) {
this.saveBatch(toInsertList);
}
System.out.println("用时:" + (System.currentTimeMillis() - millis));
}
private GdInventory createGdInventoryFromRowHutool(CsvRow r) {
GdInventory gd = new GdInventory();
gd.setOrgCode(r.get(0)); // 企业组织机构代码证
gd.setWarehouseCode(r.get(1)); // 仓库/门店编号
gd.setWarehouseName(r.get(2)); // 仓库/门店名称
gd.setProdCode(r.get(3)); // 商品编码
gd.setProdBarCode(r.get(4)); // 商品条码
gd.setProdName(r.get(5)); // 商品名称
gd.setWarehouseType(CsvTool.readInteger(r, 6)); // 仓库类型
gd.setProdNum(CsvTool.readInteger(r, 7)); // 商品数量
gd.setProdValue(CsvTool.readDouble(r, 8)); // 商品货值
gd.setSuppliderName(r.get(9)); // 供应商
gd.setDatadate(r.get(10)); // 数据日期
return gd;
}
public void importFromXlsx(String filePath) {
long millis = System.currentTimeMillis();
ExcelUtil.readBySax(filePath, 0, createRowHandler());
System.out.println("用时:" + (System.currentTimeMillis() - millis));
}
private RowHandler createRowHandler() {
return new RowHandler() {
private List<GdInventory> toInsertList = new ArrayList<>();
private int x = 0;
private int num = 0;
@Override
public void handle(int i, long l, List<Object> r) {
if (l > 0) {
GdInventory gd = new GdInventory();
gd.setOrgCode((String) r.get(0)); // 企业组织机构代码证
gd.setWarehouseCode((String) r.get(1)); // 仓库/门店编号
gd.setWarehouseName((String) r.get(2)); // 仓库/门店名称
gd.setProdCode((String) r.get(3)); // 商品编码
gd.setProdBarCode((String) r.get(4)); // 商品条码
gd.setProdName((String) r.get(5)); // 商品名称
gd.setWarehouseType(ExcelTool.toInt(r.get(6))); // 仓库类型
gd.setProdNum(ExcelTool.toInt(r.get(7))); // 商品数量
gd.setProdValue(ExcelTool.toDouble(r.get(8))); // 商品货值
gd.setSuppliderName((String) r.get(9)); // 供应商
gd.setDatadate((String) r.get(10)); // 数据日期
toInsertList.add(gd);
if (800 == num) {
GdInventoryService.this.saveBatch(toInsertList);
num = 0;
toInsertList.clear();
} else {
num++;
}
x++;
System.out.println(",X:" + x);
}
}
@Override
public void handleCell(int sheetIndex, long rowIndex, int cellIndex, Object value, CellStyle xssfCellStyle) {
RowHandler.super.handleCell(sheetIndex, rowIndex, cellIndex, value, xssfCellStyle);
}
@Override
public void doAfterAllAnalysed() {
if (toInsertList != null && !toInsertList.isEmpty()) {
GdInventoryService.this.saveBatch(toInsertList);
}
RowHandler.super.doAfterAllAnalysed();
}
};
}
}

49
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdRescategoryProd.java

@ -0,0 +1,49 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.EntityWithId;
import lombok.Data;
/**
* Project: yxt_supervise <br/>
* File: GdRescategoryProd.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdRescategoryProd <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:21 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@TableName("gd_rescategory_prod")
public class GdRescategoryProd extends EntityWithId {
private String prodCode;
}

46
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdRescategoryProdMapper.java

@ -0,0 +1,46 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* Project: yxt_supervise <br/>
* File: GdRescategoryProdMapper.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdRescategoryProdMapper <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:32 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface GdRescategoryProdMapper extends BaseMapper<GdRescategoryProd> {
}

55
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdRescategoryProdService.java

@ -0,0 +1,55 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.biz.gdinventory;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Project: yxt_supervise <br/>
* File: GdRescategoryProdService.java <br/>
* Class: com.yxt.supervise.portal.biz.gdinventory.GdRescategoryProdService <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/11/30 20:36 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class GdRescategoryProdService extends ServiceImpl<GdRescategoryProdMapper, GdRescategoryProd> {
public List<String> listCode() {
List<String> res = new ArrayList<>();
List<GdRescategoryProd> list = super.list();
list.forEach(entity -> res.add(entity.getProdCode().trim()));
return res;
}
}

14
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInHSSFRowReaderConver.java

@ -26,7 +26,7 @@
package com.yxt.supervise.portal.biz.storein;
import com.yxt.supervise.portal.api.storein.StoreIn;
import com.yxt.supervise.portal.extexcel.ExcelUtil;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import com.yxt.supervise.portal.extexcel.HSSFRowReaderConver;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.springframework.stereotype.Component;
@ -55,12 +55,12 @@ public class StoreInHSSFRowReaderConver implements HSSFRowReaderConver<StoreIn>
// `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号',
// `billType` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据类型',
StoreIn si = new StoreIn();
si.setOrgCode(ExcelUtil.readStringFromHSSFRow(row, 0));
si.setStoreCode(ExcelUtil.readStringFromHSSFRow(row, 1));
si.setStoreName(ExcelUtil.readStringFromHSSFRow(row, 2));
si.setReceiptTime(ExcelUtil.readDateTimeFromHSSFRow(row, 3));
si.setBillNo(ExcelUtil.readStringFromHSSFRow(row, 5));
si.setBillType(ExcelUtil.readStringFromHSSFRow(row, 6));
si.setOrgCode(ExcelTool.readStringFromHSSFRow(row, 0));
si.setStoreCode(ExcelTool.readStringFromHSSFRow(row, 1));
si.setStoreName(ExcelTool.readStringFromHSSFRow(row, 2));
si.setReceiptTime(ExcelTool.readDateTimeFromHSSFRow(row, 3));
si.setBillNo(ExcelTool.readStringFromHSSFRow(row, 5));
si.setBillType(ExcelTool.readStringFromHSSFRow(row, 6));
return si;
}

36
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemHSSFRowReaderConver.java

@ -26,7 +26,7 @@
package com.yxt.supervise.portal.biz.storein;
import com.yxt.supervise.portal.api.storein.StoreInItem;
import com.yxt.supervise.portal.extexcel.ExcelUtil;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import com.yxt.supervise.portal.extexcel.HSSFRowReaderConver;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.springframework.stereotype.Component;
@ -69,23 +69,23 @@ public class StoreInItemHSSFRowReaderConver implements HSSFRowReaderConver<Store
// `notTaxPrice` double(10,2) NULL DEFAULT NULL COMMENT '不含税成本',
// `inputTaxRate` int(11) NULL DEFAULT NULL COMMENT '进项税率',
StoreInItem item = new StoreInItem();
item.setBillNo(ExcelUtil.readStringFromHSSFRow(row, 5));
item.setSupplierName(ExcelUtil.readStringFromHSSFRow(row, 4));
item.setProductCode(ExcelUtil.readStringFromHSSFRow(row, 7));
item.setProductName(ExcelUtil.readStringFromHSSFRow(row, 8));
item.setProductDate(ExcelUtil.readDateFromHSSFRow(row, 9));
item.setProductQualityGuaranteePeriod(ExcelUtil.readIntFromHSSFRow(row, 10));
item.setProductSpecifications(ExcelUtil.readStringFromHSSFRow(row, 11));
item.setCategoryKey(ExcelUtil.readStringFromHSSFRow(row, 12));
item.setCategory(ExcelUtil.readStringFromHSSFRow(row, 13));
item.setCategoryOne(ExcelUtil.readStringFromHSSFRow(row, 14));
item.setCategoryTwo(ExcelUtil.readStringFromHSSFRow(row, 15));
item.setInPrice(ExcelUtil.readDoubleFromHSSFRow(row, 16));
item.setInNumber(ExcelUtil.readIntFromHSSFRow(row, 17));
item.setCostPrice(ExcelUtil.readDoubleFromHSSFRow(row, 18));
item.setCostTaxPrice(ExcelUtil.readDoubleFromHSSFRow(row, 19));
item.setNotTaxPrice(ExcelUtil.readDoubleFromHSSFRow(row, 20));
item.setInputTaxRate(ExcelUtil.readIntFromHSSFRow(row, 21));
item.setBillNo(ExcelTool.readStringFromHSSFRow(row, 5));
item.setSupplierName(ExcelTool.readStringFromHSSFRow(row, 4));
item.setProductCode(ExcelTool.readStringFromHSSFRow(row, 7));
item.setProductName(ExcelTool.readStringFromHSSFRow(row, 8));
item.setProductDate(ExcelTool.readDateFromHSSFRow(row, 9));
item.setProductQualityGuaranteePeriod(ExcelTool.readIntFromHSSFRow(row, 10));
item.setProductSpecifications(ExcelTool.readStringFromHSSFRow(row, 11));
item.setCategoryKey(ExcelTool.readStringFromHSSFRow(row, 12));
item.setCategory(ExcelTool.readStringFromHSSFRow(row, 13));
item.setCategoryOne(ExcelTool.readStringFromHSSFRow(row, 14));
item.setCategoryTwo(ExcelTool.readStringFromHSSFRow(row, 15));
item.setInPrice(ExcelTool.readDoubleFromHSSFRow(row, 16));
item.setInNumber(ExcelTool.readIntFromHSSFRow(row, 17));
item.setCostPrice(ExcelTool.readDoubleFromHSSFRow(row, 18));
item.setCostTaxPrice(ExcelTool.readDoubleFromHSSFRow(row, 19));
item.setNotTaxPrice(ExcelTool.readDoubleFromHSSFRow(row, 20));
item.setInputTaxRate(ExcelTool.readIntFromHSSFRow(row, 21));
return item;
}
}

50
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java

@ -7,7 +7,7 @@ import com.yxt.supervise.portal.api.storein.StoreIn;
import com.yxt.supervise.portal.api.storein.StoreInItem;
import com.yxt.supervise.portal.api.storein.StoreInWithItemDto;
import com.yxt.supervise.portal.biz.inventoryinformation.InventoryInformationService;
import com.yxt.supervise.portal.extexcel.ExcelUtil;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import com.yxt.supervise.portal.extexcel.HSSFRowReader;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
@ -53,7 +53,7 @@ private InventoryInformationService inventoryInformationService;
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
HSSFRow row = sheet.getRow(rowNum);
String c_f = ExcelUtil.readStringFromHSSFRow(row, 5); // 单据号
String c_f = ExcelTool.readStringFromHSSFRow(row, 5); // 单据号
StoreInWithItemDto dto = map.get(c_f);
if (dto == null) {
dto = new StoreInWithItemDto();
@ -84,12 +84,12 @@ private InventoryInformationService inventoryInformationService;
// `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号',
// `billType` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据类型',
StoreIn si = new StoreIn();
si.setOrgCode(ExcelUtil.readStringFromHSSFRow(row, 0));
si.setStoreCode(ExcelUtil.readStringFromHSSFRow(row, 1));
si.setStoreName(ExcelUtil.readStringFromHSSFRow(row, 2));
si.setReceiptTime(ExcelUtil.readDateTimeFromHSSFRow(row, 3));
si.setBillNo(ExcelUtil.readStringFromHSSFRow(row, 5));
si.setBillType(ExcelUtil.readStringFromHSSFRow(row, 6));
si.setOrgCode(ExcelTool.readStringFromHSSFRow(row, 0));
si.setStoreCode(ExcelTool.readStringFromHSSFRow(row, 1));
si.setStoreName(ExcelTool.readStringFromHSSFRow(row, 2));
si.setReceiptTime(ExcelTool.readDateTimeFromHSSFRow(row, 3));
si.setBillNo(ExcelTool.readStringFromHSSFRow(row, 5));
si.setBillType(ExcelTool.readStringFromHSSFRow(row, 6));
return si;
}
@ -116,23 +116,23 @@ private InventoryInformationService inventoryInformationService;
// `notTaxPrice` double(10,2) NULL DEFAULT NULL COMMENT '不含税成本',
// `inputTaxRate` int(11) NULL DEFAULT NULL COMMENT '进项税率',
StoreInItem item = new StoreInItem();
item.setBillNo(ExcelUtil.readStringFromHSSFRow(row, 5));
item.setSupplierName(ExcelUtil.readStringFromHSSFRow(row, 4));
item.setProductCode(ExcelUtil.readStringFromHSSFRow(row, 7));
item.setProductName(ExcelUtil.readStringFromHSSFRow(row, 8));
item.setProductDate(ExcelUtil.readDateFromHSSFRow(row, 9));
item.setProductQualityGuaranteePeriod(ExcelUtil.readIntFromHSSFRow(row, 10));
item.setProductSpecifications(ExcelUtil.readStringFromHSSFRow(row, 11));
item.setCategoryKey(ExcelUtil.readStringFromHSSFRow(row, 12));
item.setCategory(ExcelUtil.readStringFromHSSFRow(row, 13));
item.setCategoryOne(ExcelUtil.readStringFromHSSFRow(row, 14));
item.setCategoryTwo(ExcelUtil.readStringFromHSSFRow(row, 15));
item.setInPrice(ExcelUtil.readDoubleFromHSSFRow(row, 16));
item.setInNumber(ExcelUtil.readIntFromHSSFRow(row, 17));
item.setCostPrice(ExcelUtil.readDoubleFromHSSFRow(row, 18));
item.setCostTaxPrice(ExcelUtil.readDoubleFromHSSFRow(row, 19));
item.setNotTaxPrice(ExcelUtil.readDoubleFromHSSFRow(row, 20));
item.setInputTaxRate(ExcelUtil.readIntFromHSSFRow(row, 21));
item.setBillNo(ExcelTool.readStringFromHSSFRow(row, 5));
item.setSupplierName(ExcelTool.readStringFromHSSFRow(row, 4));
item.setProductCode(ExcelTool.readStringFromHSSFRow(row, 7));
item.setProductName(ExcelTool.readStringFromHSSFRow(row, 8));
item.setProductDate(ExcelTool.readDateFromHSSFRow(row, 9));
item.setProductQualityGuaranteePeriod(ExcelTool.readIntFromHSSFRow(row, 10));
item.setProductSpecifications(ExcelTool.readStringFromHSSFRow(row, 11));
item.setCategoryKey(ExcelTool.readStringFromHSSFRow(row, 12));
item.setCategory(ExcelTool.readStringFromHSSFRow(row, 13));
item.setCategoryOne(ExcelTool.readStringFromHSSFRow(row, 14));
item.setCategoryTwo(ExcelTool.readStringFromHSSFRow(row, 15));
item.setInPrice(ExcelTool.readDoubleFromHSSFRow(row, 16));
item.setInNumber(ExcelTool.readIntFromHSSFRow(row, 17));
item.setCostPrice(ExcelTool.readDoubleFromHSSFRow(row, 18));
item.setCostTaxPrice(ExcelTool.readDoubleFromHSSFRow(row, 19));
item.setNotTaxPrice(ExcelTool.readDoubleFromHSSFRow(row, 20));
item.setInputTaxRate(ExcelTool.readIntFromHSSFRow(row, 21));
return item;
}
}

50
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutService.java

@ -32,7 +32,7 @@ import com.yxt.supervise.portal.api.storeout.StoreOut;
import com.yxt.supervise.portal.api.storeout.StoreOutAndItemDto;
import com.yxt.supervise.portal.api.storeout.StoreOutItem;
import com.yxt.supervise.portal.biz.inventoryinformation.InventoryInformationService;
import com.yxt.supervise.portal.extexcel.ExcelUtil;
import com.yxt.supervise.portal.extexcel.ExcelTool;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@ -81,7 +81,7 @@ public class StoreOutService extends MybatisBaseService<StoreOutMapper, StoreOut
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
HSSFRow row = sheet.getRow(rowNum);
String c_f = ExcelUtil.readStringFromHSSFRow(row, 5); // 单据号
String c_f = ExcelTool.readStringFromHSSFRow(row, 5); // 单据号
StoreOutAndItemDto dto = map.get(c_f);
if (dto == null) {
dto = new StoreOutAndItemDto();
@ -113,12 +113,12 @@ public class StoreOutService extends MybatisBaseService<StoreOutMapper, StoreOut
// `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号',
// `billType` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据类型',
StoreOut si = new StoreOut();
si.setOrgCode(ExcelUtil.readStringFromHSSFRow(row, 0));
si.setStoreCode(ExcelUtil.readStringFromHSSFRow(row, 1));
si.setStoreName(ExcelUtil.readStringFromHSSFRow(row, 2));
si.setOutTime(ExcelUtil.readDateTimeFromHSSFRow(row, 3));
si.setBillNo(ExcelUtil.readStringFromHSSFRow(row, 5));
si.setBillType(ExcelUtil.readStringFromHSSFRow(row, 6));
si.setOrgCode(ExcelTool.readStringFromHSSFRow(row, 0));
si.setStoreCode(ExcelTool.readStringFromHSSFRow(row, 1));
si.setStoreName(ExcelTool.readStringFromHSSFRow(row, 2));
si.setOutTime(ExcelTool.readDateTimeFromHSSFRow(row, 3));
si.setBillNo(ExcelTool.readStringFromHSSFRow(row, 5));
si.setBillType(ExcelTool.readStringFromHSSFRow(row, 6));
return si;
}
@ -145,23 +145,23 @@ public class StoreOutService extends MybatisBaseService<StoreOutMapper, StoreOut
// `notTaxPrice` double(10,2) NULL DEFAULT NULL COMMENT '不含税成本',
// `inputTaxRate` int(11) NULL DEFAULT NULL COMMENT '进项税率',
StoreOutItem item = new StoreOutItem();
item.setBillNo(ExcelUtil.readStringFromHSSFRow(row, 5));
item.setSupplierName(ExcelUtil.readStringFromHSSFRow(row, 4));
item.setProductCode(ExcelUtil.readStringFromHSSFRow(row, 7));
item.setProductName(ExcelUtil.readStringFromHSSFRow(row, 8));
item.setProductDate(ExcelUtil.readDateFromHSSFRow(row, 9));
item.setProductQualityGuaranteePeriod(ExcelUtil.readIntFromHSSFRow(row, 10));
item.setProductSpecifications(ExcelUtil.readStringFromHSSFRow(row, 11));
item.setCategoryKey(ExcelUtil.readStringFromHSSFRow(row, 12));
item.setCategory(ExcelUtil.readStringFromHSSFRow(row, 13));
item.setCategoryOne(ExcelUtil.readStringFromHSSFRow(row, 14));
item.setCategoryTwo(ExcelUtil.readStringFromHSSFRow(row, 15));
item.setOutPrice(ExcelUtil.readDoubleFromHSSFRow(row, 16));
item.setOutNumber(ExcelUtil.readIntFromHSSFRow(row, 17));
item.setCostPrice(ExcelUtil.readDoubleFromHSSFRow(row, 18));
item.setCostTaxPrice(ExcelUtil.readDoubleFromHSSFRow(row, 19));
item.setNotTaxPrice(ExcelUtil.readDoubleFromHSSFRow(row, 20));
item.setInputTaxRate(ExcelUtil.readIntFromHSSFRow(row, 21));
item.setBillNo(ExcelTool.readStringFromHSSFRow(row, 5));
item.setSupplierName(ExcelTool.readStringFromHSSFRow(row, 4));
item.setProductCode(ExcelTool.readStringFromHSSFRow(row, 7));
item.setProductName(ExcelTool.readStringFromHSSFRow(row, 8));
item.setProductDate(ExcelTool.readDateFromHSSFRow(row, 9));
item.setProductQualityGuaranteePeriod(ExcelTool.readIntFromHSSFRow(row, 10));
item.setProductSpecifications(ExcelTool.readStringFromHSSFRow(row, 11));
item.setCategoryKey(ExcelTool.readStringFromHSSFRow(row, 12));
item.setCategory(ExcelTool.readStringFromHSSFRow(row, 13));
item.setCategoryOne(ExcelTool.readStringFromHSSFRow(row, 14));
item.setCategoryTwo(ExcelTool.readStringFromHSSFRow(row, 15));
item.setOutPrice(ExcelTool.readDoubleFromHSSFRow(row, 16));
item.setOutNumber(ExcelTool.readIntFromHSSFRow(row, 17));
item.setCostPrice(ExcelTool.readDoubleFromHSSFRow(row, 18));
item.setCostTaxPrice(ExcelTool.readDoubleFromHSSFRow(row, 19));
item.setNotTaxPrice(ExcelTool.readDoubleFromHSSFRow(row, 20));
item.setInputTaxRate(ExcelTool.readIntFromHSSFRow(row, 21));
return item;
}
}

120
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/extexcel/CsvTool.java

@ -0,0 +1,120 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.supervise.portal.extexcel;
import cn.hutool.core.text.csv.CsvRow;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
/**
* Project: yxt_supervise <br/>
* File: CsvTool.java <br/>
* Class: com.yxt.supervise.portal.extexcel.CsvTool <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022/12/1 0:33 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
public class CsvTool {
public static int readInteger(CsvRow row, int col) {
String s = row.get(col);
if (StringUtils.isBlank(s))
return 0;
int rs = 0;
try {
rs = Integer.parseInt(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public static double readDouble(CsvRow row, int col) {
String s = row.get(col);
if (StringUtils.isBlank(s))
return 0;
double rs = 0L;
try {
rs = Double.parseDouble(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public static int readIntegerFastCsv(de.siegmar.fastcsv.reader.CsvRow row, int col) {
String s = row.getField(col);
if (StringUtils.isBlank(s))
return 0;
int rs = 0;
try {
rs = Integer.parseInt(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public static double readDoubleFastCsv(de.siegmar.fastcsv.reader.CsvRow row, int col) {
String s = row.getField(col);
if (StringUtils.isBlank(s))
return 0;
double rs = 0L;
try {
rs = Double.parseDouble(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public static int readIntegerJavaCsv(com.csvreader.CsvReader row, int col) throws IOException {
String s = row.get(col);
if (StringUtils.isBlank(s))
return 0;
int rs = 0;
try {
rs = Integer.parseInt(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public static double readDoubleJavaCsv(com.csvreader.CsvReader row, int col) throws IOException {
String s = row.get(col);
if (StringUtils.isBlank(s))
return 0;
double rs = 0L;
try {
rs = Double.parseDouble(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
}

33
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/extexcel/ExcelUtil.java → yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/extexcel/ExcelTool.java

@ -9,7 +9,7 @@ import org.apache.poi.ss.usermodel.CellType;
import java.util.Date;
public class ExcelUtil {
public class ExcelTool {
public static String readStringFromHSSFRow(HSSFRow row, int col) {
HSSFCell cell = row.getCell(col);
@ -61,4 +61,35 @@ public class ExcelUtil {
}
return rs;
}
public static int toInt(Object obj) {
if (obj == null)
return 0;
String s = obj.toString();
if (StringUtils.isBlank(s))
return 0;
int rs = 0;
try {
rs = Integer.parseInt(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public static double toDouble(Object obj) {
if (obj == null)
return 0;
String s = obj.toString();
if (StringUtils.isBlank(s))
return 0;
double rs = 0;
try {
rs = Double.parseDouble(s);
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
}

2
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/application-devv.yml

@ -17,7 +17,7 @@ spring:
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password: 123456
password:
port: 6379
timeout: 0 # 连接超时时间(毫秒)

Loading…
Cancel
Save