diff --git a/docs/databases/storein.sql b/docs/databases/storein.sql index 7bcfe7df..c0e3295d 100644 --- a/docs/databases/storein.sql +++ b/docs/databases/storein.sql @@ -40,7 +40,7 @@ CREATE TABLE `storein_item` ( `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号', `supplierSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商SID', - `storeinCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商代码', + `supplierCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商代码', `supplierName` VARCHAR(100) NULL DEFAULT NULL COMMENT '供应商名称', `productCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '货号', @@ -105,7 +105,7 @@ CREATE TABLE `storeout_item` ( `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号', `supplierSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商SID', - `storeinCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商代码', + `supplierCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商代码', `supplierName` VARCHAR(100) NULL DEFAULT NULL COMMENT '供应商名称', `productCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '货号', diff --git a/docs/demofiles/汇融银行_出库明细表.xls b/docs/demofiles/汇融银行_出库明细表.xls new file mode 100644 index 00000000..f02a87c4 Binary files /dev/null and b/docs/demofiles/汇融银行_出库明细表.xls differ diff --git a/docs/demofiles/汇融银行_出库明细表.xlsx b/docs/demofiles/汇融银行_出库明细表.xlsx new file mode 100644 index 00000000..8b615490 Binary files /dev/null and b/docs/demofiles/汇融银行_出库明细表.xlsx differ diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInItem.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInItem.java index 547f20c1..329a3388 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInItem.java +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInItem.java @@ -15,21 +15,21 @@ public class StoreInItem extends BaseEntity { private String storeinSid; // 入库单SID private String billNo; // 单据号 private String supplierSid; // 供应商SID - private String storeinCode; // 供应商代码 + private String supplierCode; // 供应商代码 private String supplierName; // 供应商名称 private String productCode; // 货号 private String productName; // 商品名称 private Date productDate; // 商品生产日期 - private int productQualityGuaranteePeriod; //商品保质期(天) + private Integer productQualityGuaranteePeriod; //商品保质期(天) private String productSpecifications; // 商品规格 private String categoryKey; // 类别编号 private String category; // 类别名称 private String categoryOne; // 一级类别名称 private String categoryTwo; // 二级类别名称 - private double inPrice; // 入库金额 - private int inNumber; // 入库数量 - private double costPrice; // 成本金额 - private double costTaxPrice; // 成本税额 - private double notTaxPrice; // 不含税成本 - private int inputTaxRate; // 进项税率 + private Double inPrice; // 入库金额 + private Integer inNumber; // 入库数量 + private Double costPrice; // 成本金额 + private Double costTaxPrice; // 成本税额 + private Double notTaxPrice; // 不含税成本 + private Integer inputTaxRate; // 进项税率 } diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOut.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOut.java new file mode 100644 index 00000000..91ab6721 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOut.java @@ -0,0 +1,59 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.api.storeout; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.Date; + +/** + * Project: yxt_supervise
+ * File: StoreOut.java
+ * Class: com.yxt.supervise.portal.api.StoreOut
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 0:40
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "出库单", description = "出库单") +@TableName("storeout") +public class StoreOut extends BaseEntity { + + private String orgCode; // 企业组织机构代码证 + private String storeCode; // 仓库/门店编号 + private String storeName; // 仓库/门店名称 + private Date outTime; //出库时间 + private String billNo; // 单据号 + private String billType; // 单据类型 +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOutAndItemDto.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOutAndItemDto.java new file mode 100644 index 00000000..00b5188b --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOutAndItemDto.java @@ -0,0 +1,50 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.api.storeout; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * Project: yxt_supervise
+ * File: StoreOutAndItemDto.java
+ * Class: com.yxt.supervise.portal.api.storeout.StoreOutAndItemDto
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 1:01
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +public class StoreOutAndItemDto { + private StoreOut storeOut; + private List itemList = new ArrayList<>(); +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOutItem.java b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOutItem.java new file mode 100644 index 00000000..7fccdc58 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storeout/StoreOutItem.java @@ -0,0 +1,73 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.api.storeout; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.Date; + +/** + * Project: yxt_supervise
+ * File: StoreOutItem.java
+ * Class: com.yxt.supervise.portal.api.storeout.StoreOutItem
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 0:52
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "出库明细", description = "出库明细") +@TableName("storeout_item") +public class StoreOutItem extends BaseEntity { + + private String storeoutSid; // '出库单SID' + private String billNo; // 单据号 + private String supplierSid; // 供应商SID + private String supplierCode; // 供应商代码 + private String supplierName; // 供应商名称 + private String productCode; // 货号 + private String productName; // 商品名称 + private Date productDate; // 商品生产日期 + private Integer productQualityGuaranteePeriod; //商品保质期(天) + private String productSpecifications; // 商品规格 + private String categoryKey; // 类别编号 + private String category; // 类别名称 + private String categoryOne; // 一级类别名称 + private String categoryTwo; // 二级类别名称 + private Double outPrice; // '出库金额' + private Integer outNumber; // '出库数量' + private Double costPrice; // 成本金额 + private Double costTaxPrice; // 成本税额 + private Double notTaxPrice; // 不含税成本 + private Integer inputTaxRate; // 进项税率 +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemMapper.java index eb13df12..30fbc72f 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemMapper.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemMapper.java @@ -2,6 +2,7 @@ package com.yxt.supervise.portal.biz.storein; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.yxt.supervise.portal.api.storein.StoreInItem; +import com.yxt.supervise.portal.api.storeout.StoreOutItem; import org.apache.ibatis.annotations.Mapper; @Mapper diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInRest.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInRest.java index 910e6213..8a87be68 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInRest.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInRest.java @@ -18,7 +18,7 @@ public class StoreInRest { ResultBean rb = ResultBean.fireFail(); - storeInService.importXlsFromFilePath("E:/lzh/projects/supervise/docs/demofiles/汇融银行_入库明细表.xls"); + storeInService.importXlsFromFilePath("D:/works/projects/javaee/yxtgit/supervise/docs/demofiles/汇融银行_入库明细表.xls"); return rb.success(); } } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java index fdd57463..f8e1d9ab 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java @@ -40,7 +40,6 @@ public class StoreInService extends MybatisBaseService { Map map = new HashMap<>(); - for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) { HSSFRow row = sheet.getRow(rowNum); String c_f = ExcelUtil.readStringFromHSSFRow(row, 5); // 单据号 @@ -53,22 +52,73 @@ public class StoreInService extends MybatisBaseService { } StoreInItem item = createStoreInItemFromRow(row); dto.getItemList().add(item); - } - + for (String key : map.keySet()) { + StoreInWithItemDto dto = map.get(key); + baseMapper.insert(dto.getStoreIn()); + storeInItemService.saveBatch(dto.getItemList()); + } return rb.success(); } - private StoreInItem createStoreInItemFromRow(HSSFRow row) { - StoreInItem item = new StoreInItem(); - - return item; - } - private StoreIn createStoreInFromRow(HSSFRow row) { + // `orgCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '企业组织机构代码证', + // `storeCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店编号', + // `storeName` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店名称', + // `receiptTime` DATETIME NULL DEFAULT NULL COMMENT '收货时间', + // `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)); return si; } + + private StoreInItem createStoreInItemFromRow(HSSFRow row) { + // `storeinSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '入库单SID', + // `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号', + // `supplierSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商SID', + // `storeinCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商代码', + // `supplierName` VARCHAR(100) NULL DEFAULT NULL COMMENT '供应商名称', + // `productCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '货号', + // `productName` VARCHAR(100) NULL DEFAULT NULL COMMENT '商品名称', + // `productDate` DATE NULL DEFAULT NULL COMMENT '商品生产日期', + // `productQualityGuaranteePeriod` int(11) NULL DEFAULT NULL COMMENT '商品保质期(天)', + // `productSpecifications` VARCHAR(100) NULL DEFAULT NULL COMMENT '商品规格', + // `categoryKey` VARCHAR(100) NULL DEFAULT NULL COMMENT '类别编号', + // `category` VARCHAR(100) NULL DEFAULT NULL COMMENT '类别名称', + // `categoryOne` VARCHAR(100) NULL DEFAULT NULL COMMENT '一级类别名称', + // `categoryTwo` VARCHAR(100) NULL DEFAULT NULL COMMENT '二级类别名称', + // `inPrice` double(10,2) NULL DEFAULT NULL COMMENT '入库金额', + // `inNumber` int(11) NULL DEFAULT NULL COMMENT '入库数量', + // `costPrice` double(10,2) NULL DEFAULT NULL COMMENT '成本金额', + // `costTaxPrice` double(10,2) NULL DEFAULT NULL COMMENT '成本税额', + // `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)); + return item; + } } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutItemMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutItemMapper.java new file mode 100644 index 00000000..323da355 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutItemMapper.java @@ -0,0 +1,48 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.biz.storeout; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.supervise.portal.api.storein.StoreInItem; +import com.yxt.supervise.portal.api.storeout.StoreOutItem; +import org.apache.ibatis.annotations.Mapper; + +/** + * Project: yxt_supervise
+ * File: StoreOutItemMapper.java
+ * Class: com.yxt.supervise.portal.biz.storeout.StoreOutItemMapper
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 1:05
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface StoreOutItemMapper extends BaseMapper { +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutItemService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutItemService.java new file mode 100644 index 00000000..3b5202de --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutItemService.java @@ -0,0 +1,47 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.biz.storeout; + +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.supervise.portal.api.storeout.StoreOutItem; +import org.springframework.stereotype.Service; + +/** + * Project: yxt_supervise
+ * File: StoreOutItemService.java
+ * Class: com.yxt.supervise.portal.biz.storeout.StoreOutItemService
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 1:06
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class StoreOutItemService extends MybatisBaseService { +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutMapper.java new file mode 100644 index 00000000..603faa7d --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutMapper.java @@ -0,0 +1,47 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.biz.storeout; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.supervise.portal.api.storeout.StoreOut; +import org.apache.ibatis.annotations.Mapper; + +/** + * Project: yxt_supervise
+ * File: StoreOutMapper.java
+ * Class: com.yxt.supervise.portal.biz.storeout.StoreOutMapper
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 1:09
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface StoreOutMapper extends BaseMapper { +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutRest.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutRest.java new file mode 100644 index 00000000..948d64b0 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutRest.java @@ -0,0 +1,63 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.biz.storeout; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.supervise.portal.api.storeout.StoreOut; +import com.yxt.supervise.portal.biz.storein.StoreInService; +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
+ * File: StoreOutRest.java
+ * Class: com.yxt.supervise.portal.biz.storeout.StoreOutRest
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 1:03
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@RestController("com.yxt.supervise.portal.biz.storeout.StoreOutRest") +@RequestMapping("/storeout") +public class StoreOutRest { + + @Autowired + private StoreOutService storeOutService; + + @GetMapping("/testimport") + public ResultBean testimport(){ + ResultBean rb = ResultBean.fireFail(); + + storeOutService.importXlsFromFilePath("D:/works/projects/javaee/yxtgit/supervise/docs/demofiles/汇融银行_出库明细表.xls"); + return rb.success(); + } +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutService.java new file mode 100644 index 00000000..916bfc6a --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeout/StoreOutService.java @@ -0,0 +1,163 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.supervise.portal.biz.storeout; + +import cn.hutool.core.io.FileUtil; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import com.yxt.supervise.portal.api.storein.StoreInItem; +import com.yxt.supervise.portal.api.storein.StoreInWithItemDto; +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.utils.ExcelUtil; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * Project: yxt_supervise
+ * File: StoreOutService.java
+ * Class: com.yxt.supervise.portal.biz.storeout.StoreOutService
+ * Description: <描述类的功能>.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2022/11/24 1:10
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class StoreOutService extends MybatisBaseService { + + @Autowired + private StoreOutItemService storeOutItemService; + + public ResultBean importXlsFromFilePath(String xlsFilePath) { + ResultBean rb = ResultBean.fireFail(); + + HSSFWorkbook hssfWorkbook = null; + try { + BufferedInputStream is = FileUtil.getInputStream(xlsFilePath); + hssfWorkbook = new HSSFWorkbook(is); + } catch (IOException e) { + e.printStackTrace(); + } + + HSSFSheet sheet = hssfWorkbook.getSheetAt(0); + + Map map = new HashMap<>(); + + for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) { + HSSFRow row = sheet.getRow(rowNum); + String c_f = ExcelUtil.readStringFromHSSFRow(row, 5); // 单据号 + StoreOutAndItemDto dto = map.get(c_f); + if (dto == null) { + dto = new StoreOutAndItemDto(); + StoreOut si = createStoreOutFromRow(row); + dto.setStoreOut(si); + map.put(c_f, dto); + } + StoreOutItem item = createStoreOutItemFromRow(row); + dto.getItemList().add(item); + } + + for (String key : map.keySet()) { + StoreOutAndItemDto dto = map.get(key); + baseMapper.insert(dto.getStoreOut()); + storeOutItemService.saveBatch(dto.getItemList()); + } + return rb.success(); + } + + private StoreOut createStoreOutFromRow(HSSFRow row) { + // `orgCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '企业组织机构代码证', + // `storeCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店编号', + // `storeName` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店名称', + // `receiptTime` DATETIME NULL DEFAULT NULL COMMENT '收货时间', + // `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)); + + return si; + } + + private StoreOutItem createStoreOutItemFromRow(HSSFRow row) { + // `storeinSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '入库单SID', + // `billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号', + // `supplierSid` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商SID', + // `storeinCode` VARCHAR(64) NULL DEFAULT NULL COMMENT '供应商代码', + // `supplierName` VARCHAR(100) NULL DEFAULT NULL COMMENT '供应商名称', + // `productCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '货号', + // `productName` VARCHAR(100) NULL DEFAULT NULL COMMENT '商品名称', + // `productDate` DATE NULL DEFAULT NULL COMMENT '商品生产日期', + // `productQualityGuaranteePeriod` int(11) NULL DEFAULT NULL COMMENT '商品保质期(天)', + // `productSpecifications` VARCHAR(100) NULL DEFAULT NULL COMMENT '商品规格', + // `categoryKey` VARCHAR(100) NULL DEFAULT NULL COMMENT '类别编号', + // `category` VARCHAR(100) NULL DEFAULT NULL COMMENT '类别名称', + // `categoryOne` VARCHAR(100) NULL DEFAULT NULL COMMENT '一级类别名称', + // `categoryTwo` VARCHAR(100) NULL DEFAULT NULL COMMENT '二级类别名称', + // `inPrice` double(10,2) NULL DEFAULT NULL COMMENT '入库金额', + // `inNumber` int(11) NULL DEFAULT NULL COMMENT '入库数量', + // `costPrice` double(10,2) NULL DEFAULT NULL COMMENT '成本金额', + // `costTaxPrice` double(10,2) NULL DEFAULT NULL COMMENT '成本税额', + // `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)); + return item; + } +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/utils/ExcelUtil.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/utils/ExcelUtil.java index 5e4e7e69..6609ff76 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/utils/ExcelUtil.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/utils/ExcelUtil.java @@ -1,11 +1,15 @@ package com.yxt.supervise.portal.utils; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.ss.usermodel.CellType; +import java.util.Date; + public class ExcelUtil { public static String readStringFromHSSFRow(HSSFRow row, int col) { @@ -16,4 +20,46 @@ public class ExcelUtil { return ""; return cellValue; } + + public static Date readDateTimeFromHSSFRow(HSSFRow row, int col) { + String s = readStringFromHSSFRow(row, col); + if (StringUtils.isBlank(s)) + return null; + DateTime parse = DateUtil.parse(s, "yyyy-MM-dd HH:mm:ss"); + return parse; + } + + public static Date readDateFromHSSFRow(HSSFRow row, int col) { + String s = readStringFromHSSFRow(row, col); + if (StringUtils.isBlank(s)) + return null; + DateTime parse = DateUtil.parse(s, "HH:mm:ss"); + return parse; + } + + public static Integer readIntFromHSSFRow(HSSFRow row, int col) { + String s = readStringFromHSSFRow(row, col); + if (StringUtils.isBlank(s)) + return null; + Integer rs = null; + try { + rs = Integer.valueOf(s); + } catch (Exception e) { + e.printStackTrace(); + } + return rs; + } + + public static Double readDoubleFromHSSFRow(HSSFRow row, int col) { + String s = readStringFromHSSFRow(row, col); + if (StringUtils.isBlank(s)) + return null; + Double rs = null; + try { + rs = Double.valueOf(s); + } catch (Exception e) { + e.printStackTrace(); + } + return rs; + } } diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/application.yml b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/application.yml index 704c366d..868d86f0 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/application.yml +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/application.yml @@ -2,7 +2,7 @@ spring: application: name: supervise-portal profiles: - active: devv + active: test messages: # 国际化资源文件路径 basename: i18n/messages