Browse Source

入库单导入

master
yxt_njy 3 years ago
parent
commit
75599623fc
  1. 2
      base-ui/.env.development
  2. 129
      docs/databases/storein.sql
  3. BIN
      docs/demofiles/汇融银行_入库明细表.xls
  4. BIN
      docs/demofiles/汇融银行_入库明细表.xlsx
  5. 22
      yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreIn.java
  6. 35
      yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInItem.java
  7. 14
      yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInWithItemDto.java
  8. 10
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemMapper.java
  9. 9
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemService.java
  10. 10
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInMapper.java
  11. 24
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInRest.java
  12. 74
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInService.java
  13. 19
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/utils/ExcelUtil.java
  14. 13
      yxt_supervise/supervise-portal/supervise-portal-biz/src/test/java/com/yxt/supervise/portal/biz/storein/StoreInServiceTest.java

2
base-ui/.env.development

@ -6,4 +6,4 @@ VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://26077a35f5.wicp.vip"
VUE_APP_URL = "http://127.0.0.1:8111"
VUE_APP_URL = "http://127.0.0.1:7003"

129
docs/databases/storein.sql

@ -0,0 +1,129 @@
DROP TABLE IF EXISTS `storein`;
CREATE TABLE `storein` (
`id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号',
`sid` VARCHAR(64) NOT NULL COMMENT 'sid',
`lockVersion` VARCHAR(2) NULL DEFAULT NULL COMMENT '记录版本,锁',
`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`state` INT(11) NOT NULL DEFAULT '1' COMMENT '记录状态值',
`isEnable` INT(32) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`isDelete` INT(32) NOT NULL DEFAULT '0' COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '更新者',
`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 '单据类型',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='入库单';
DROP TABLE IF EXISTS `storein_item`;
CREATE TABLE `storein_item` (
`id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号',
`sid` VARCHAR(64) NOT NULL COMMENT 'sid',
`lockVersion` VARCHAR(2) NULL DEFAULT NULL COMMENT '记录版本,锁',
`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`state` INT(11) NOT NULL DEFAULT '1' COMMENT '记录状态值',
`isEnable` INT(32) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`isDelete` INT(32) NOT NULL DEFAULT '0' COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '更新者',
`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 '进项税率',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='入库单明细';
DROP TABLE IF EXISTS `storeout`;
CREATE TABLE `storeout` (
`id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号',
`sid` VARCHAR(64) NOT NULL COMMENT 'sid',
`lockVersion` VARCHAR(2) NULL DEFAULT NULL COMMENT '记录版本,锁',
`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`state` INT(11) NOT NULL DEFAULT '1' COMMENT '记录状态值',
`isEnable` INT(32) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`isDelete` INT(32) NOT NULL DEFAULT '0' COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '更新者',
`orgCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '企业组织机构代码证',
`storeCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店编号',
`storeName` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店名称',
`outTime` DATETIME NULL DEFAULT NULL COMMENT '出库时间',
`billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号',
`billType` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据类型',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='出库单';
DROP TABLE IF EXISTS `storeout_item`;
CREATE TABLE `storeout_item` (
`id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号',
`sid` VARCHAR(64) NOT NULL COMMENT 'sid',
`lockVersion` VARCHAR(2) NULL DEFAULT NULL COMMENT '记录版本,锁',
`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`state` INT(11) NOT NULL DEFAULT '1' COMMENT '记录状态值',
`isEnable` INT(32) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`isDelete` INT(32) NOT NULL DEFAULT '0' COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '更新者',
`storeoutSid` 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 '二级类别名称',
`outPrice` double(10,2) NULL DEFAULT NULL COMMENT '出库金额',
`outNumber` 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 '进项税率',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='出库单明细';

BIN
docs/demofiles/汇融银行_入库明细表.xls

Binary file not shown.

BIN
docs/demofiles/汇融银行_入库明细表.xlsx

Binary file not shown.

22
yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreIn.java

@ -0,0 +1,22 @@
package com.yxt.supervise.portal.api.storein;
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;
@Data
@ApiModel(value = "入库单", description = "入库单")
@TableName("storein")
public class StoreIn extends BaseEntity {
private String orgCode; // 企业组织机构代码证
private String storeCode; // 仓库/门店编号
private String storeName; // 仓库/门店名称
private Date receiptTime; //收货时间
private String billNo; // 单据号
private String billType; // 单据类型
}

35
yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInItem.java

@ -0,0 +1,35 @@
package com.yxt.supervise.portal.api.storein;
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;
@Data
@ApiModel(value = "入库单", description = "入库单")
@TableName("storein_item")
public class StoreInItem extends BaseEntity {
private String storeinSid; // 入库单SID
private String billNo; // 单据号
private String supplierSid; // 供应商SID
private String storeinCode; // 供应商代码
private String supplierName; // 供应商名称
private String productCode; // 货号
private String productName; // 商品名称
private Date productDate; // 商品生产日期
private int 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; // 进项税率
}

14
yxt_supervise/supervise-portal/supervise-portal-api/src/main/java/com/yxt/supervise/portal/api/storein/StoreInWithItemDto.java

@ -0,0 +1,14 @@
package com.yxt.supervise.portal.api.storein;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class StoreInWithItemDto {
private StoreIn storeIn;
private List<StoreInItem> itemList = new ArrayList<>();
}

10
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemMapper.java

@ -0,0 +1,10 @@
package com.yxt.supervise.portal.biz.storein;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.supervise.portal.api.storein.StoreInItem;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StoreInItemMapper extends BaseMapper<StoreInItem> {
}

9
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInItemService.java

@ -0,0 +1,9 @@
package com.yxt.supervise.portal.biz.storein;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.supervise.portal.api.storein.StoreInItem;
import org.springframework.stereotype.Service;
@Service
public class StoreInItemService extends MybatisBaseService<StoreInItemMapper, StoreInItem> {
}

10
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInMapper.java

@ -0,0 +1,10 @@
package com.yxt.supervise.portal.biz.storein;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.supervise.portal.api.storein.StoreIn;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StoreInMapper extends BaseMapper<StoreIn> {
}

24
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storein/StoreInRest.java

@ -0,0 +1,24 @@
package com.yxt.supervise.portal.biz.storein;
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;
@RestController("com.yxt.supervise.portal.biz.storein.StoreInRest")
@RequestMapping("/storein")
public class StoreInRest {
@Autowired
private StoreInService storeInService;
@GetMapping("/testimport")
public ResultBean testimport(){
ResultBean rb = ResultBean.fireFail();
storeInService.importXlsFromFilePath("E:/lzh/projects/supervise/docs/demofiles/汇融银行_入库明细表.xls");
return rb.success();
}
}

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

@ -0,0 +1,74 @@
package com.yxt.supervise.portal.biz.storein;
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.StoreIn;
import com.yxt.supervise.portal.api.storein.StoreInItem;
import com.yxt.supervise.portal.api.storein.StoreInWithItemDto;
import com.yxt.supervise.portal.utils.ExcelUtil;
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.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;
@Service
public class StoreInService extends MybatisBaseService<StoreInMapper, StoreIn> {
@Autowired
private StoreInItemService storeInItemService;
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<String, StoreInWithItemDto> map = new HashMap<>();
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
HSSFRow row = sheet.getRow(rowNum);
String c_f = ExcelUtil.readStringFromHSSFRow(row, 5); // 单据号
StoreInWithItemDto dto = map.get(c_f);
if (dto == null) {
dto = new StoreInWithItemDto();
StoreIn si = createStoreInFromRow(row);
dto.setStoreIn(si);
map.put(c_f, dto);
}
StoreInItem item = createStoreInItemFromRow(row);
dto.getItemList().add(item);
}
return rb.success();
}
private StoreInItem createStoreInItemFromRow(HSSFRow row) {
StoreInItem item = new StoreInItem();
return item;
}
private StoreIn createStoreInFromRow(HSSFRow row) {
StoreIn si = new StoreIn();
return si;
}
}

19
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/utils/ExcelUtil.java

@ -0,0 +1,19 @@
package com.yxt.supervise.portal.utils;
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;
public class ExcelUtil {
public static String readStringFromHSSFRow(HSSFRow row, int col) {
HSSFCell cell = row.getCell(col);
cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue();
if (StringUtils.isBlank(cellValue))
return "";
return cellValue;
}
}

13
yxt_supervise/supervise-portal/supervise-portal-biz/src/test/java/com/yxt/supervise/portal/biz/storein/StoreInServiceTest.java

@ -0,0 +1,13 @@
package com.yxt.supervise.portal.biz.storein;
import junit.framework.TestCase;
public class StoreInServiceTest extends TestCase {
public void testImportXlsFromFilePath() {
System.out.println("jjj");
}
}
Loading…
Cancel
Save