parent
d4ee54b27b
commit
db399875b9
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.demo.convert.material;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDODemo;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
|
||||
/**
|
||||
* 物料管理 Convert
|
||||
*
|
||||
* @author ccongli
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialConvertDemo {
|
||||
|
||||
MaterialConvertDemo INSTANCE = Mappers.getMapper(MaterialConvertDemo.class);
|
||||
|
||||
MaterialDODemo convert(MaterialCreateReqVO bean);
|
||||
|
||||
MaterialDODemo convert(MaterialUpdateReqVO bean);
|
||||
|
||||
MaterialRespVO convert(MaterialDODemo bean);
|
||||
|
||||
List<MaterialRespVO> convertList(List<MaterialDODemo> list);
|
||||
|
||||
PageResult<MaterialRespVO> convertPage(PageResult<MaterialDODemo> page);
|
||||
|
||||
List<MaterialExcelVO> convertList02(List<MaterialDODemo> list);
|
||||
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package com.yunxi.scm.module.demo.dal.mysql.material;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
|
||||
/**
|
||||
* 物料管理 Mapper
|
||||
*
|
||||
* @author ccongli
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialMapper extends BaseMapperX<MaterialDO> {
|
||||
|
||||
default PageResult<MaterialDO> selectPage(MaterialPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialDO>()
|
||||
.likeIfPresent(MaterialDO::getName, reqVO.getName())
|
||||
.eqIfPresent(MaterialDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(MaterialDO::getType, reqVO.getType())
|
||||
.eqIfPresent(MaterialDO::getCategory, reqVO.getCategory())
|
||||
.betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialDO::getId));
|
||||
}
|
||||
|
||||
default List<MaterialDO> selectList(MaterialExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialDO>()
|
||||
.likeIfPresent(MaterialDO::getName, reqVO.getName())
|
||||
.eqIfPresent(MaterialDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(MaterialDO::getType, reqVO.getType())
|
||||
.eqIfPresent(MaterialDO::getCategory, reqVO.getCategory())
|
||||
.betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.yunxi.scm.module.demo.dal.mysql.material;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDODemo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
|
||||
/**
|
||||
* 物料管理 Mapper
|
||||
*
|
||||
* @author ccongli
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialMapperDemo extends BaseMapperX<MaterialDODemo> {
|
||||
|
||||
default PageResult<MaterialDODemo> selectPage(MaterialPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialDODemo>()
|
||||
.likeIfPresent(MaterialDODemo::getName, reqVO.getName())
|
||||
.eqIfPresent(MaterialDODemo::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(MaterialDODemo::getType, reqVO.getType())
|
||||
.eqIfPresent(MaterialDODemo::getCategory, reqVO.getCategory())
|
||||
.betweenIfPresent(MaterialDODemo::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialDODemo::getId));
|
||||
}
|
||||
|
||||
default List<MaterialDODemo> selectList(MaterialExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialDODemo>()
|
||||
.likeIfPresent(MaterialDODemo::getName, reqVO.getName())
|
||||
.eqIfPresent(MaterialDODemo::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(MaterialDODemo::getType, reqVO.getType())
|
||||
.eqIfPresent(MaterialDODemo::getCategory, reqVO.getCategory())
|
||||
.betweenIfPresent(MaterialDODemo::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialDODemo::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.yunxi.scm.module.demo.service.material;
|
||||
|
||||
import com.yunxi.scm.module.demo.convert.material.MaterialConvertDemo;
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDODemo;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.demo.dal.mysql.material.MaterialMapperDemo;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.demo.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 物料管理 Service 实现类
|
||||
*
|
||||
* @author ccongli
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MaterialServiceDemoImpl implements MaterialServiceDemo {
|
||||
|
||||
@Resource
|
||||
private MaterialMapperDemo materialMapperDemo;
|
||||
|
||||
@Override
|
||||
public Long createMaterial(MaterialCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
MaterialDODemo material = MaterialConvertDemo.INSTANCE.convert(createReqVO);
|
||||
materialMapperDemo.insert(material);
|
||||
// 返回
|
||||
return material.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMaterial(MaterialUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateMaterialExists(updateReqVO.getId());
|
||||
// 更新
|
||||
MaterialDODemo updateObj = MaterialConvertDemo.INSTANCE.convert(updateReqVO);
|
||||
materialMapperDemo.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMaterial(Long id) {
|
||||
// 校验存在
|
||||
validateMaterialExists(id);
|
||||
// 删除
|
||||
materialMapperDemo.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateMaterialExists(Long id) {
|
||||
if (materialMapperDemo.selectById(id) == null) {
|
||||
throw exception(MATERIAL_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialDODemo getMaterial(Long id) {
|
||||
return materialMapperDemo.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialDODemo> getMaterialList(Collection<Long> ids) {
|
||||
return materialMapperDemo.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialDODemo> getMaterialPage(MaterialPageReqVO pageReqVO) {
|
||||
return materialMapperDemo.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialDODemo> getMaterialList(MaterialExportReqVO exportReqVO) {
|
||||
return materialMapperDemo.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yunxi.scm.module.demo.dal.mysql.material.MaterialMapper">
|
||||
<mapper namespace="com.yunxi.scm.module.demo.dal.mysql.material.MaterialMapperDemo">
|
||||
|
||||
<!--
|
||||
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
@ -0,0 +1,177 @@
|
||||
package com.yunxi.scm.module.demo.service.material;
|
||||
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDODemo;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
import com.yunxi.scm.module.demo.dal.mysql.material.MaterialMapperDemo;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yunxi.scm.module.demo.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link MaterialServiceDemoImpl} 的单元测试类
|
||||
*
|
||||
* @author ccongli
|
||||
*/
|
||||
@Import(MaterialServiceDemoImpl.class)
|
||||
public class MaterialServiceDemoImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MaterialServiceDemoImpl materialService;
|
||||
|
||||
@Resource
|
||||
private MaterialMapperDemo materialMapperDemo;
|
||||
|
||||
@Test
|
||||
public void testCreateMaterial_success() {
|
||||
// 准备参数
|
||||
MaterialCreateReqVO reqVO = randomPojo(MaterialCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long materialId = materialService.createMaterial(reqVO);
|
||||
// 断言
|
||||
assertNotNull(materialId);
|
||||
// 校验记录的属性是否正确
|
||||
MaterialDODemo material = materialMapperDemo.selectById(materialId);
|
||||
assertPojoEquals(reqVO, material);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterial_success() {
|
||||
// mock 数据
|
||||
MaterialDODemo dbMaterial = randomPojo(MaterialDODemo.class);
|
||||
materialMapperDemo.insert(dbMaterial);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MaterialUpdateReqVO reqVO = randomPojo(MaterialUpdateReqVO.class, o -> {
|
||||
o.setId(dbMaterial.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
materialService.updateMaterial(reqVO);
|
||||
// 校验是否更新正确
|
||||
MaterialDODemo material = materialMapperDemo.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, material);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterial_notExists() {
|
||||
// 准备参数
|
||||
MaterialUpdateReqVO reqVO = randomPojo(MaterialUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialService.updateMaterial(reqVO), MATERIAL_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterial_success() {
|
||||
// mock 数据
|
||||
MaterialDODemo dbMaterial = randomPojo(MaterialDODemo.class);
|
||||
materialMapperDemo.insert(dbMaterial);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMaterial.getId();
|
||||
|
||||
// 调用
|
||||
materialService.deleteMaterial(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(materialMapperDemo.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterial_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialService.deleteMaterial(id), MATERIAL_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialPage() {
|
||||
// mock 数据
|
||||
MaterialDODemo dbMaterial = randomPojo(MaterialDODemo.class, o -> { // 等会查询到
|
||||
o.setName(null);
|
||||
o.setStatus(null);
|
||||
o.setType(null);
|
||||
o.setCategory(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialMapperDemo.insert(dbMaterial);
|
||||
// 测试 name 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setName(null)));
|
||||
// 测试 status 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setStatus(null)));
|
||||
// 测试 type 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setType(null)));
|
||||
// 测试 category 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setCategory(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialPageReqVO reqVO = new MaterialPageReqVO();
|
||||
reqVO.setName(null);
|
||||
reqVO.setStatus(null);
|
||||
reqVO.setType(null);
|
||||
reqVO.setCategory(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<MaterialDODemo> pageResult = materialService.getMaterialPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMaterial, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialList() {
|
||||
// mock 数据
|
||||
MaterialDODemo dbMaterial = randomPojo(MaterialDODemo.class, o -> { // 等会查询到
|
||||
o.setName(null);
|
||||
o.setStatus(null);
|
||||
o.setType(null);
|
||||
o.setCategory(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialMapperDemo.insert(dbMaterial);
|
||||
// 测试 name 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setName(null)));
|
||||
// 测试 status 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setStatus(null)));
|
||||
// 测试 type 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setType(null)));
|
||||
// 测试 category 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setCategory(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialMapperDemo.insert(cloneIgnoreId(dbMaterial, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialExportReqVO reqVO = new MaterialExportReqVO();
|
||||
reqVO.setName(null);
|
||||
reqVO.setStatus(null);
|
||||
reqVO.setType(null);
|
||||
reqVO.setCategory(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<MaterialDODemo> list = materialService.getMaterialList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbMaterial, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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">
|
||||
<parent>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi</artifactId>
|
||||
<version>${revision}</version> <!-- 1. 修改 version 为 ${revision} -->
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>yunxi-module-xxjj</artifactId>
|
||||
<packaging>pom</packaging> <!-- 2. 新增 packaging 为 pom -->
|
||||
|
||||
<name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
|
||||
<description> <!-- 4. 新增 description 为该模块的描述 -->
|
||||
xxjj 模块,主要实现 XXX、YYY、ZZZ 等功能。
|
||||
</description>
|
||||
<modules>
|
||||
<module>yunxi-module-xxjj-api</module>
|
||||
<module>yunxi-module-xxjj-biz</module>
|
||||
</modules>
|
||||
|
||||
|
||||
</project>
|
@ -0,0 +1,30 @@
|
||||
package com.yunxi.scm.module.xxjj.api.materialcategory.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 物料分类 Response DTO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Data
|
||||
public class MaterialCategoryRespDTO {
|
||||
|
||||
/**
|
||||
* 物料分类编号
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 物料分类名称
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 物料分类名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 父物料分类编号
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.yunxi.scm.module.xxjj.enums.materialcategory;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 物料分类编号枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum MaterialCategoryIdEnum {
|
||||
|
||||
/**
|
||||
* 根节点
|
||||
*/
|
||||
ROOT(0L);
|
||||
|
||||
private final Long id;
|
||||
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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">
|
||||
<parent>
|
||||
<artifactId>yunxi-module-xxjj</artifactId>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<version>${revision}</version> <!-- 1. 修改 version 为 ${revision} -->
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging> <!-- 2. 新增 packaging 为 jar -->
|
||||
|
||||
<artifactId>yunxi-module-xxjj-biz</artifactId>
|
||||
|
||||
<name>${project.artifactId}</name> <!-- 3. 新增 name 为 ${project.artifactId} -->
|
||||
<description> <!-- 4. 新增 description 为该模块的描述 -->
|
||||
xxjj 模块,主要实现 XXX、YYY、ZZZ 等功能。
|
||||
</description>
|
||||
|
||||
<dependencies> <!-- 5. 新增依赖,这里引入的都是比较常用的业务组件、技术组件 -->
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-module-xxjj-api</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 业务组件 -->
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-spring-boot-starter-biz-operatelog</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Web 相关 -->
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-spring-boot-starter-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- DB 相关 -->
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-spring-boot-starter-mybatis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Test 测试相关 -->
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-spring-boot-starter-test</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.yunxi.scm</groupId>
|
||||
<artifactId>yunxi-spring-boot-starter-excel</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
</project>
|
@ -0,0 +1,25 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - Test2")
|
||||
@RestController
|
||||
@RequestMapping("/demo/test2")
|
||||
@Validated
|
||||
public class DemoTest2Controller {
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获取 test 信息")
|
||||
public CommonResult<String> get() {
|
||||
return success("true");
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.material;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.convert.material.MaterialConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.material.MaterialDO;
|
||||
import com.yunxi.scm.module.xxjj.service.material.MaterialService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.*;
|
||||
|
||||
@Tag(name = "管理后台 - 物料")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/material")
|
||||
@Validated
|
||||
public class MaterialController {
|
||||
|
||||
@Resource
|
||||
private MaterialService materialService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建物料")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:create')")
|
||||
public CommonResult<Long> createMaterial(@Valid @RequestBody MaterialCreateReqVO createReqVO) {
|
||||
return success(materialService.createMaterial(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新物料")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:update')")
|
||||
public CommonResult<Boolean> updateMaterial(@Valid @RequestBody MaterialUpdateReqVO updateReqVO) {
|
||||
materialService.updateMaterial(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除物料")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:delete')")
|
||||
public CommonResult<Boolean> deleteMaterial(@RequestParam("id") Long id) {
|
||||
materialService.deleteMaterial(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:query')")
|
||||
public CommonResult<MaterialRespVO> getMaterial(@RequestParam("id") Long id) {
|
||||
MaterialDO material = materialService.getMaterial(id);
|
||||
return success(MaterialConvert.INSTANCE.convert(material));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得物料列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:query')")
|
||||
public CommonResult<List<MaterialRespVO>> getMaterialList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<MaterialDO> list = materialService.getMaterialList(ids);
|
||||
return success(MaterialConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物料分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:query')")
|
||||
public CommonResult<PageResult<MaterialRespVO>> getMaterialPage(@Valid MaterialPageReqVO pageVO) {
|
||||
PageResult<MaterialDO> pageResult = materialService.getMaterialPage(pageVO);
|
||||
return success(MaterialConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出物料 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportMaterialExcel(@Valid MaterialExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<MaterialDO> list = materialService.getMaterialList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<MaterialExcelVO> datas = MaterialConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "物料.xls", "数据", MaterialExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.material.vo;
|
||||
|
||||
import lombok.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(description = "管理后台 - 物料创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialCreateReqVO extends MaterialBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.material.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 物料 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialRespVO extends MaterialBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15116")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.material.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 物料更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialUpdateReqVO extends MaterialBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15116")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialbrand;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.convert.materialbrand.MaterialBrandConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.materialbrand.MaterialBrandService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand.MaterialBrandDO;
|
||||
|
||||
@Tag(name = "管理后台 - 物料品牌")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/material-brand")
|
||||
@Validated
|
||||
public class MaterialBrandController {
|
||||
|
||||
@Resource
|
||||
private MaterialBrandService materialBrandService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建物料品牌")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:create')")
|
||||
public CommonResult<Long> createMaterialBrand(@Valid @RequestBody MaterialBrandCreateReqVO createReqVO) {
|
||||
return success(materialBrandService.createMaterialBrand(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新物料品牌")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:update')")
|
||||
public CommonResult<Boolean> updateMaterialBrand(@Valid @RequestBody MaterialBrandUpdateReqVO updateReqVO) {
|
||||
materialBrandService.updateMaterialBrand(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除物料品牌")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:delete')")
|
||||
public CommonResult<Boolean> deleteMaterialBrand(@RequestParam("id") Long id) {
|
||||
materialBrandService.deleteMaterialBrand(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料品牌")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:query')")
|
||||
public CommonResult<MaterialBrandRespVO> getMaterialBrand(@RequestParam("id") Long id) {
|
||||
MaterialBrandDO materialBrand = materialBrandService.getMaterialBrand(id);
|
||||
return success(MaterialBrandConvert.INSTANCE.convert(materialBrand));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得物料品牌列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:query')")
|
||||
public CommonResult<List<MaterialBrandRespVO>> getMaterialBrandList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<MaterialBrandDO> list = materialBrandService.getMaterialBrandList(ids);
|
||||
return success(MaterialBrandConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物料品牌分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:query')")
|
||||
public CommonResult<PageResult<MaterialBrandRespVO>> getMaterialBrandPage(@Valid MaterialBrandPageReqVO pageVO) {
|
||||
PageResult<MaterialBrandDO> pageResult = materialBrandService.getMaterialBrandPage(pageVO);
|
||||
return success(MaterialBrandConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出物料品牌 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-brand:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportMaterialBrandExcel(@Valid MaterialBrandExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<MaterialBrandDO> list = materialBrandService.getMaterialBrandList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<MaterialBrandExcelVO> datas = MaterialBrandConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "物料品牌.xls", "数据", MaterialBrandExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo;
|
||||
|
||||
import lombok.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(description = "管理后台 - 物料品牌创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialBrandCreateReqVO extends MaterialBrandBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
|
||||
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
|
||||
|
||||
|
||||
/**
|
||||
* 物料品牌 Excel VO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Data
|
||||
public class MaterialBrandExcelVO {
|
||||
|
||||
@ExcelProperty("品牌id")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty("品牌名称")
|
||||
private String brandName;
|
||||
|
||||
@ExcelProperty("品牌图片")
|
||||
private String brandPic;
|
||||
|
||||
@ExcelProperty("品牌排序")
|
||||
private Integer brandSort;
|
||||
|
||||
@ExcelProperty("品牌描述")
|
||||
private String brandDescription;
|
||||
|
||||
@ExcelProperty(value = "品牌状态", converter = DictConvert.class)
|
||||
@DictFormat("common_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
|
||||
private String brandStatus;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 物料品牌分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialBrandPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "品牌名称", example = "芋艿")
|
||||
private String brandName;
|
||||
|
||||
@Schema(description = "品牌排序")
|
||||
private Integer brandSort;
|
||||
|
||||
@Schema(description = "品牌状态", example = "1")
|
||||
private String brandStatus;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 物料品牌 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialBrandRespVO extends MaterialBrandBaseVO {
|
||||
|
||||
@Schema(description = "品牌id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20281")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 物料品牌更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialBrandUpdateReqVO extends MaterialBrandBaseVO {
|
||||
|
||||
@Schema(description = "品牌id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20281")
|
||||
@NotNull(message = "品牌id不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialcategory;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.convert.materialcategory.MaterialCategoryConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO;
|
||||
import com.yunxi.scm.module.xxjj.service.materialcategory.MaterialCategoryService;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.*;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 物料分类")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/materialCategory")
|
||||
@Validated
|
||||
public class MaterialCategoryController {
|
||||
|
||||
@Resource
|
||||
private MaterialCategoryService materialCategoryService;
|
||||
|
||||
@PostMapping("create")
|
||||
@Operation(summary = "创建物料分类")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:materialCategory:create')")
|
||||
public CommonResult<Long> createMaterialCategory(@Valid @RequestBody MaterialCategoryCreateReqVO reqVO) {
|
||||
Long MaterialCategoryId = materialCategoryService.createMaterialCategory(reqVO);
|
||||
return success(MaterialCategoryId);
|
||||
}
|
||||
|
||||
@PutMapping("update")
|
||||
@Operation(summary = "更新物料分类")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:materialCategory:update')")
|
||||
public CommonResult<Boolean> updateMaterialCategory(@Valid @RequestBody MaterialCategoryUpdateReqVO reqVO) {
|
||||
materialCategoryService.updateMaterialCategory(reqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("delete")
|
||||
@Operation(summary = "删除物料分类")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:materialCategory:delete')")
|
||||
public CommonResult<Boolean> deleteMaterialCategory(@RequestParam("id") Long id) {
|
||||
materialCategoryService.deleteMaterialCategory(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获取物料分类列表")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:materialCategory:query')")
|
||||
public CommonResult<List<MaterialCategoryRespVO>> getMaterialCategoryList(MaterialCategoryListReqVO reqVO) {
|
||||
List<MaterialCategoryDO> list = materialCategoryService.getMaterialCategoryList(reqVO);
|
||||
list.sort(Comparator.comparing(MaterialCategoryDO::getSort));
|
||||
return success(MaterialCategoryConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/list-all-simple")
|
||||
@Operation(summary = "获取物料分类精简信息列表", description = "只包含被开启的物料分类,主要用于前端的下拉选项")
|
||||
public CommonResult<List<MaterialCategorySimpleRespVO>> getSimpleMaterialCategoryList() {
|
||||
// 获得物料分类列表,只要开启状态的
|
||||
MaterialCategoryListReqVO reqVO = new MaterialCategoryListReqVO();
|
||||
List<MaterialCategoryDO> list = materialCategoryService.getMaterialCategoryList(reqVO);
|
||||
// 排序后,返回给前端
|
||||
list.sort(Comparator.comparing(MaterialCategoryDO::getSort));
|
||||
return success(MaterialCategoryConvert.INSTANCE.convertList02(list));
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料分类信息")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:materialCategory:query')")
|
||||
public CommonResult<MaterialCategoryRespVO> getMaterialCategory(@RequestParam("id") Long id) {
|
||||
return success(MaterialCategoryConvert.INSTANCE.convert(materialCategoryService.getMaterialCategory(id)));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Schema(description = "管理后台 - 物料分类创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialCategoryCreateReqVO extends MaterialCategoryBaseVO {
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "管理后台 - 物料分类列表 Request VO")
|
||||
@Data
|
||||
public class MaterialCategoryListReqVO {
|
||||
|
||||
@Schema(description = "物料分类名称,模糊匹配", example = "芋道")
|
||||
private String name;
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 物料分类信息 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MaterialCategoryRespVO extends MaterialCategoryBaseVO {
|
||||
|
||||
@Schema(description = "物料分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Schema(description = "管理后台 - 物料分类精简信息 Response VO")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MaterialCategorySimpleRespVO {
|
||||
|
||||
@Schema(description = "物料分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "物料分类编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "物料分类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "父物料分类 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Long parentId;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Schema(description = "管理后台 - 物料分类更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MaterialCategoryUpdateReqVO extends MaterialCategoryBaseVO {
|
||||
|
||||
@Schema(description = "物料分类编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
@NotNull(message = "物料分类编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialindustry;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.convert.materialindustry.MaterialIndustryConvert;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry.MaterialIndustryDO;
|
||||
import com.yunxi.scm.module.xxjj.service.materialindustry.MaterialIndustryService;
|
||||
|
||||
@Tag(name = "管理后台 - 物料行业1")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/material-industry")
|
||||
@Validated
|
||||
public class MaterialIndustryController {
|
||||
|
||||
@Resource
|
||||
private MaterialIndustryService materialIndustryService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建物料行业")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:create')")
|
||||
public CommonResult<Long> createMaterialIndustry(@Valid @RequestBody MaterialIndustryCreateReqVO createReqVO) {
|
||||
return success(materialIndustryService.createMaterialIndustry(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新物料行业")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:update')")
|
||||
public CommonResult<Boolean> updateMaterialIndustry(@Valid @RequestBody MaterialIndustryUpdateReqVO updateReqVO) {
|
||||
materialIndustryService.updateMaterialIndustry(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除物料行业")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:delete')")
|
||||
public CommonResult<Boolean> deleteMaterialIndustry(@RequestParam("id") Long id) {
|
||||
materialIndustryService.deleteMaterialIndustry(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料行业")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:query')")
|
||||
public CommonResult<MaterialIndustryRespVO> getMaterialIndustry(@RequestParam("id") Long id) {
|
||||
MaterialIndustryDO materialIndustry = materialIndustryService.getMaterialIndustry(id);
|
||||
return success(MaterialIndustryConvert.INSTANCE.convert(materialIndustry));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得物料行业列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:query')")
|
||||
public CommonResult<List<MaterialIndustryRespVO>> getMaterialIndustryList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<MaterialIndustryDO> list = materialIndustryService.getMaterialIndustryList(ids);
|
||||
return success(MaterialIndustryConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物料行业分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:query')")
|
||||
public CommonResult<PageResult<MaterialIndustryRespVO>> getMaterialIndustryPage(@Valid MaterialIndustryPageReqVO pageVO) {
|
||||
PageResult<MaterialIndustryDO> pageResult = materialIndustryService.getMaterialIndustryPage(pageVO);
|
||||
return success(MaterialIndustryConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出物料行业 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-industry:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportMaterialIndustryExcel(@Valid MaterialIndustryExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<MaterialIndustryDO> list = materialIndustryService.getMaterialIndustryList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<MaterialIndustryExcelVO> datas = MaterialIndustryConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "物料行业.xls", "数据", MaterialIndustryExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo;
|
||||
|
||||
import lombok.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(description = "管理后台 - 物料行业创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialIndustryCreateReqVO extends MaterialIndustryBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.yunxi.scm.framework.excel.core.annotations.DictFormat;
|
||||
import com.yunxi.scm.framework.excel.core.convert.DictConvert;
|
||||
|
||||
|
||||
/**
|
||||
* 物料行业 Excel VO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Data
|
||||
public class MaterialIndustryExcelVO {
|
||||
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty("行业编码")
|
||||
private String industryCode;
|
||||
|
||||
@ExcelProperty("行业名称")
|
||||
private String industryName;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 物料行业分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialIndustryPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "行业编码", example = "55432")
|
||||
private String industryCode;
|
||||
|
||||
@Schema(description = "行业名称", example = "李四")
|
||||
private String industryName;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 物料行业 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialIndustryRespVO extends MaterialIndustryBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30219")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 物料行业更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialIndustryUpdateReqVO extends MaterialIndustryBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30219")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,102 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialtype;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.convert.materialtype.MaterialTypeConvert;
|
||||
import com.yunxi.scm.module.xxjj.service.materialtype.MaterialTypeService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO;
|
||||
|
||||
@Tag(name = "管理后台 - 物料类型")
|
||||
@RestController
|
||||
@RequestMapping("/xxjj/material-type")
|
||||
@Validated
|
||||
public class MaterialTypeController {
|
||||
|
||||
@Resource
|
||||
private MaterialTypeService materialTypeService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建物料类型")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:create')")
|
||||
public CommonResult<Long> createMaterialType(@Valid @RequestBody MaterialTypeCreateReqVO createReqVO) {
|
||||
return success(materialTypeService.createMaterialType(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新物料类型")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:update')")
|
||||
public CommonResult<Boolean> updateMaterialType(@Valid @RequestBody MaterialTypeUpdateReqVO updateReqVO) {
|
||||
materialTypeService.updateMaterialType(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除物料类型")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:delete')")
|
||||
public CommonResult<Boolean> deleteMaterialType(@RequestParam("id") Long id) {
|
||||
materialTypeService.deleteMaterialType(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得物料类型")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:query')")
|
||||
public CommonResult<MaterialTypeRespVO> getMaterialType(@RequestParam("id") Long id) {
|
||||
MaterialTypeDO materialType = materialTypeService.getMaterialType(id);
|
||||
return success(MaterialTypeConvert.INSTANCE.convert(materialType));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得物料类型列表")
|
||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:query')")
|
||||
public CommonResult<List<MaterialTypeRespVO>> getMaterialTypeList(@RequestParam("ids") Collection<Long> ids) {
|
||||
List<MaterialTypeDO> list = materialTypeService.getMaterialTypeList(ids);
|
||||
return success(MaterialTypeConvert.INSTANCE.convertList(list));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得物料类型分页")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:query')")
|
||||
public CommonResult<PageResult<MaterialTypeRespVO>> getMaterialTypePage(@Valid MaterialTypePageReqVO pageVO) {
|
||||
PageResult<MaterialTypeDO> pageResult = materialTypeService.getMaterialTypePage(pageVO);
|
||||
return success(MaterialTypeConvert.INSTANCE.convertPage(pageResult));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出物料类型 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('xxjj:material-type:export')")
|
||||
@OperateLog(type = EXPORT)
|
||||
public void exportMaterialTypeExcel(@Valid MaterialTypeExportReqVO exportReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
List<MaterialTypeDO> list = materialTypeService.getMaterialTypeList(exportReqVO);
|
||||
// 导出 Excel
|
||||
List<MaterialTypeExcelVO> datas = MaterialTypeConvert.INSTANCE.convertList02(list);
|
||||
ExcelUtils.write(response, "物料类型.xls", "数据", MaterialTypeExcelVO.class, datas);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo;
|
||||
|
||||
import lombok.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(description = "管理后台 - 物料类型创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialTypeCreateReqVO extends MaterialTypeBaseVO {
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
||||
/**
|
||||
* 物料类型 Excel VO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Data
|
||||
public class MaterialTypeExcelVO {
|
||||
|
||||
@ExcelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ExcelProperty("物料类型编码")
|
||||
private String materialTypeCode;
|
||||
|
||||
@ExcelProperty("物料类型名称")
|
||||
private String materialTypeName;
|
||||
|
||||
@ExcelProperty("行业id")
|
||||
private Long materialIndustryId;
|
||||
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 物料类型分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialTypePageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "物料类型编码", example = "25254")
|
||||
private String materialTypeCode;
|
||||
|
||||
@Schema(description = "物料类型名称", example = "赵六")
|
||||
private String materialTypeName;
|
||||
|
||||
@Schema(description = "行业id", example = "19922")
|
||||
private Long materialIndustryId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 物料类型 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialTypeRespVO extends MaterialTypeBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15676")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 物料类型更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class MaterialTypeUpdateReqVO extends MaterialTypeBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15676")
|
||||
@NotNull(message = "编号不能为空")
|
||||
private Long id;
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.yunxi.scm.module.xxjj.controller.app;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "用户 App - Test2")
|
||||
@RestController
|
||||
@RequestMapping("/demo/test2")
|
||||
@Validated
|
||||
public class AppDemoTest2Controller {
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获取 test 信息")
|
||||
public CommonResult<String> get() {
|
||||
return success("true");
|
||||
}
|
||||
|
||||
}
|
@ -1,18 +1,21 @@
|
||||
package com.yunxi.scm.module.demo.convert.material;
|
||||
package com.yunxi.scm.module.xxjj.convert.material;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialExcelVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialRespVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialUpdateReqVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.material.MaterialDO;
|
||||
|
||||
/**
|
||||
* 物料管理 Convert
|
||||
* 物料 Convert
|
||||
*
|
||||
* @author ccongli
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialConvert {
|
@ -0,0 +1,37 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.materialbrand;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandExcelVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandRespVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandUpdateReqVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand.MaterialBrandDO;
|
||||
|
||||
/**
|
||||
* 物料品牌 Convert
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialBrandConvert {
|
||||
|
||||
MaterialBrandConvert INSTANCE = Mappers.getMapper(MaterialBrandConvert.class);
|
||||
|
||||
MaterialBrandDO convert(MaterialBrandCreateReqVO bean);
|
||||
|
||||
MaterialBrandDO convert(MaterialBrandUpdateReqVO bean);
|
||||
|
||||
MaterialBrandRespVO convert(MaterialBrandDO bean);
|
||||
|
||||
List<MaterialBrandRespVO> convertList(List<MaterialBrandDO> list);
|
||||
|
||||
PageResult<MaterialBrandRespVO> convertPage(PageResult<MaterialBrandDO> page);
|
||||
|
||||
List<MaterialBrandExcelVO> convertList02(List<MaterialBrandDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.materialcategory;
|
||||
|
||||
|
||||
import com.yunxi.scm.module.xxjj.api.materialcategory.dto.MaterialCategoryRespDTO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryRespVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategorySimpleRespVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryUpdateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface MaterialCategoryConvert {
|
||||
|
||||
MaterialCategoryConvert INSTANCE = Mappers.getMapper(MaterialCategoryConvert.class);
|
||||
|
||||
List<MaterialCategoryRespVO> convertList(List<MaterialCategoryDO> list);
|
||||
|
||||
List<MaterialCategorySimpleRespVO> convertList02(List<MaterialCategoryDO> list);
|
||||
|
||||
MaterialCategoryRespVO convert(MaterialCategoryDO bean);
|
||||
|
||||
MaterialCategoryDO convert(MaterialCategoryCreateReqVO bean);
|
||||
|
||||
MaterialCategoryDO convert(MaterialCategoryUpdateReqVO bean);
|
||||
|
||||
List<MaterialCategoryRespDTO> convertList03(List<MaterialCategoryDO> list);
|
||||
|
||||
MaterialCategoryRespDTO convert03(MaterialCategoryDO bean);
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.materialindustry;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryExcelVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryRespVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryUpdateReqVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry.MaterialIndustryDO;
|
||||
|
||||
/**
|
||||
* 物料行业 Convert
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialIndustryConvert {
|
||||
|
||||
MaterialIndustryConvert INSTANCE = Mappers.getMapper(MaterialIndustryConvert.class);
|
||||
|
||||
MaterialIndustryDO convert(MaterialIndustryCreateReqVO bean);
|
||||
|
||||
MaterialIndustryDO convert(MaterialIndustryUpdateReqVO bean);
|
||||
|
||||
MaterialIndustryRespVO convert(MaterialIndustryDO bean);
|
||||
|
||||
List<MaterialIndustryRespVO> convertList(List<MaterialIndustryDO> list);
|
||||
|
||||
PageResult<MaterialIndustryRespVO> convertPage(PageResult<MaterialIndustryDO> page);
|
||||
|
||||
List<MaterialIndustryExcelVO> convertList02(List<MaterialIndustryDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.yunxi.scm.module.xxjj.convert.materialtype;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeExcelVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeRespVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeUpdateReqVO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO;
|
||||
|
||||
/**
|
||||
* 物料类型 Convert
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialTypeConvert {
|
||||
|
||||
MaterialTypeConvert INSTANCE = Mappers.getMapper(MaterialTypeConvert.class);
|
||||
|
||||
MaterialTypeDO convert(MaterialTypeCreateReqVO bean);
|
||||
|
||||
MaterialTypeDO convert(MaterialTypeUpdateReqVO bean);
|
||||
|
||||
MaterialTypeRespVO convert(MaterialTypeDO bean);
|
||||
|
||||
List<MaterialTypeRespVO> convertList(List<MaterialTypeDO> list);
|
||||
|
||||
PageResult<MaterialTypeRespVO> convertPage(PageResult<MaterialTypeDO> page);
|
||||
|
||||
List<MaterialTypeExcelVO> convertList02(List<MaterialTypeDO> list);
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand;
|
||||
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
/**
|
||||
* 物料品牌 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("xxjj_material_brand")
|
||||
@KeySequence("xxjj_material_brand_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MaterialBrandDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 品牌id
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 品牌名称
|
||||
*/
|
||||
private String brandName;
|
||||
/**
|
||||
* 品牌图片
|
||||
*/
|
||||
private String brandPic;
|
||||
/**
|
||||
* 品牌排序
|
||||
*/
|
||||
private Integer brandSort;
|
||||
/**
|
||||
* 品牌描述
|
||||
*/
|
||||
private String brandDescription;
|
||||
/**
|
||||
* 品牌状态
|
||||
*
|
||||
* 枚举 {@link TODO common_status 对应的类}
|
||||
*/
|
||||
private String brandStatus;
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.materialcategory;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 物料分类表
|
||||
*
|
||||
* @author ruoyi
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("xxjj_material_category")
|
||||
@KeySequence("xxjj_material_category_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MaterialCategoryDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 物料分类ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 父物料分类ID
|
||||
*
|
||||
* 关联 {@link #id}
|
||||
*/
|
||||
private Long parentId;
|
||||
/**
|
||||
* 显示顺序
|
||||
*/
|
||||
private Integer sort;
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry;
|
||||
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
/**
|
||||
* 物料行业 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("xxjj_material_industry")
|
||||
@KeySequence("xxjj_material_industry_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MaterialIndustryDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 行业编码
|
||||
*/
|
||||
private String industryCode;
|
||||
/**
|
||||
* 行业名称
|
||||
*/
|
||||
private String industryName;
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.dataobject.materialtype;
|
||||
|
||||
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
/**
|
||||
* 物料类型 DO
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("xxjj_material_type")
|
||||
@KeySequence("xxjj_material_type_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MaterialTypeDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 物料类型编码
|
||||
*/
|
||||
private String materialTypeCode;
|
||||
/**
|
||||
* 物料类型名称
|
||||
*/
|
||||
private String materialTypeName;
|
||||
/**
|
||||
* 行业id
|
||||
*/
|
||||
private Long materialIndustryId;
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.material;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.material.MaterialDO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialPageReqVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 物料 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialMapper extends BaseMapperX<MaterialDO> {
|
||||
|
||||
default PageResult<MaterialDO> selectPage(MaterialPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialDO>()
|
||||
.eqIfPresent(MaterialDO::getMaterialCode, reqVO.getMaterialCode())
|
||||
.likeIfPresent(MaterialDO::getMaterialName, reqVO.getMaterialName())
|
||||
.eqIfPresent(MaterialDO::getMaterialPictures, reqVO.getMaterialPictures())
|
||||
.eqIfPresent(MaterialDO::getMaterialTypeId, reqVO.getMaterialTypeId())
|
||||
.eqIfPresent(MaterialDO::getMaterialIndustryId, reqVO.getMaterialIndustryId())
|
||||
.eqIfPresent(MaterialDO::getMaterialBrandId, reqVO.getMaterialBrandId())
|
||||
.betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime())
|
||||
.likeIfPresent(MaterialDO::getMaterialEnglishName, reqVO.getMaterialEnglishName())
|
||||
.likeIfPresent(MaterialDO::getMaterialAbbreviation, reqVO.getMaterialAbbreviation())
|
||||
.eqIfPresent(MaterialDO::getMaterialBarcode, reqVO.getMaterialBarcode())
|
||||
.eqIfPresent(MaterialDO::getMaterialSpec, reqVO.getMaterialSpec())
|
||||
.eqIfPresent(MaterialDO::getMaterialKind, reqVO.getMaterialKind())
|
||||
.eqIfPresent(MaterialDO::getInventoryType, reqVO.getInventoryType())
|
||||
.eqIfPresent(MaterialDO::getMaterialState, reqVO.getMaterialState())
|
||||
.eqIfPresent(MaterialDO::getSaleState, reqVO.getSaleState())
|
||||
.eqIfPresent(MaterialDO::getMaterialCategoryId, reqVO.getMaterialCategoryId())
|
||||
.orderByDesc(MaterialDO::getId));
|
||||
}
|
||||
|
||||
default List<MaterialDO> selectList(MaterialExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialDO>()
|
||||
.eqIfPresent(MaterialDO::getMaterialCode, reqVO.getMaterialCode())
|
||||
.likeIfPresent(MaterialDO::getMaterialName, reqVO.getMaterialName())
|
||||
.eqIfPresent(MaterialDO::getMaterialPictures, reqVO.getMaterialPictures())
|
||||
.eqIfPresent(MaterialDO::getMaterialTypeId, reqVO.getMaterialTypeId())
|
||||
.eqIfPresent(MaterialDO::getMaterialIndustryId, reqVO.getMaterialIndustryId())
|
||||
.eqIfPresent(MaterialDO::getMaterialBrandId, reqVO.getMaterialBrandId())
|
||||
.betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime())
|
||||
.likeIfPresent(MaterialDO::getMaterialEnglishName, reqVO.getMaterialEnglishName())
|
||||
.likeIfPresent(MaterialDO::getMaterialAbbreviation, reqVO.getMaterialAbbreviation())
|
||||
.eqIfPresent(MaterialDO::getMaterialBarcode, reqVO.getMaterialBarcode())
|
||||
.eqIfPresent(MaterialDO::getMaterialSpec, reqVO.getMaterialSpec())
|
||||
.eqIfPresent(MaterialDO::getMaterialKind, reqVO.getMaterialKind())
|
||||
.eqIfPresent(MaterialDO::getInventoryType, reqVO.getInventoryType())
|
||||
.eqIfPresent(MaterialDO::getMaterialState, reqVO.getMaterialState())
|
||||
.eqIfPresent(MaterialDO::getSaleState, reqVO.getSaleState())
|
||||
.eqIfPresent(MaterialDO::getMaterialCategoryId, reqVO.getMaterialCategoryId())
|
||||
.orderByDesc(MaterialDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.materialbrand;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand.MaterialBrandDO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandPageReqVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 物料品牌 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialBrandMapper extends BaseMapperX<MaterialBrandDO> {
|
||||
|
||||
default PageResult<MaterialBrandDO> selectPage(MaterialBrandPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialBrandDO>()
|
||||
.likeIfPresent(MaterialBrandDO::getBrandName, reqVO.getBrandName())
|
||||
.eqIfPresent(MaterialBrandDO::getBrandSort, reqVO.getBrandSort())
|
||||
.eqIfPresent(MaterialBrandDO::getBrandStatus, reqVO.getBrandStatus())
|
||||
.betweenIfPresent(MaterialBrandDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialBrandDO::getId));
|
||||
}
|
||||
|
||||
default List<MaterialBrandDO> selectList(MaterialBrandExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialBrandDO>()
|
||||
.likeIfPresent(MaterialBrandDO::getBrandName, reqVO.getBrandName())
|
||||
.eqIfPresent(MaterialBrandDO::getBrandSort, reqVO.getBrandSort())
|
||||
.eqIfPresent(MaterialBrandDO::getBrandStatus, reqVO.getBrandStatus())
|
||||
.betweenIfPresent(MaterialBrandDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialBrandDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.materialcategory;
|
||||
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialcategory.vo.MaterialCategoryListReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialcategory.MaterialCategoryDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface MaterialCategoryMapper extends BaseMapperX<MaterialCategoryDO> {
|
||||
|
||||
default List<MaterialCategoryDO> selectList(MaterialCategoryListReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialCategoryDO>()
|
||||
.likeIfPresent(MaterialCategoryDO::getName, reqVO.getName()));
|
||||
}
|
||||
|
||||
default MaterialCategoryDO selectByParentIdAndName(Long parentId, String name) {
|
||||
return selectOne(MaterialCategoryDO::getParentId, parentId, MaterialCategoryDO::getName, name);
|
||||
}
|
||||
|
||||
default Long selectCountByParentId(Long parentId) {
|
||||
return selectCount(MaterialCategoryDO::getParentId, parentId);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.materialindustry;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry.MaterialIndustryDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 物料行业 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialIndustryMapper extends BaseMapperX<MaterialIndustryDO> {
|
||||
|
||||
default PageResult<MaterialIndustryDO> selectPage(MaterialIndustryPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialIndustryDO>()
|
||||
.eqIfPresent(MaterialIndustryDO::getIndustryCode, reqVO.getIndustryCode())
|
||||
.likeIfPresent(MaterialIndustryDO::getIndustryName, reqVO.getIndustryName())
|
||||
.betweenIfPresent(MaterialIndustryDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialIndustryDO::getId));
|
||||
}
|
||||
|
||||
default List<MaterialIndustryDO> selectList(MaterialIndustryExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialIndustryDO>()
|
||||
.eqIfPresent(MaterialIndustryDO::getIndustryCode, reqVO.getIndustryCode())
|
||||
.likeIfPresent(MaterialIndustryDO::getIndustryName, reqVO.getIndustryName())
|
||||
.betweenIfPresent(MaterialIndustryDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialIndustryDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.yunxi.scm.module.xxjj.dal.mysql.materialtype;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypePageReqVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 物料类型 Mapper
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Mapper
|
||||
public interface MaterialTypeMapper extends BaseMapperX<MaterialTypeDO> {
|
||||
|
||||
default PageResult<MaterialTypeDO> selectPage(MaterialTypePageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MaterialTypeDO>()
|
||||
.eqIfPresent(MaterialTypeDO::getMaterialTypeCode, reqVO.getMaterialTypeCode())
|
||||
.likeIfPresent(MaterialTypeDO::getMaterialTypeName, reqVO.getMaterialTypeName())
|
||||
.eqIfPresent(MaterialTypeDO::getMaterialIndustryId, reqVO.getMaterialIndustryId())
|
||||
.betweenIfPresent(MaterialTypeDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialTypeDO::getId));
|
||||
}
|
||||
|
||||
default List<MaterialTypeDO> selectList(MaterialTypeExportReqVO reqVO) {
|
||||
return selectList(new LambdaQueryWrapperX<MaterialTypeDO>()
|
||||
.eqIfPresent(MaterialTypeDO::getMaterialTypeCode, reqVO.getMaterialTypeCode())
|
||||
.likeIfPresent(MaterialTypeDO::getMaterialTypeName, reqVO.getMaterialTypeName())
|
||||
.eqIfPresent(MaterialTypeDO::getMaterialIndustryId, reqVO.getMaterialIndustryId())
|
||||
.betweenIfPresent(MaterialTypeDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MaterialTypeDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.yunxi.scm.module.xxjj.enums;
|
||||
|
||||
import com.yunxi.scm.framework.common.exception.ErrorCode;
|
||||
|
||||
public interface ErrorCodeConstants {
|
||||
// ========== 物料行业 TODO 补充编号 ==========
|
||||
ErrorCode MATERIAL_INDUSTRY_NOT_EXISTS = new ErrorCode(1002025002, "物料行业不存在");
|
||||
// ========== 物料类型 TODO 补充编号 ==========
|
||||
ErrorCode MATERIAL_TYPE_NOT_EXISTS = new ErrorCode(1002025003, "物料类型不存在");
|
||||
// ========== 物料 TODO 补充编号 ==========
|
||||
ErrorCode MATERIAL_NOT_EXISTS = new ErrorCode(1002025004, "物料不存在");
|
||||
// ========== 物料品牌 TODO 补充编号 ==========
|
||||
ErrorCode MATERIAL_BRAND_NOT_EXISTS = new ErrorCode(1002025005, "物料品牌不存在");
|
||||
|
||||
// ========== 部门模块 1002004000 ==========
|
||||
ErrorCode MaterialCategory_NAME_DUPLICATE = new ErrorCode(1002004000, "已经存在该名字的部门");
|
||||
ErrorCode MaterialCategory_PARENT_NOT_EXITS = new ErrorCode(1002004001,"父级部门不存在");
|
||||
ErrorCode MaterialCategory_NOT_FOUND = new ErrorCode(1002004002, "当前部门不存在");
|
||||
ErrorCode MaterialCategory_EXITS_CHILDREN = new ErrorCode(1002004003, "存在子部门,无法删除");
|
||||
ErrorCode MaterialCategory_PARENT_ERROR = new ErrorCode(1002004004, "不能设置自己为父部门");
|
||||
ErrorCode MaterialCategory_EXISTS_USER = new ErrorCode(1002004005, "部门中存在员工,无法删除");
|
||||
ErrorCode MaterialCategory_NOT_ENABLE = new ErrorCode(1002004006, "部门({})不处于开启状态,不允许选择");
|
||||
ErrorCode MaterialCategory_PARENT_IS_CHILD = new ErrorCode(1002004007, "不能设置自己的子部门为父部门");
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.yunxi.scm.module.xxjj.service.material;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.material.MaterialDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialUpdateReqVO;
|
||||
|
||||
/**
|
||||
* 物料 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface MaterialService {
|
||||
|
||||
/**
|
||||
* 创建物料
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMaterial(@Valid MaterialCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新物料
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMaterial(@Valid MaterialUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除物料
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMaterial(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 物料
|
||||
*/
|
||||
MaterialDO getMaterial(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 物料列表
|
||||
*/
|
||||
List<MaterialDO> getMaterialList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得物料分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 物料分页
|
||||
*/
|
||||
PageResult<MaterialDO> getMaterialPage(MaterialPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 物料列表
|
||||
*/
|
||||
List<MaterialDO> getMaterialList(MaterialExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -1,24 +1,27 @@
|
||||
package com.yunxi.scm.module.demo.service.material;
|
||||
package com.yunxi.scm.module.xxjj.service.material;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.material.vo.MaterialUpdateReqVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.demo.controller.admin.material.vo.*;
|
||||
import com.yunxi.scm.module.demo.dal.dataobject.material.MaterialDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.demo.convert.material.MaterialConvert;
|
||||
import com.yunxi.scm.module.demo.dal.mysql.material.MaterialMapper;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.material.MaterialDO;
|
||||
import com.yunxi.scm.module.xxjj.convert.material.MaterialConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.material.MaterialMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.demo.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
|
||||
/**
|
||||
* 物料管理 Service 实现类
|
||||
* 物料 Service 实现类
|
||||
*
|
||||
* @author ccongli
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
@ -0,0 +1,74 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialbrand;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandUpdateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand.MaterialBrandDO;
|
||||
|
||||
/**
|
||||
* 物料品牌 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface MaterialBrandService {
|
||||
|
||||
/**
|
||||
* 创建物料品牌
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMaterialBrand(@Valid MaterialBrandCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新物料品牌
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMaterialBrand(@Valid MaterialBrandUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除物料品牌
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMaterialBrand(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料品牌
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 物料品牌
|
||||
*/
|
||||
MaterialBrandDO getMaterialBrand(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料品牌列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 物料品牌列表
|
||||
*/
|
||||
List<MaterialBrandDO> getMaterialBrandList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得物料品牌分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 物料品牌分页
|
||||
*/
|
||||
PageResult<MaterialBrandDO> getMaterialBrandPage(MaterialBrandPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料品牌列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 物料品牌列表
|
||||
*/
|
||||
List<MaterialBrandDO> getMaterialBrandList(MaterialBrandExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialbrand;
|
||||
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandUpdateReqVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand.MaterialBrandDO;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.materialbrand.MaterialBrandConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialbrand.MaterialBrandMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 物料品牌 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MaterialBrandServiceImpl implements MaterialBrandService {
|
||||
|
||||
@Resource
|
||||
private MaterialBrandMapper materialBrandMapper;
|
||||
|
||||
@Override
|
||||
public Long createMaterialBrand(MaterialBrandCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
MaterialBrandDO materialBrand = MaterialBrandConvert.INSTANCE.convert(createReqVO);
|
||||
materialBrandMapper.insert(materialBrand);
|
||||
// 返回
|
||||
return materialBrand.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMaterialBrand(MaterialBrandUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateMaterialBrandExists(updateReqVO.getId());
|
||||
// 更新
|
||||
MaterialBrandDO updateObj = MaterialBrandConvert.INSTANCE.convert(updateReqVO);
|
||||
materialBrandMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMaterialBrand(Long id) {
|
||||
// 校验存在
|
||||
validateMaterialBrandExists(id);
|
||||
// 删除
|
||||
materialBrandMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateMaterialBrandExists(Long id) {
|
||||
if (materialBrandMapper.selectById(id) == null) {
|
||||
throw exception(MATERIAL_BRAND_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialBrandDO getMaterialBrand(Long id) {
|
||||
return materialBrandMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialBrandDO> getMaterialBrandList(Collection<Long> ids) {
|
||||
return materialBrandMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialBrandDO> getMaterialBrandPage(MaterialBrandPageReqVO pageReqVO) {
|
||||
return materialBrandMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialBrandDO> getMaterialBrandList(MaterialBrandExportReqVO exportReqVO) {
|
||||
return materialBrandMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialindustry;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry.MaterialIndustryDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryUpdateReqVO;
|
||||
|
||||
/**
|
||||
* 物料行业 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface MaterialIndustryService {
|
||||
|
||||
/**
|
||||
* 创建物料行业
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMaterialIndustry(@Valid MaterialIndustryCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新物料行业
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMaterialIndustry(@Valid MaterialIndustryUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除物料行业
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMaterialIndustry(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料行业
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 物料行业
|
||||
*/
|
||||
MaterialIndustryDO getMaterialIndustry(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料行业列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 物料行业列表
|
||||
*/
|
||||
List<MaterialIndustryDO> getMaterialIndustryList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得物料行业分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 物料行业分页
|
||||
*/
|
||||
PageResult<MaterialIndustryDO> getMaterialIndustryPage(MaterialIndustryPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料行业列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 物料行业列表
|
||||
*/
|
||||
List<MaterialIndustryDO> getMaterialIndustryList(MaterialIndustryExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialindustry;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryUpdateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.convert.materialindustry.MaterialIndustryConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry.MaterialIndustryDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialindustry.MaterialIndustryMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 物料行业 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MaterialIndustryServiceImpl implements MaterialIndustryService {
|
||||
|
||||
@Resource
|
||||
private MaterialIndustryMapper materialIndustryMapper;
|
||||
|
||||
@Override
|
||||
public Long createMaterialIndustry(MaterialIndustryCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
MaterialIndustryDO materialIndustry = MaterialIndustryConvert.INSTANCE.convert(createReqVO);
|
||||
materialIndustryMapper.insert(materialIndustry);
|
||||
// 返回
|
||||
return materialIndustry.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMaterialIndustry(MaterialIndustryUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateMaterialIndustryExists(updateReqVO.getId());
|
||||
// 更新
|
||||
MaterialIndustryDO updateObj = MaterialIndustryConvert.INSTANCE.convert(updateReqVO);
|
||||
materialIndustryMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMaterialIndustry(Long id) {
|
||||
// 校验存在
|
||||
validateMaterialIndustryExists(id);
|
||||
// 删除
|
||||
materialIndustryMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateMaterialIndustryExists(Long id) {
|
||||
if (materialIndustryMapper.selectById(id) == null) {
|
||||
throw exception(MATERIAL_INDUSTRY_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialIndustryDO getMaterialIndustry(Long id) {
|
||||
return materialIndustryMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialIndustryDO> getMaterialIndustryList(Collection<Long> ids) {
|
||||
return materialIndustryMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialIndustryDO> getMaterialIndustryPage(MaterialIndustryPageReqVO pageReqVO) {
|
||||
return materialIndustryMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialIndustryDO> getMaterialIndustryList(MaterialIndustryExportReqVO exportReqVO) {
|
||||
return materialIndustryMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialtype;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypePageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeUpdateReqVO;
|
||||
|
||||
/**
|
||||
* 物料类型 Service 接口
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
public interface MaterialTypeService {
|
||||
|
||||
/**
|
||||
* 创建物料类型
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMaterialType(@Valid MaterialTypeCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新物料类型
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMaterialType(@Valid MaterialTypeUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除物料类型
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMaterialType(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料类型
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 物料类型
|
||||
*/
|
||||
MaterialTypeDO getMaterialType(Long id);
|
||||
|
||||
/**
|
||||
* 获得物料类型列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 物料类型列表
|
||||
*/
|
||||
List<MaterialTypeDO> getMaterialTypeList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得物料类型分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 物料类型分页
|
||||
*/
|
||||
PageResult<MaterialTypeDO> getMaterialTypePage(MaterialTypePageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料类型列表, 用于 Excel 导出
|
||||
*
|
||||
* @param exportReqVO 查询条件
|
||||
* @return 物料类型列表
|
||||
*/
|
||||
List<MaterialTypeDO> getMaterialTypeList(MaterialTypeExportReqVO exportReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialtype;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypePageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeUpdateReqVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.*;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.convert.materialtype.MaterialTypeConvert;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialtype.MaterialTypeMapper;
|
||||
|
||||
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 物料类型 Service 实现类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MaterialTypeServiceImpl implements MaterialTypeService {
|
||||
|
||||
@Resource
|
||||
private MaterialTypeMapper materialTypeMapper;
|
||||
|
||||
@Override
|
||||
public Long createMaterialType(MaterialTypeCreateReqVO createReqVO) {
|
||||
// 插入
|
||||
MaterialTypeDO materialType = MaterialTypeConvert.INSTANCE.convert(createReqVO);
|
||||
materialTypeMapper.insert(materialType);
|
||||
// 返回
|
||||
return materialType.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMaterialType(MaterialTypeUpdateReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateMaterialTypeExists(updateReqVO.getId());
|
||||
// 更新
|
||||
MaterialTypeDO updateObj = MaterialTypeConvert.INSTANCE.convert(updateReqVO);
|
||||
materialTypeMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMaterialType(Long id) {
|
||||
// 校验存在
|
||||
validateMaterialTypeExists(id);
|
||||
// 删除
|
||||
materialTypeMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateMaterialTypeExists(Long id) {
|
||||
if (materialTypeMapper.selectById(id) == null) {
|
||||
throw exception(MATERIAL_TYPE_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialTypeDO getMaterialType(Long id) {
|
||||
return materialTypeMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialTypeDO> getMaterialTypeList(Collection<Long> ids) {
|
||||
return materialTypeMapper.selectBatchIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MaterialTypeDO> getMaterialTypePage(MaterialTypePageReqVO pageReqVO) {
|
||||
return materialTypeMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialTypeDO> getMaterialTypeList(MaterialTypeExportReqVO exportReqVO) {
|
||||
return materialTypeMapper.selectList(exportReqVO);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,174 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialbrand;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.MaterialBrandUpdateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialbrand.MaterialBrandDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialbrand.MaterialBrandMapper;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialbrand.vo.*;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link MaterialBrandServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(MaterialBrandServiceImpl.class)
|
||||
public class MaterialBrandServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MaterialBrandServiceImpl materialBrandService;
|
||||
|
||||
@Resource
|
||||
private MaterialBrandMapper materialBrandMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateMaterialBrand_success() {
|
||||
// 准备参数
|
||||
MaterialBrandCreateReqVO reqVO = randomPojo(MaterialBrandCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long materialBrandId = materialBrandService.createMaterialBrand(reqVO);
|
||||
// 断言
|
||||
assertNotNull(materialBrandId);
|
||||
// 校验记录的属性是否正确
|
||||
MaterialBrandDO materialBrand = materialBrandMapper.selectById(materialBrandId);
|
||||
assertPojoEquals(reqVO, materialBrand);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialBrand_success() {
|
||||
// mock 数据
|
||||
MaterialBrandDO dbMaterialBrand = randomPojo(MaterialBrandDO.class);
|
||||
materialBrandMapper.insert(dbMaterialBrand);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MaterialBrandUpdateReqVO reqVO = randomPojo(MaterialBrandUpdateReqVO.class, o -> {
|
||||
o.setId(dbMaterialBrand.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
materialBrandService.updateMaterialBrand(reqVO);
|
||||
// 校验是否更新正确
|
||||
MaterialBrandDO materialBrand = materialBrandMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, materialBrand);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialBrand_notExists() {
|
||||
// 准备参数
|
||||
MaterialBrandUpdateReqVO reqVO = randomPojo(MaterialBrandUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialBrandService.updateMaterialBrand(reqVO), MATERIAL_BRAND_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialBrand_success() {
|
||||
// mock 数据
|
||||
MaterialBrandDO dbMaterialBrand = randomPojo(MaterialBrandDO.class);
|
||||
materialBrandMapper.insert(dbMaterialBrand);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMaterialBrand.getId();
|
||||
|
||||
// 调用
|
||||
materialBrandService.deleteMaterialBrand(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(materialBrandMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialBrand_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialBrandService.deleteMaterialBrand(id), MATERIAL_BRAND_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialBrandPage() {
|
||||
// mock 数据
|
||||
MaterialBrandDO dbMaterialBrand = randomPojo(MaterialBrandDO.class, o -> { // 等会查询到
|
||||
o.setBrandName(null);
|
||||
o.setBrandSort(null);
|
||||
o.setBrandStatus(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialBrandMapper.insert(dbMaterialBrand);
|
||||
// 测试 brandName 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setBrandName(null)));
|
||||
// 测试 brandSort 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setBrandSort(null)));
|
||||
// 测试 brandStatus 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setBrandStatus(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialBrandPageReqVO reqVO = new MaterialBrandPageReqVO();
|
||||
reqVO.setBrandName(null);
|
||||
reqVO.setBrandSort(null);
|
||||
reqVO.setBrandStatus(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<MaterialBrandDO> pageResult = materialBrandService.getMaterialBrandPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMaterialBrand, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialBrandList() {
|
||||
// mock 数据
|
||||
MaterialBrandDO dbMaterialBrand = randomPojo(MaterialBrandDO.class, o -> { // 等会查询到
|
||||
o.setBrandName(null);
|
||||
o.setBrandSort(null);
|
||||
o.setBrandStatus(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialBrandMapper.insert(dbMaterialBrand);
|
||||
// 测试 brandName 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setBrandName(null)));
|
||||
// 测试 brandSort 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setBrandSort(null)));
|
||||
// 测试 brandStatus 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setBrandStatus(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialBrandMapper.insert(cloneIgnoreId(dbMaterialBrand, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialBrandExportReqVO reqVO = new MaterialBrandExportReqVO();
|
||||
reqVO.setBrandName(null);
|
||||
reqVO.setBrandSort(null);
|
||||
reqVO.setBrandStatus(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<MaterialBrandDO> list = materialBrandService.getMaterialBrandList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbMaterialBrand, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,166 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialindustry;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryPageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.MaterialIndustryUpdateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialindustry.MaterialIndustryDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialindustry.MaterialIndustryMapper;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialindustry.vo.*;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link MaterialIndustryServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(MaterialIndustryServiceImpl.class)
|
||||
public class MaterialIndustryServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MaterialIndustryServiceImpl materialIndustryService;
|
||||
|
||||
@Resource
|
||||
private MaterialIndustryMapper materialIndustryMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateMaterialIndustry_success() {
|
||||
// 准备参数
|
||||
MaterialIndustryCreateReqVO reqVO = randomPojo(MaterialIndustryCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long materialIndustryId = materialIndustryService.createMaterialIndustry(reqVO);
|
||||
// 断言
|
||||
assertNotNull(materialIndustryId);
|
||||
// 校验记录的属性是否正确
|
||||
MaterialIndustryDO materialIndustry = materialIndustryMapper.selectById(materialIndustryId);
|
||||
assertPojoEquals(reqVO, materialIndustry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialIndustry_success() {
|
||||
// mock 数据
|
||||
MaterialIndustryDO dbMaterialIndustry = randomPojo(MaterialIndustryDO.class);
|
||||
materialIndustryMapper.insert(dbMaterialIndustry);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MaterialIndustryUpdateReqVO reqVO = randomPojo(MaterialIndustryUpdateReqVO.class, o -> {
|
||||
o.setId(dbMaterialIndustry.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
materialIndustryService.updateMaterialIndustry(reqVO);
|
||||
// 校验是否更新正确
|
||||
MaterialIndustryDO materialIndustry = materialIndustryMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, materialIndustry);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialIndustry_notExists() {
|
||||
// 准备参数
|
||||
MaterialIndustryUpdateReqVO reqVO = randomPojo(MaterialIndustryUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialIndustryService.updateMaterialIndustry(reqVO), MATERIAL_INDUSTRY_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialIndustry_success() {
|
||||
// mock 数据
|
||||
MaterialIndustryDO dbMaterialIndustry = randomPojo(MaterialIndustryDO.class);
|
||||
materialIndustryMapper.insert(dbMaterialIndustry);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMaterialIndustry.getId();
|
||||
|
||||
// 调用
|
||||
materialIndustryService.deleteMaterialIndustry(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(materialIndustryMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialIndustry_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialIndustryService.deleteMaterialIndustry(id), MATERIAL_INDUSTRY_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialIndustryPage() {
|
||||
// mock 数据
|
||||
MaterialIndustryDO dbMaterialIndustry = randomPojo(MaterialIndustryDO.class, o -> { // 等会查询到
|
||||
o.setIndustryCode(null);
|
||||
o.setIndustryName(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialIndustryMapper.insert(dbMaterialIndustry);
|
||||
// 测试 industryCode 不匹配
|
||||
materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryCode(null)));
|
||||
// 测试 industryName 不匹配
|
||||
materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryName(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialIndustryPageReqVO reqVO = new MaterialIndustryPageReqVO();
|
||||
reqVO.setIndustryCode(null);
|
||||
reqVO.setIndustryName(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<MaterialIndustryDO> pageResult = materialIndustryService.getMaterialIndustryPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMaterialIndustry, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialIndustryList() {
|
||||
// mock 数据
|
||||
MaterialIndustryDO dbMaterialIndustry = randomPojo(MaterialIndustryDO.class, o -> { // 等会查询到
|
||||
o.setIndustryCode(null);
|
||||
o.setIndustryName(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialIndustryMapper.insert(dbMaterialIndustry);
|
||||
// 测试 industryCode 不匹配
|
||||
materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryCode(null)));
|
||||
// 测试 industryName 不匹配
|
||||
materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setIndustryName(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialIndustryMapper.insert(cloneIgnoreId(dbMaterialIndustry, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialIndustryExportReqVO reqVO = new MaterialIndustryExportReqVO();
|
||||
reqVO.setIndustryCode(null);
|
||||
reqVO.setIndustryName(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<MaterialIndustryDO> list = materialIndustryService.getMaterialIndustryList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbMaterialIndustry, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,174 @@
|
||||
package com.yunxi.scm.module.xxjj.service.materialtype;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeCreateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeExportReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypePageReqVO;
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.MaterialTypeUpdateReqVO;
|
||||
import com.yunxi.scm.module.xxjj.dal.dataobject.materialtype.MaterialTypeDO;
|
||||
import com.yunxi.scm.module.xxjj.dal.mysql.materialtype.MaterialTypeMapper;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest;
|
||||
|
||||
import com.yunxi.scm.module.xxjj.controller.admin.materialtype.vo.*;
|
||||
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
|
||||
import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.AssertUtils.*;
|
||||
import static com.yunxi.scm.framework.test.core.util.RandomUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.yunxi.scm.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link MaterialTypeServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(MaterialTypeServiceImpl.class)
|
||||
public class MaterialTypeServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MaterialTypeServiceImpl materialTypeService;
|
||||
|
||||
@Resource
|
||||
private MaterialTypeMapper materialTypeMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateMaterialType_success() {
|
||||
// 准备参数
|
||||
MaterialTypeCreateReqVO reqVO = randomPojo(MaterialTypeCreateReqVO.class);
|
||||
|
||||
// 调用
|
||||
Long materialTypeId = materialTypeService.createMaterialType(reqVO);
|
||||
// 断言
|
||||
assertNotNull(materialTypeId);
|
||||
// 校验记录的属性是否正确
|
||||
MaterialTypeDO materialType = materialTypeMapper.selectById(materialTypeId);
|
||||
assertPojoEquals(reqVO, materialType);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialType_success() {
|
||||
// mock 数据
|
||||
MaterialTypeDO dbMaterialType = randomPojo(MaterialTypeDO.class);
|
||||
materialTypeMapper.insert(dbMaterialType);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MaterialTypeUpdateReqVO reqVO = randomPojo(MaterialTypeUpdateReqVO.class, o -> {
|
||||
o.setId(dbMaterialType.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
materialTypeService.updateMaterialType(reqVO);
|
||||
// 校验是否更新正确
|
||||
MaterialTypeDO materialType = materialTypeMapper.selectById(reqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(reqVO, materialType);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMaterialType_notExists() {
|
||||
// 准备参数
|
||||
MaterialTypeUpdateReqVO reqVO = randomPojo(MaterialTypeUpdateReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialTypeService.updateMaterialType(reqVO), MATERIAL_TYPE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialType_success() {
|
||||
// mock 数据
|
||||
MaterialTypeDO dbMaterialType = randomPojo(MaterialTypeDO.class);
|
||||
materialTypeMapper.insert(dbMaterialType);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMaterialType.getId();
|
||||
|
||||
// 调用
|
||||
materialTypeService.deleteMaterialType(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(materialTypeMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMaterialType_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> materialTypeService.deleteMaterialType(id), MATERIAL_TYPE_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialTypePage() {
|
||||
// mock 数据
|
||||
MaterialTypeDO dbMaterialType = randomPojo(MaterialTypeDO.class, o -> { // 等会查询到
|
||||
o.setMaterialTypeCode(null);
|
||||
o.setMaterialTypeName(null);
|
||||
o.setMaterialIndustryId(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialTypeMapper.insert(dbMaterialType);
|
||||
// 测试 materialTypeCode 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setMaterialTypeCode(null)));
|
||||
// 测试 materialTypeName 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setMaterialTypeName(null)));
|
||||
// 测试 materialIndustryId 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setMaterialIndustryId(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialTypePageReqVO reqVO = new MaterialTypePageReqVO();
|
||||
reqVO.setMaterialTypeCode(null);
|
||||
reqVO.setMaterialTypeName(null);
|
||||
reqVO.setMaterialIndustryId(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<MaterialTypeDO> pageResult = materialTypeService.getMaterialTypePage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMaterialType, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMaterialTypeList() {
|
||||
// mock 数据
|
||||
MaterialTypeDO dbMaterialType = randomPojo(MaterialTypeDO.class, o -> { // 等会查询到
|
||||
o.setMaterialTypeCode(null);
|
||||
o.setMaterialTypeName(null);
|
||||
o.setMaterialIndustryId(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
materialTypeMapper.insert(dbMaterialType);
|
||||
// 测试 materialTypeCode 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setMaterialTypeCode(null)));
|
||||
// 测试 materialTypeName 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setMaterialTypeName(null)));
|
||||
// 测试 materialIndustryId 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setMaterialIndustryId(null)));
|
||||
// 测试 createTime 不匹配
|
||||
materialTypeMapper.insert(cloneIgnoreId(dbMaterialType, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MaterialTypeExportReqVO reqVO = new MaterialTypeExportReqVO();
|
||||
reqVO.setMaterialTypeCode(null);
|
||||
reqVO.setMaterialTypeName(null);
|
||||
reqVO.setMaterialIndustryId(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
List<MaterialTypeDO> list = materialTypeService.getMaterialTypeList(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, list.size());
|
||||
assertPojoEquals(dbMaterialType, list.get(0));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料
|
||||
export function createMaterial(data) {
|
||||
return request({
|
||||
url: '/xxjj/material/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料
|
||||
export function updateMaterial(data) {
|
||||
return request({
|
||||
url: '/xxjj/material/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料
|
||||
export function deleteMaterial(id) {
|
||||
return request({
|
||||
url: '/xxjj/material/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料
|
||||
export function getMaterial(id) {
|
||||
return request({
|
||||
url: '/xxjj/material/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料分页
|
||||
export function getMaterialPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料 Excel
|
||||
export function exportMaterialExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料
|
||||
export function createMaterial(data) {
|
||||
return request({
|
||||
url: '/xxjj/material/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料
|
||||
export function updateMaterial(data) {
|
||||
return request({
|
||||
url: '/xxjj/material/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料
|
||||
export function deleteMaterial(id) {
|
||||
return request({
|
||||
url: '/xxjj/material/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料
|
||||
export function getMaterial(id) {
|
||||
return request({
|
||||
url: '/xxjj/material/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料分页
|
||||
export function getMaterialPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料 Excel
|
||||
export function exportMaterialExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询物料分类列表
|
||||
export function listMaterialCategory(query) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询物料分类列表(排除节点)
|
||||
export function listMaterialCategoryExcludeChild(materialCategoryId) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/list/exclude/' + materialCategoryId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询物料分类详细
|
||||
export function getMaterialCategory(materialCategoryId) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/get?id=' + materialCategoryId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取物料分类精简信息列表
|
||||
export function listSimpleMaterialCategorys() {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/list-all-simple',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增物料分类
|
||||
export function addMaterialCategory(data) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改物料分类
|
||||
export function updateMaterialCategory(data) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料分类
|
||||
export function delMaterialCategory(id) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料行业
|
||||
export function createMaterialIndustry(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料行业
|
||||
export function updateMaterialIndustry(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料行业
|
||||
export function deleteMaterialIndustry(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料行业
|
||||
export function getMaterialIndustry(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料行业分页
|
||||
export function getMaterialIndustryPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料行业 Excel
|
||||
export function exportMaterialIndustryExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料类型
|
||||
export function createMaterialType(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料类型
|
||||
export function updateMaterialType(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料类型
|
||||
export function deleteMaterialType(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料类型
|
||||
export function getMaterialType(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料类型分页
|
||||
export function getMaterialTypePage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料类型 Excel
|
||||
export function exportMaterialTypeExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询物料分类列表
|
||||
export function listMaterialCategory(query) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询物料分类列表(排除节点)
|
||||
export function listMaterialCategoryExcludeChild(materialCategoryId) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/list/exclude/' + materialCategoryId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询物料分类详细
|
||||
export function getMaterialCategory(materialCategoryId) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/get?id=' + materialCategoryId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取物料分类精简信息列表
|
||||
export function listSimpleMaterialCategorys() {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/list-all-simple',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增物料分类
|
||||
export function addMaterialCategory(data) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改物料分类
|
||||
export function updateMaterialCategory(data) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料分类
|
||||
export function delMaterialCategory(id) {
|
||||
return request({
|
||||
url: '/xxjj/materialCategory/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料行业
|
||||
export function createMaterialIndustry(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料行业
|
||||
export function updateMaterialIndustry(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料行业
|
||||
export function deleteMaterialIndustry(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料行业
|
||||
export function getMaterialIndustry(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料行业分页
|
||||
export function getMaterialIndustryPage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料行业 Excel
|
||||
export function exportMaterialIndustryExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-industry/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 创建物料类型
|
||||
export function createMaterialType(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新物料类型
|
||||
export function updateMaterialType(data) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除物料类型
|
||||
export function deleteMaterialType(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/delete?id=' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料类型
|
||||
export function getMaterialType(id) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/get?id=' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获得物料类型分页
|
||||
export function getMaterialTypePage(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 导出物料类型 Excel
|
||||
export function exportMaterialTypeExcel(query) {
|
||||
return request({
|
||||
url: '/xxjj/material-type/export-excel',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue