开始更新新架构
This commit is contained in:
parent
625250dd9c
commit
67f329cb14
|
|
@ -0,0 +1,28 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>cn.qihangerp.services</groupId>
|
||||||
|
<artifactId>microservices</artifactId>
|
||||||
|
<version>1.0.6</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>goods-api</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>goods-api</name>
|
||||||
|
<url>http://maven.apache.org</url>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.zhijian;
|
||||||
|
|
||||||
|
//import org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration;
|
||||||
|
import org.springframework.boot.SpringBootConfiguration;
|
||||||
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
|
import org.springframework.context.annotation.FilterType;
|
||||||
|
|
||||||
|
|
||||||
|
//@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class ,MybatisAutoConfiguration.class})
|
||||||
|
//@ComponentScan
|
||||||
|
//@Configuration
|
||||||
|
//@EnableAutoConfiguration
|
||||||
|
@Configuration
|
||||||
|
//@EnableAutoConfiguration(exclude = MybatisAutoConfiguration.class)
|
||||||
|
@ComponentScan(basePackages = "com.zhijian",
|
||||||
|
excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = FrameworkAutoConfiguration.class))
|
||||||
|
public class FrameworkAutoConfiguration {
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package cn.qihangerp.api.goods.config;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.DbType;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||||
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@MapperScan({"cn.qihangerp.module.*.mapper"})
|
||||||
|
public class MybatisPlusConfig {
|
||||||
|
@Bean
|
||||||
|
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||||
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||||
|
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); //注意使用哪种数据库
|
||||||
|
return interceptor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package cn.qihangerp.oms.controller;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.AjaxResult;
|
||||||
|
import cn.qihangerp.common.PageQuery;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.TableDataInfo;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsBrand;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsBrandService;
|
||||||
|
|
||||||
|
import cn.qihangerp.security.common.BaseController;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/goods_brand")
|
||||||
|
public class GoodsBrandController extends BaseController {
|
||||||
|
private final OGoodsBrandService brandService;
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo skuList(OGoodsBrand bo, PageQuery pageQuery)
|
||||||
|
{
|
||||||
|
var pageList = brandService.queryPageList(bo,pageQuery);
|
||||||
|
return getDataTable(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品品牌详细信息
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(brandService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增商品品牌
|
||||||
|
*/
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody OGoodsBrand erpGoodsBrand)
|
||||||
|
{
|
||||||
|
erpGoodsBrand.setStatus(1);
|
||||||
|
erpGoodsBrand.setCreateBy(getUsername());
|
||||||
|
erpGoodsBrand.setCreateTime(new Date());
|
||||||
|
return toAjax(brandService.save(erpGoodsBrand));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改商品品牌
|
||||||
|
*/
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody OGoodsBrand erpGoodsBrand)
|
||||||
|
{
|
||||||
|
erpGoodsBrand.setUpdateBy(getUsername());
|
||||||
|
erpGoodsBrand.setUpdateTime(new Date());
|
||||||
|
return toAjax(brandService.updateById(erpGoodsBrand));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除商品品牌
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(brandService.removeByIds(Arrays.stream(ids).toList()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,142 @@
|
||||||
|
package cn.qihangerp.oms.controller;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.AjaxResult;
|
||||||
|
import cn.qihangerp.common.TableDataInfo;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsCategory;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsCategoryAttribute;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsCategoryAttributeValue;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsCategoryAttributeService;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsCategoryAttributeValueService;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsCategoryService;
|
||||||
|
import cn.qihangerp.security.common.BaseController;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/goods_category")
|
||||||
|
public class GoodsCategoryController extends BaseController {
|
||||||
|
private final OGoodsCategoryService categoryService;
|
||||||
|
private final OGoodsCategoryAttributeService categoryAttributeService;
|
||||||
|
private final OGoodsCategoryAttributeValueService categoryAttributeValueService;
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo categoryList()
|
||||||
|
{
|
||||||
|
var pageList = categoryService.list();
|
||||||
|
return getDataTable(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(categoryService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody OGoodsCategory category)
|
||||||
|
{
|
||||||
|
category.setCreateBy(getUsername());
|
||||||
|
categoryService.addCategory(category);
|
||||||
|
return toAjax(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody OGoodsCategory category)
|
||||||
|
{
|
||||||
|
category.setUpdateBy(getUsername());
|
||||||
|
category.setUpdateTime(new Date());
|
||||||
|
return toAjax(categoryService.updateById(category));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 删除分类
|
||||||
|
* @param ids
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/del/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(categoryService.removeByIds(Arrays.stream(ids).toList()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分类属性列表
|
||||||
|
* @param categoryId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/attribute_list")
|
||||||
|
public TableDataInfo attributeList(Integer categoryId)
|
||||||
|
{
|
||||||
|
var pageList = categoryAttributeService.list(new LambdaQueryWrapper<OGoodsCategoryAttribute>().eq(OGoodsCategoryAttribute::getCategoryId,categoryId));
|
||||||
|
return getDataTable(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分类属性添加
|
||||||
|
* @param attribute
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/attribute_add")
|
||||||
|
public AjaxResult attributeAdd(@RequestBody OGoodsCategoryAttribute attribute)
|
||||||
|
{
|
||||||
|
return toAjax(categoryAttributeService.save(attribute));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/attribute/{id}")
|
||||||
|
public AjaxResult getAttributeInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(categoryAttributeService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/attribute")
|
||||||
|
public AjaxResult attributeEdit(@RequestBody OGoodsCategoryAttribute attribute)
|
||||||
|
{
|
||||||
|
return toAjax(categoryAttributeService.updateById(attribute));
|
||||||
|
}
|
||||||
|
@DeleteMapping("/attribute/{ids}")
|
||||||
|
public AjaxResult attributeRemove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(categoryAttributeService.removeByIds(Arrays.stream(ids).toList()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/attribute_value_list")
|
||||||
|
public TableDataInfo attributeValueList(Integer categoryAttributeId)
|
||||||
|
{
|
||||||
|
var pageList = categoryAttributeValueService.list(
|
||||||
|
new LambdaQueryWrapper<OGoodsCategoryAttributeValue>().eq(OGoodsCategoryAttributeValue::getCategoryAttributeId,categoryAttributeId));
|
||||||
|
return getDataTable(pageList);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/attribute_value")
|
||||||
|
public AjaxResult add(@RequestBody OGoodsCategoryAttributeValue attributeValue)
|
||||||
|
{
|
||||||
|
return toAjax(categoryAttributeValueService.save(attributeValue));
|
||||||
|
}
|
||||||
|
@GetMapping(value = "/attribute_value/{id}")
|
||||||
|
public AjaxResult getAttributeValueInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(categoryAttributeValueService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/attribute_value")
|
||||||
|
public AjaxResult attributeValueEdit(@RequestBody OGoodsCategoryAttributeValue attributeValue)
|
||||||
|
{
|
||||||
|
return toAjax(categoryAttributeValueService.updateById(attributeValue));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除商品分类属性值
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/attribute_value/{ids}")
|
||||||
|
public AjaxResult removeAttributeValue(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(categoryAttributeValueService.removeByIds(Arrays.stream(ids).toList()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,247 @@
|
||||||
|
package cn.qihangerp.oms.controller;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.PageQuery;
|
||||||
|
import cn.qihangerp.common.PageResult;
|
||||||
|
import cn.qihangerp.common.ResultVo;
|
||||||
|
import cn.qihangerp.common.AjaxResult;
|
||||||
|
import cn.qihangerp.common.TableDataInfo;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoods;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsSku;
|
||||||
|
import cn.qihangerp.module.goods.domain.bo.GoodsAddBo;
|
||||||
|
import cn.qihangerp.module.goods.domain.vo.GoodsSpecListVo;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsService;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsSkuService;
|
||||||
|
import cn.qihangerp.security.common.BaseController;
|
||||||
|
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
import org.apache.poi.ss.util.NumberToTextConverter;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品管理Controller
|
||||||
|
*
|
||||||
|
* @author qihang
|
||||||
|
* @date 2023-12-29
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/goods")
|
||||||
|
public class GoodsController extends BaseController
|
||||||
|
{
|
||||||
|
private final OGoodsService goodsService;
|
||||||
|
private final OGoodsSkuService skuService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 搜索商品SKU
|
||||||
|
* 条件:商品编码、SKU、商品名称
|
||||||
|
*/
|
||||||
|
@GetMapping("/searchSku")
|
||||||
|
public TableDataInfo searchSkuBy(String keyword)
|
||||||
|
{
|
||||||
|
List<GoodsSpecListVo> list = goodsService.searchGoodsSpec(keyword);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/sku_list")
|
||||||
|
public TableDataInfo skuList(OGoodsSku bo, PageQuery pageQuery)
|
||||||
|
{
|
||||||
|
var pageList = goodsService.querySkuPageList(bo,pageQuery);
|
||||||
|
return getDataTable(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询商品管理列表
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(OGoods goods, PageQuery pageQuery)
|
||||||
|
{
|
||||||
|
PageResult<OGoods> pageList = goodsService.queryPageList(goods, pageQuery);
|
||||||
|
return getDataTable(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取商品管理详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:query')")
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(goodsService.selectGoodsById(id));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获取商品管理详细信息
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:query')")
|
||||||
|
@GetMapping(value = "/sku/{id}")
|
||||||
|
public AjaxResult getSkuInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(skuService.getById(id));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 新增商品管理
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:add')")
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody GoodsAddBo goods)
|
||||||
|
{
|
||||||
|
ResultVo<Long> resultVo = goodsService.insertGoods(getUsername(), goods);
|
||||||
|
if(resultVo.getCode()!=0) return AjaxResult.error(resultVo.getMsg());
|
||||||
|
else return AjaxResult.success(resultVo.getData());
|
||||||
|
// goods.setCreateBy(getUsername());
|
||||||
|
// int result = goodsService.insertGoods(goods);
|
||||||
|
// if(result == -1) new AjaxResult(501,"商品编码已存在");
|
||||||
|
// return toAjax(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:add')")
|
||||||
|
@PostMapping("/goodsSku")
|
||||||
|
public AjaxResult addSku(@RequestBody OGoodsSku goodsSku)
|
||||||
|
{
|
||||||
|
|
||||||
|
int result = goodsService.insertGoodsSku(goodsSku);
|
||||||
|
if(result == -1) new AjaxResult(501,"商品编码已存在");
|
||||||
|
return toAjax(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改商品管理
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:edit')")
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody OGoods goods)
|
||||||
|
{
|
||||||
|
return toAjax(goodsService.updateGoods(goods));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改商品基本资料
|
||||||
|
* @param sku
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PutMapping("/sku")
|
||||||
|
public AjaxResult editSku(@RequestBody OGoodsSku sku)
|
||||||
|
{
|
||||||
|
return toAjax(skuService.updateById(sku));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除商品管理
|
||||||
|
*/
|
||||||
|
@PreAuthorize("@ss.hasPermi('goods:goods:remove')")
|
||||||
|
@DeleteMapping("/del/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
int result = goodsService.deleteGoodsByIds(ids);
|
||||||
|
if(result==0) return AjaxResult.success();
|
||||||
|
else if (result==-100) return AjaxResult.error("有关联的订单,不能删除!");
|
||||||
|
else return AjaxResult.error();
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/goods_sku_import", method = RequestMethod.POST)
|
||||||
|
public AjaxResult orderSendExcel(@RequestPart("file") MultipartFile file) throws IOException, InvalidFormatException {
|
||||||
|
|
||||||
|
String fileName = file.getOriginalFilename();
|
||||||
|
String dir = System.getProperty("user.dir");
|
||||||
|
String destFileName = dir + File.separator + "/import/uploadedfiles_" + fileName;
|
||||||
|
System.out.println(destFileName);
|
||||||
|
File destFile = new File(destFileName);
|
||||||
|
file.transferTo(destFile);
|
||||||
|
InputStream fis = null;
|
||||||
|
fis = new FileInputStream(destFileName);
|
||||||
|
if (fis == null) return AjaxResult.error("没有文件");
|
||||||
|
|
||||||
|
Workbook workbook = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (fileName.toLowerCase().endsWith("xlsx")) {
|
||||||
|
workbook = new XSSFWorkbook(fis);
|
||||||
|
} else if (fileName.toLowerCase().endsWith("xls")) {
|
||||||
|
workbook = new HSSFWorkbook(fis);
|
||||||
|
}
|
||||||
|
// workbook = new HSSFWorkbook(fis);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return AjaxResult.error(ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (workbook == null) return AjaxResult.error(502, "未读取到Excel文件");
|
||||||
|
|
||||||
|
/****************开始处理excel****************/
|
||||||
|
int success = 0;
|
||||||
|
int fail = 0;
|
||||||
|
Sheet sheet = null;
|
||||||
|
try {
|
||||||
|
sheet = workbook.getSheetAt(0);
|
||||||
|
int lastRowNum = sheet.getLastRowNum();//最后一行索引
|
||||||
|
Row row = null;
|
||||||
|
|
||||||
|
for (int i = 1; i <= lastRowNum; i++) {
|
||||||
|
row = sheet.getRow(i);
|
||||||
|
//数据
|
||||||
|
OGoodsSku sku = new OGoodsSku();
|
||||||
|
for(int c=0;c<6;c++){
|
||||||
|
Cell cell = row.getCell(c);
|
||||||
|
String cellValue = "";
|
||||||
|
if (cell != null) {
|
||||||
|
if (cell.getCellType() == CellType.STRING) {
|
||||||
|
cellValue = cell.getStringCellValue().replace("\t", "");
|
||||||
|
} else if (cell.getCellType() == CellType.NUMERIC) {
|
||||||
|
cellValue = NumberToTextConverter.toText(cell.getNumericCellValue()).replace("\t", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(c == 1) {
|
||||||
|
if(StringUtils.hasText(cellValue) ){
|
||||||
|
sku.setOuterErpGoodsId(cellValue);
|
||||||
|
}else {
|
||||||
|
sku.setOuterErpGoodsId("0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(StringUtils.hasText(cellValue)) {
|
||||||
|
if (c == 0) {
|
||||||
|
sku.setOuterErpSkuId(cellValue);
|
||||||
|
} else if (c == 2) {
|
||||||
|
sku.setSkuCode(cellValue);
|
||||||
|
} else if (c == 3) {
|
||||||
|
sku.setSkuName(cellValue);
|
||||||
|
} else if (c == 4) {
|
||||||
|
sku.setColorImage(cellValue);
|
||||||
|
} else if (c == 5) {
|
||||||
|
sku.setRemark(cellValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
goodsService.insertGoodsSku(sku);
|
||||||
|
success++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
fail++;
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
Map<String, Integer> result = new HashMap<>();
|
||||||
|
result.put("success",success);
|
||||||
|
result.put("fail",fail);
|
||||||
|
return AjaxResult.success(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
package cn.qihangerp.oms.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.PageQuery;
|
||||||
|
import cn.qihangerp.common.PageResult;
|
||||||
|
|
||||||
|
import cn.qihangerp.common.AjaxResult;
|
||||||
|
import cn.qihangerp.common.TableDataInfo;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsInventory;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsInventoryBatch;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsInventoryBatchService;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsInventoryService;
|
||||||
|
import cn.qihangerp.security.common.BaseController;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/goodsInventory")
|
||||||
|
public class GoodsInventoryController extends BaseController {
|
||||||
|
private final OGoodsInventoryService goodsInventoryService;
|
||||||
|
private final OGoodsInventoryBatchService inventoryBatchService;
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(OGoodsInventory bo, PageQuery pageQuery)
|
||||||
|
{
|
||||||
|
PageResult<OGoodsInventory> pageResult = goodsInventoryService.queryPageList(bo, pageQuery);
|
||||||
|
return getDataTable(pageResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
OGoodsInventory goodsInventory = goodsInventoryService.getById(id);
|
||||||
|
if(goodsInventory!=null) {
|
||||||
|
List<OGoodsInventoryBatch> list = inventoryBatchService.list(new LambdaQueryWrapper<OGoodsInventoryBatch>().eq(OGoodsInventoryBatch::getSkuId, goodsInventory.getSkuId()));
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
package cn.qihangerp.oms.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.qihangerp.common.PageQuery;
|
||||||
|
|
||||||
|
import cn.qihangerp.common.AjaxResult;
|
||||||
|
import cn.qihangerp.common.TableDataInfo;
|
||||||
|
import cn.qihangerp.module.goods.domain.OGoodsSupplier;
|
||||||
|
import cn.qihangerp.module.goods.service.OGoodsSupplierService;
|
||||||
|
import cn.qihangerp.security.common.BaseController;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/supplier")
|
||||||
|
public class GoodsSupplierController extends BaseController {
|
||||||
|
private final OGoodsSupplierService supplierService;
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(OGoodsSupplier bo, PageQuery pageQuery)
|
||||||
|
{
|
||||||
|
var pageList = supplierService.queryPageList(bo,pageQuery);
|
||||||
|
return getDataTable(pageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取【请填写功能名称】详细信息
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return success(supplierService.getById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增【请填写功能名称】
|
||||||
|
*/
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestBody OGoodsSupplier scmSupplier)
|
||||||
|
{
|
||||||
|
scmSupplier.setCreatetime(new Date());
|
||||||
|
scmSupplier.setIsdelete(0);
|
||||||
|
return toAjax(supplierService.save(scmSupplier));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改【请填写功能名称】
|
||||||
|
*/
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestBody OGoodsSupplier scmSupplier)
|
||||||
|
{
|
||||||
|
return toAjax(supplierService.updateById(scmSupplier));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除【请填写功能名称】
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(supplierService.removeByIds(Arrays.stream(ids).toList()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.zhijian.FrameworkAutoConfiguration
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
server:
|
||||||
|
port: 8083
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: oms-api
|
||||||
|
cloud:
|
||||||
|
loadbalancer:
|
||||||
|
nacos:
|
||||||
|
enabled: true
|
||||||
|
nacos:
|
||||||
|
# serverAddr: 127.0.0.1:8848
|
||||||
|
discovery:
|
||||||
|
server-addr: 127.0.0.1:8848
|
||||||
|
# username: nacos
|
||||||
|
# password: nacos
|
||||||
|
|
||||||
|
data:
|
||||||
|
# redis 配置
|
||||||
|
redis:
|
||||||
|
# 地址
|
||||||
|
# host: 8.130.98.215
|
||||||
|
host: 127.0.0.1
|
||||||
|
# 端口,默认为6379
|
||||||
|
port: 6379
|
||||||
|
# 数据库索引
|
||||||
|
database: 0
|
||||||
|
# 密码
|
||||||
|
# password: 123321
|
||||||
|
# 连接超时时间
|
||||||
|
timeout: 10s
|
||||||
|
lettuce:
|
||||||
|
pool:
|
||||||
|
# 连接池中的最小空闲连接
|
||||||
|
min-idle: 0
|
||||||
|
# 连接池中的最大空闲连接
|
||||||
|
max-idle: 8
|
||||||
|
# 连接池的最大数据库连接数
|
||||||
|
max-active: 8
|
||||||
|
# #连接池最大阻塞等待时间(使用负值表示没有限制)
|
||||||
|
max-wait: -1ms
|
||||||
|
datasource:
|
||||||
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://127.0.0.1:3306/qihang-oms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||||
|
username: root
|
||||||
|
password: Andy_123
|
||||||
|
# kafka:
|
||||||
|
# bootstrap-servers: localhost:9092
|
||||||
|
# producer:
|
||||||
|
# batch-size: 16384 #批量大小
|
||||||
|
# acks: -1 #应答级别:多少个分区副本备份完成时向生产者发送ack确认(可选0、1、all/-1)
|
||||||
|
# retries: 10 # 消息发送重试次数
|
||||||
|
# # transaction-id-prefix: tx_1 #事务id前缀
|
||||||
|
# buffer-memory: 33554432
|
||||||
|
# key-serializer: org.apache.kafka.common.serialization.StringSerializer
|
||||||
|
# value-serializer: org.apache.kafka.common.serialization.StringSerializer
|
||||||
|
# properties:
|
||||||
|
# linger:
|
||||||
|
# ms: 2000 #提交延迟
|
||||||
|
# # partitioner: #指定分区器
|
||||||
|
# # class: com.example.kafkademo.config.CustomizePartitioner
|
||||||
|
# consumer:
|
||||||
|
# group-id: testGroup #默认的消费组ID
|
||||||
|
# enable-auto-commit: true #是否自动提交offset
|
||||||
|
# auto-commit-interval: 2000 #提交offset延时
|
||||||
|
# # 当kafka中没有初始offset或offset超出范围时将自动重置offset
|
||||||
|
# # earliest:重置为分区中最小的offset;
|
||||||
|
# # latest:重置为分区中最新的offset(消费分区中新产生的数据);
|
||||||
|
# # none:只要有一个分区不存在已提交的offset,就抛出异常;
|
||||||
|
# auto-offset-reset: latest
|
||||||
|
# max-poll-records: 500 #单次拉取消息的最大条数
|
||||||
|
# key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
|
||||||
|
# value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
|
||||||
|
# properties:
|
||||||
|
# session:
|
||||||
|
# timeout:
|
||||||
|
# ms: 120000 # 消费会话超时时间(超过这个时间 consumer 没有发送心跳,就会触发 rebalance 操作)
|
||||||
|
# request:
|
||||||
|
# timeout:
|
||||||
|
# ms: 18000 # 消费请求的超时时间
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
mapper-locations: classpath*:mapper/**/*Mapper.xml
|
||||||
|
type-aliases-package: cn.qihangerp.oms.domain;cn.qihangerp.module.domain;cn.qihangerp.security.entity;
|
||||||
|
configuration:
|
||||||
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启sql日志
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
Application Version: ${zhijian.version}
|
||||||
|
Spring Boot Version: ${spring-boot.version}
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// _ooOoo_ //
|
||||||
|
// o8888888o //
|
||||||
|
// 88" . "88 //
|
||||||
|
// (| ^_^ |) //
|
||||||
|
// O\ = /O //
|
||||||
|
// ____/`---'\____ //
|
||||||
|
// .' \\| |// `. //
|
||||||
|
// / \\||| : |||// \ //
|
||||||
|
// / _||||| -:- |||||- \ //
|
||||||
|
// | | \\\ - /// | | //
|
||||||
|
// | \_| ''\---/'' | | //
|
||||||
|
// \ .-\__ `-` ___/-. / //
|
||||||
|
// ___`. .' /--.--\ `. . ___ //
|
||||||
|
// ."" '< `.___\_<|>_/___.' >'"". //
|
||||||
|
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
|
||||||
|
// \ \ `-. \_ __\ /__ _/ .-` / / //
|
||||||
|
// ========`-.____`-.___\_____/___.-`____.-'======== //
|
||||||
|
// `=---=' //
|
||||||
|
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
|
||||||
|
// 佛祖保佑 永不宕机 永无BUG //
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>cn.qihangerp</groupId>
|
||||||
|
<artifactId>qihangerp-cloud</artifactId>
|
||||||
|
<version>2.0.6</version>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<groupId>cn.qihangerp.services</groupId>
|
||||||
|
<artifactId>microservices</artifactId>
|
||||||
|
<version>3.0.6</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>microservices</name>
|
||||||
|
<url>http://maven.apache.org</url>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
Loading…
Reference in New Issue