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