14 changed files with 360 additions and 1 deletions
@ -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='出库单明细'; |
Binary file not shown.
Binary file not shown.
@ -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; // 单据类型
|
|||
|
|||
} |
@ -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; // 进项税率
|
|||
} |
@ -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<>(); |
|||
} |
@ -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> { |
|||
|
|||
} |
@ -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> { |
|||
} |
@ -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> { |
|||
|
|||
} |
@ -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(); |
|||
} |
|||
} |
@ -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; |
|||
} |
|||
} |
@ -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; |
|||
} |
|||
} |
@ -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…
Reference in new issue