From f98d8ff03c4c1b1778e1d566eb22e4d3ab6f8869 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 30 Jan 2026 10:49:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(mat):=20=E6=B7=BB=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E6=96=99=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增配料出库服务接口及实现类 - 实现配料配件基础信息服务及CRUD操作 - 添加配料价格变动历史记录功能 - 创建产品-配料关联中间表服务 - 实现采购单主服务管理在途库存 - 添加入库记录详情管理功能 - 完善配料出入库流程控制逻辑 --- gear-admin/pom.xml | 4 + gear-mat/pom.xml | 23 ++++ .../MatMatPriceHistoryController.java | 102 +++++++++++++++ .../mat/controller/MatMaterialController.java | 102 +++++++++++++++ .../controller/MatMaterialOutController.java | 102 +++++++++++++++ .../mat/controller/MatProductController.java | 102 +++++++++++++++ .../MatProductMaterialRelationController.java | 102 +++++++++++++++ .../mat/controller/MatPurchaseController.java | 102 +++++++++++++++ .../MatPurchaseInDetailController.java | 102 +++++++++++++++ .../gear/mat/domain/MatMatPriceHistory.java | 57 +++++++++ .../java/com/gear/mat/domain/MatMaterial.java | 65 ++++++++++ .../com/gear/mat/domain/MatMaterialOut.java | 67 ++++++++++ .../java/com/gear/mat/domain/MatProduct.java | 57 +++++++++ .../domain/MatProductMaterialRelation.java | 57 +++++++++ .../java/com/gear/mat/domain/MatPurchase.java | 79 ++++++++++++ .../gear/mat/domain/MatPurchaseInDetail.java | 71 +++++++++++ .../mat/domain/bo/MatMatPriceHistoryBo.java | 56 +++++++++ .../com/gear/mat/domain/bo/MatMaterialBo.java | 66 ++++++++++ .../gear/mat/domain/bo/MatMaterialOutBo.java | 70 +++++++++++ .../com/gear/mat/domain/bo/MatProductBo.java | 56 +++++++++ .../bo/MatProductMaterialRelationBo.java | 56 +++++++++ .../com/gear/mat/domain/bo/MatPurchaseBo.java | 87 +++++++++++++ .../mat/domain/bo/MatPurchaseInDetailBo.java | 75 +++++++++++ .../mat/domain/vo/MatMatPriceHistoryVo.java | 62 ++++++++++ .../gear/mat/domain/vo/MatMaterialOutVo.java | 78 ++++++++++++ .../com/gear/mat/domain/vo/MatMaterialVo.java | 75 +++++++++++ .../vo/MatProductMaterialRelationVo.java | 62 ++++++++++ .../com/gear/mat/domain/vo/MatProductVo.java | 62 ++++++++++ .../mat/domain/vo/MatPurchaseInDetailVo.java | 85 +++++++++++++ .../com/gear/mat/domain/vo/MatPurchaseVo.java | 101 +++++++++++++++ .../mat/mapper/MatMatPriceHistoryMapper.java | 15 +++ .../gear/mat/mapper/MatMaterialMapper.java | 15 +++ .../gear/mat/mapper/MatMaterialOutMapper.java | 15 +++ .../com/gear/mat/mapper/MatProductMapper.java | 15 +++ .../MatProductMaterialRelationMapper.java | 15 +++ .../mat/mapper/MatPurchaseInDetailMapper.java | 15 +++ .../gear/mat/mapper/MatPurchaseMapper.java | 15 +++ .../service/IMatMatPriceHistoryService.java | 49 ++++++++ .../mat/service/IMatMaterialOutService.java | 49 ++++++++ .../gear/mat/service/IMatMaterialService.java | 49 ++++++++ .../IMatProductMaterialRelationService.java | 49 ++++++++ .../gear/mat/service/IMatProductService.java | 49 ++++++++ .../service/IMatPurchaseInDetailService.java | 49 ++++++++ .../gear/mat/service/IMatPurchaseService.java | 49 ++++++++ .../impl/MatMatPriceHistoryServiceImpl.java | 112 +++++++++++++++++ .../impl/MatMaterialOutServiceImpl.java | 114 +++++++++++++++++ .../service/impl/MatMaterialServiceImpl.java | 114 +++++++++++++++++ ...MatProductMaterialRelationServiceImpl.java | 112 +++++++++++++++++ .../service/impl/MatProductServiceImpl.java | 112 +++++++++++++++++ .../impl/MatPurchaseInDetailServiceImpl.java | 115 +++++++++++++++++ .../service/impl/MatPurchaseServiceImpl.java | 117 ++++++++++++++++++ .../mapper/MatMatPriceHistoryMapper.xml | 22 ++++ .../resources/mapper/MatMaterialMapper.xml | 24 ++++ .../resources/mapper/MatMaterialOutMapper.xml | 24 ++++ .../resources/mapper/MatProductMapper.xml | 22 ++++ .../MatProductMaterialRelationMapper.xml | 22 ++++ .../mapper/MatPurchaseInDetailMapper.xml | 25 ++++ .../resources/mapper/MatPurchaseMapper.xml | 27 ++++ gear-mes/src/main/resources/mapper/is | 0 pom.xml | 6 + 60 files changed, 3601 insertions(+) create mode 100644 gear-mat/pom.xml create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatMatPriceHistoryController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatMaterialController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatMaterialOutController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatProductController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatProductMaterialRelationController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseInDetailController.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatMatPriceHistory.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatMaterial.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatMaterialOut.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatProduct.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatProductMaterialRelation.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatPurchase.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/MatPurchaseInDetail.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatMatPriceHistoryBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialOutBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductMaterialRelationBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseInDetailBo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatMatPriceHistoryVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialOutVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductMaterialRelationVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseVo.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatMatPriceHistoryMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialOutMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatProductMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatProductMaterialRelationMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseMapper.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatMatPriceHistoryService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatMaterialOutService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatMaterialService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatProductMaterialRelationService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatProductService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseInDetailService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseService.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatMatPriceHistoryServiceImpl.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialOutServiceImpl.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialServiceImpl.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatProductMaterialRelationServiceImpl.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatProductServiceImpl.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java create mode 100644 gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseServiceImpl.java create mode 100644 gear-mat/src/main/resources/mapper/MatMatPriceHistoryMapper.xml create mode 100644 gear-mat/src/main/resources/mapper/MatMaterialMapper.xml create mode 100644 gear-mat/src/main/resources/mapper/MatMaterialOutMapper.xml create mode 100644 gear-mat/src/main/resources/mapper/MatProductMapper.xml create mode 100644 gear-mat/src/main/resources/mapper/MatProductMaterialRelationMapper.xml create mode 100644 gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml create mode 100644 gear-mat/src/main/resources/mapper/MatPurchaseMapper.xml delete mode 100644 gear-mes/src/main/resources/mapper/is diff --git a/gear-admin/pom.xml b/gear-admin/pom.xml index 31e01a3..f167d09 100644 --- a/gear-admin/pom.xml +++ b/gear-admin/pom.xml @@ -111,6 +111,10 @@ com.gear.mes gear-mes + + com.gear + gear-mat + diff --git a/gear-mat/pom.xml b/gear-mat/pom.xml new file mode 100644 index 0000000..1eeb908 --- /dev/null +++ b/gear-mat/pom.xml @@ -0,0 +1,23 @@ + + 4.0.0 + + com.gear + FURNITURE-OA + 0.8.3 + + gear-mat + Archetype - gear-mat + http://maven.apache.org + + + + com.gear + gear-common + + + commons-collections + commons-collections + + + diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatMatPriceHistoryController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatMatPriceHistoryController.java new file mode 100644 index 0000000..57e28f9 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatMatPriceHistoryController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatMatPriceHistoryVo; +import com.gear.mat.domain.bo.MatMatPriceHistoryBo; +import com.gear.mat.service.IMatMatPriceHistoryService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 配料价格/均价变动历史 + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/matPriceHistory") +public class MatMatPriceHistoryController extends BaseController { + + private final IMatMatPriceHistoryService iMatMatPriceHistoryService; + + /** + * 查询配料价格/均价变动历史列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatMatPriceHistoryBo bo, PageQuery pageQuery) { + return iMatMatPriceHistoryService.queryPageList(bo, pageQuery); + } + + /** + * 导出配料价格/均价变动历史列表 + */ + @Log(title = "配料价格/均价变动历史", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatMatPriceHistoryBo bo, HttpServletResponse response) { + List list = iMatMatPriceHistoryService.queryList(bo); + ExcelUtil.exportExcel(list, "配料价格/均价变动历史", MatMatPriceHistoryVo.class, response); + } + + /** + * 获取配料价格/均价变动历史详细信息 + * + * @param historyId 主键 + */ + @GetMapping("/{historyId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long historyId) { + return R.ok(iMatMatPriceHistoryService.queryById(historyId)); + } + + /** + * 新增配料价格/均价变动历史 + */ + @Log(title = "配料价格/均价变动历史", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatMatPriceHistoryBo bo) { + return toAjax(iMatMatPriceHistoryService.insertByBo(bo)); + } + + /** + * 修改配料价格/均价变动历史 + */ + @Log(title = "配料价格/均价变动历史", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatMatPriceHistoryBo bo) { + return toAjax(iMatMatPriceHistoryService.updateByBo(bo)); + } + + /** + * 删除配料价格/均价变动历史 + * + * @param historyIds 主键串 + */ + @Log(title = "配料价格/均价变动历史", businessType = BusinessType.DELETE) + @DeleteMapping("/{historyIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] historyIds) { + return toAjax(iMatMatPriceHistoryService.deleteWithValidByIds(Arrays.asList(historyIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatMaterialController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatMaterialController.java new file mode 100644 index 0000000..2ac9c55 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatMaterialController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatMaterialVo; +import com.gear.mat.domain.bo.MatMaterialBo; +import com.gear.mat.service.IMatMaterialService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 配料配件基础信息 + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/material") +public class MatMaterialController extends BaseController { + + private final IMatMaterialService iMatMaterialService; + + /** + * 查询配料配件基础信息列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatMaterialBo bo, PageQuery pageQuery) { + return iMatMaterialService.queryPageList(bo, pageQuery); + } + + /** + * 导出配料配件基础信息列表 + */ + @Log(title = "配料配件基础信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatMaterialBo bo, HttpServletResponse response) { + List list = iMatMaterialService.queryList(bo); + ExcelUtil.exportExcel(list, "配料配件基础信息", MatMaterialVo.class, response); + } + + /** + * 获取配料配件基础信息详细信息 + * + * @param materialId 主键 + */ + @GetMapping("/{materialId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long materialId) { + return R.ok(iMatMaterialService.queryById(materialId)); + } + + /** + * 新增配料配件基础信息 + */ + @Log(title = "配料配件基础信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatMaterialBo bo) { + return toAjax(iMatMaterialService.insertByBo(bo)); + } + + /** + * 修改配料配件基础信息 + */ + @Log(title = "配料配件基础信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatMaterialBo bo) { + return toAjax(iMatMaterialService.updateByBo(bo)); + } + + /** + * 删除配料配件基础信息 + * + * @param materialIds 主键串 + */ + @Log(title = "配料配件基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{materialIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] materialIds) { + return toAjax(iMatMaterialService.deleteWithValidByIds(Arrays.asList(materialIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatMaterialOutController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatMaterialOutController.java new file mode 100644 index 0000000..a95e20d --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatMaterialOutController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatMaterialOutVo; +import com.gear.mat.domain.bo.MatMaterialOutBo; +import com.gear.mat.service.IMatMaterialOutService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 配料出库 + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/materialOut") +public class MatMaterialOutController extends BaseController { + + private final IMatMaterialOutService iMatMaterialOutService; + + /** + * 查询配料出库列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatMaterialOutBo bo, PageQuery pageQuery) { + return iMatMaterialOutService.queryPageList(bo, pageQuery); + } + + /** + * 导出配料出库列表 + */ + @Log(title = "配料出库", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatMaterialOutBo bo, HttpServletResponse response) { + List list = iMatMaterialOutService.queryList(bo); + ExcelUtil.exportExcel(list, "配料出库", MatMaterialOutVo.class, response); + } + + /** + * 获取配料出库详细信息 + * + * @param outId 主键 + */ + @GetMapping("/{outId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long outId) { + return R.ok(iMatMaterialOutService.queryById(outId)); + } + + /** + * 新增配料出库 + */ + @Log(title = "配料出库", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatMaterialOutBo bo) { + return toAjax(iMatMaterialOutService.insertByBo(bo)); + } + + /** + * 修改配料出库 + */ + @Log(title = "配料出库", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatMaterialOutBo bo) { + return toAjax(iMatMaterialOutService.updateByBo(bo)); + } + + /** + * 删除配料出库 + * + * @param outIds 主键串 + */ + @Log(title = "配料出库", businessType = BusinessType.DELETE) + @DeleteMapping("/{outIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] outIds) { + return toAjax(iMatMaterialOutService.deleteWithValidByIds(Arrays.asList(outIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatProductController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatProductController.java new file mode 100644 index 0000000..fc03bbd --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatProductController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatProductVo; +import com.gear.mat.domain.bo.MatProductBo; +import com.gear.mat.service.IMatProductService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 产品基础信息 + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/product") +public class MatProductController extends BaseController { + + private final IMatProductService iMatProductService; + + /** + * 查询产品基础信息列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatProductBo bo, PageQuery pageQuery) { + return iMatProductService.queryPageList(bo, pageQuery); + } + + /** + * 导出产品基础信息列表 + */ + @Log(title = "产品基础信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatProductBo bo, HttpServletResponse response) { + List list = iMatProductService.queryList(bo); + ExcelUtil.exportExcel(list, "产品基础信息", MatProductVo.class, response); + } + + /** + * 获取产品基础信息详细信息 + * + * @param productId 主键 + */ + @GetMapping("/{productId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long productId) { + return R.ok(iMatProductService.queryById(productId)); + } + + /** + * 新增产品基础信息 + */ + @Log(title = "产品基础信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatProductBo bo) { + return toAjax(iMatProductService.insertByBo(bo)); + } + + /** + * 修改产品基础信息 + */ + @Log(title = "产品基础信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatProductBo bo) { + return toAjax(iMatProductService.updateByBo(bo)); + } + + /** + * 删除产品基础信息 + * + * @param productIds 主键串 + */ + @Log(title = "产品基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{productIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] productIds) { + return toAjax(iMatProductService.deleteWithValidByIds(Arrays.asList(productIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatProductMaterialRelationController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatProductMaterialRelationController.java new file mode 100644 index 0000000..de7dc7e --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatProductMaterialRelationController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatProductMaterialRelationVo; +import com.gear.mat.domain.bo.MatProductMaterialRelationBo; +import com.gear.mat.service.IMatProductMaterialRelationService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 产品-配料关联中间 + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/productMaterialRelation") +public class MatProductMaterialRelationController extends BaseController { + + private final IMatProductMaterialRelationService iMatProductMaterialRelationService; + + /** + * 查询产品-配料关联中间列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatProductMaterialRelationBo bo, PageQuery pageQuery) { + return iMatProductMaterialRelationService.queryPageList(bo, pageQuery); + } + + /** + * 导出产品-配料关联中间列表 + */ + @Log(title = "产品-配料关联中间", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatProductMaterialRelationBo bo, HttpServletResponse response) { + List list = iMatProductMaterialRelationService.queryList(bo); + ExcelUtil.exportExcel(list, "产品-配料关联中间", MatProductMaterialRelationVo.class, response); + } + + /** + * 获取产品-配料关联中间详细信息 + * + * @param relationId 主键 + */ + @GetMapping("/{relationId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long relationId) { + return R.ok(iMatProductMaterialRelationService.queryById(relationId)); + } + + /** + * 新增产品-配料关联中间 + */ + @Log(title = "产品-配料关联中间", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatProductMaterialRelationBo bo) { + return toAjax(iMatProductMaterialRelationService.insertByBo(bo)); + } + + /** + * 修改产品-配料关联中间 + */ + @Log(title = "产品-配料关联中间", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatProductMaterialRelationBo bo) { + return toAjax(iMatProductMaterialRelationService.updateByBo(bo)); + } + + /** + * 删除产品-配料关联中间 + * + * @param relationIds 主键串 + */ + @Log(title = "产品-配料关联中间", businessType = BusinessType.DELETE) + @DeleteMapping("/{relationIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] relationIds) { + return toAjax(iMatProductMaterialRelationService.deleteWithValidByIds(Arrays.asList(relationIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseController.java new file mode 100644 index 0000000..e13bec3 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatPurchaseVo; +import com.gear.mat.domain.bo.MatPurchaseBo; +import com.gear.mat.service.IMatPurchaseService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 采购单主(管理在途库存) + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/purchase") +public class MatPurchaseController extends BaseController { + + private final IMatPurchaseService iMatPurchaseService; + + /** + * 查询采购单主(管理在途库存)列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatPurchaseBo bo, PageQuery pageQuery) { + return iMatPurchaseService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购单主(管理在途库存)列表 + */ + @Log(title = "采购单主(管理在途库存)", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatPurchaseBo bo, HttpServletResponse response) { + List list = iMatPurchaseService.queryList(bo); + ExcelUtil.exportExcel(list, "采购单主(管理在途库存)", MatPurchaseVo.class, response); + } + + /** + * 获取采购单主(管理在途库存)详细信息 + * + * @param purchaseId 主键 + */ + @GetMapping("/{purchaseId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long purchaseId) { + return R.ok(iMatPurchaseService.queryById(purchaseId)); + } + + /** + * 新增采购单主(管理在途库存) + */ + @Log(title = "采购单主(管理在途库存)", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatPurchaseBo bo) { + return toAjax(iMatPurchaseService.insertByBo(bo)); + } + + /** + * 修改采购单主(管理在途库存) + */ + @Log(title = "采购单主(管理在途库存)", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatPurchaseBo bo) { + return toAjax(iMatPurchaseService.updateByBo(bo)); + } + + /** + * 删除采购单主(管理在途库存) + * + * @param purchaseIds 主键串 + */ + @Log(title = "采购单主(管理在途库存)", businessType = BusinessType.DELETE) + @DeleteMapping("/{purchaseIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] purchaseIds) { + return toAjax(iMatPurchaseService.deleteWithValidByIds(Arrays.asList(purchaseIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseInDetailController.java b/gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseInDetailController.java new file mode 100644 index 0000000..0d282ce --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/controller/MatPurchaseInDetailController.java @@ -0,0 +1,102 @@ +package com.gear.mat.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.gear.common.annotation.RepeatSubmit; +import com.gear.common.annotation.Log; +import com.gear.common.core.controller.BaseController; +import com.gear.common.core.domain.PageQuery; +import com.gear.common.core.domain.R; +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import com.gear.common.core.validate.QueryGroup; +import com.gear.common.enums.BusinessType; +import com.gear.common.utils.poi.ExcelUtil; +import com.gear.mat.domain.vo.MatPurchaseInDetailVo; +import com.gear.mat.domain.bo.MatPurchaseInDetailBo; +import com.gear.mat.service.IMatPurchaseInDetailService; +import com.gear.common.core.page.TableDataInfo; + +/** + * 入库记录 + * + * @author ruoyi + * @date 2026-01-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mat/purchaseInDetail") +public class MatPurchaseInDetailController extends BaseController { + + private final IMatPurchaseInDetailService iMatPurchaseInDetailService; + + /** + * 查询入库记录列表 + */ + @GetMapping("/list") + public TableDataInfo list(MatPurchaseInDetailBo bo, PageQuery pageQuery) { + return iMatPurchaseInDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出入库记录列表 + */ + @Log(title = "入库记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MatPurchaseInDetailBo bo, HttpServletResponse response) { + List list = iMatPurchaseInDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "入库记录", MatPurchaseInDetailVo.class, response); + } + + /** + * 获取入库记录详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iMatPurchaseInDetailService.queryById(detailId)); + } + + /** + * 新增入库记录 + */ + @Log(title = "入库记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MatPurchaseInDetailBo bo) { + return toAjax(iMatPurchaseInDetailService.insertByBo(bo)); + } + + /** + * 修改入库记录 + */ + @Log(title = "入库记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MatPurchaseInDetailBo bo) { + return toAjax(iMatPurchaseInDetailService.updateByBo(bo)); + } + + /** + * 删除入库记录 + * + * @param detailIds 主键串 + */ + @Log(title = "入库记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iMatPurchaseInDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatMatPriceHistory.java b/gear-mat/src/main/java/com/gear/mat/domain/MatMatPriceHistory.java new file mode 100644 index 0000000..14ebffe --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatMatPriceHistory.java @@ -0,0 +1,57 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 配料价格/均价变动历史对象 mat_mat_price_history + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_mat_price_history") +public class MatMatPriceHistory extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "history_id") + private Long historyId; + /** + * 配料ID + */ + private Long materialId; + /** + * 本次入库价格 + */ + private BigDecimal price; + /** + * 本次计算后的均价 + */ + private BigDecimal avgPrice; + /** + * 本次入库数量 + */ + private BigDecimal quantity; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatMaterial.java b/gear-mat/src/main/java/com/gear/mat/domain/MatMaterial.java new file mode 100644 index 0000000..541ce8f --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatMaterial.java @@ -0,0 +1,65 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 配料配件基础信息对象 mat_material + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_material") +public class MatMaterial extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 配料ID 主键 + */ + @TableId(value = "material_id") + private Long materialId; + /** + * 配料名称 + */ + private String materialName; + /** + * 配料规格 + */ + private String spec; + /** + * 配料型号 + */ + private String model; + /** + * 厂家 + */ + private String factory; + /** + * 计量单位 个/公斤/米等 + */ + private String unit; + /** + * 现存库存(已入库) 不能为负 + */ + private BigDecimal currentStock; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatMaterialOut.java b/gear-mat/src/main/java/com/gear/mat/domain/MatMaterialOut.java new file mode 100644 index 0000000..3f751d7 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatMaterialOut.java @@ -0,0 +1,67 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gear.common.core.domain.BaseEntity; + +/** + * 配料出库对象 mat_material_out + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_material_out") +public class MatMaterialOut extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 出库ID 主键 + */ + @TableId(value = "out_id") + private Long outId; + /** + * 出库单号 唯一 如O20260130001 + */ + private String outNo; + /** + * 配料ID 关联t_material.id + */ + private Long materialId; + /** + * 本次出库数量 不能超过现存库存 + */ + private BigDecimal outNum; + /** + * 出库原因 生产使用/样品/报废等 + */ + private String outReason; + /** + * 出库操作人 + */ + private String operator; + /** + * 实际出库时间 + */ + private Date outTime; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatProduct.java b/gear-mat/src/main/java/com/gear/mat/domain/MatProduct.java new file mode 100644 index 0000000..28a1b6d --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatProduct.java @@ -0,0 +1,57 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 产品基础信息对象 mat_product + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_product") +public class MatProduct extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 产品ID 主键 + */ + @TableId(value = "product_id") + private Long productId; + /** + * 产品名称 + */ + private String productName; + /** + * 产品规格 + */ + private String spec; + /** + * 产品型号 + */ + private String model; + /** + * 产品单价 可手动维护 + */ + private BigDecimal unitPrice; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatProductMaterialRelation.java b/gear-mat/src/main/java/com/gear/mat/domain/MatProductMaterialRelation.java new file mode 100644 index 0000000..d53a20f --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatProductMaterialRelation.java @@ -0,0 +1,57 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 产品-配料关联中间对象 mat_product_material_relation + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_product_material_relation") +public class MatProductMaterialRelation extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 关联ID 主键 + */ + @TableId(value = "relation_id") + private Long relationId; + /** + * 产品ID 关联t_product.id + */ + private Long productId; + /** + * 配料ID 关联t_material.id + */ + private Long materialId; + /** + * 单产品所需配料数量 默认为1 + */ + private BigDecimal materialNum; + /** + * 配料排序 用于前端展示顺序 + */ + private Long sort; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatPurchase.java b/gear-mat/src/main/java/com/gear/mat/domain/MatPurchase.java new file mode 100644 index 0000000..753b399 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatPurchase.java @@ -0,0 +1,79 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gear.common.core.domain.BaseEntity; + +/** + * 采购单主(管理在途库存)对象 mat_purchase + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_purchase") +public class MatPurchase extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 采购单ID 主键 + */ + @TableId(value = "purchase_id") + private Long purchaseId; + /** + * 采购单号 唯一 如P20260130001 + */ + private String purchaseNo; + /** + * 厂家 + */ + private String factory; + /** + * 配料ID 关联material.id + */ + private Long materialId; + /** + * 采购计划数量 + */ + private BigDecimal planNum; + /** + * 采购单价(本次录入价格) + */ + private BigDecimal purchasePrice; + /** + * 采购截止日期(要求入库日期) + */ + private Date deadline; + /** + * 采购状态 1-待入(在途) 2-已完成(全部入库) 3-已取消(归零) 4-部分入库 + */ + private Integer status; + /** + * 取消时间 状态为3时赋值 + */ + private Date cancelTime; + /** + * 采购人/操作人 + */ + private String operator; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/MatPurchaseInDetail.java b/gear-mat/src/main/java/com/gear/mat/domain/MatPurchaseInDetail.java new file mode 100644 index 0000000..f9f14ea --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/MatPurchaseInDetail.java @@ -0,0 +1,71 @@ +package com.gear.mat.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gear.common.core.domain.BaseEntity; + +/** + * 入库记录对象 mat_purchase_in_detail + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("mat_purchase_in_detail") +public class MatPurchaseInDetail extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 入库明细ID 主键 + */ + @TableId(value = "detail_id") + private Long detailId; + /** + * 采购单ID 关联t_purchase.id + */ + private Long purchaseId; + /** + * 配料ID 关联t_material.id 冗余字段 提升查询效率 + */ + private Long materialId; + /** + * 本次入库数量 + */ + private BigDecimal inNum; + /** + * 本次入库单价(同采购单单价) + */ + private BigDecimal inPrice; + /** + * 本次入库金额 计算列 + */ + private BigDecimal inAmount; + /** + * 实际入库时间 + */ + private Date inTime; + /** + * 入库操作人 + */ + private String operator; + /** + * 删除标志(0=正常,1=已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMatPriceHistoryBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMatPriceHistoryBo.java new file mode 100644 index 0000000..b5d6f0a --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMatPriceHistoryBo.java @@ -0,0 +1,56 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 配料价格/均价变动历史业务对象 mat_mat_price_history + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatMatPriceHistoryBo extends BaseEntity { + + /** + * + */ + private Long historyId; + + /** + * 配料ID + */ + private Long materialId; + + /** + * 本次入库价格 + */ + private BigDecimal price; + + /** + * 本次计算后的均价 + */ + private BigDecimal avgPrice; + + /** + * 本次入库数量 + */ + private BigDecimal quantity; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialBo.java new file mode 100644 index 0000000..c9baa88 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialBo.java @@ -0,0 +1,66 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 配料配件基础信息业务对象 mat_material + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatMaterialBo extends BaseEntity { + + /** + * 配料ID 主键 + */ + private Long materialId; + + /** + * 配料名称 + */ + private String materialName; + + /** + * 配料规格 + */ + private String spec; + + /** + * 配料型号 + */ + private String model; + + /** + * 厂家 + */ + private String factory; + + /** + * 计量单位 个/公斤/米等 + */ + private String unit; + + /** + * 现存库存(已入库) 不能为负 + */ + private BigDecimal currentStock; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialOutBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialOutBo.java new file mode 100644 index 0000000..37cce7d --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatMaterialOutBo.java @@ -0,0 +1,70 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gear.common.core.domain.BaseEntity; + +/** + * 配料出库业务对象 mat_material_out + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatMaterialOutBo extends BaseEntity { + + /** + * 出库ID 主键 + */ + private Long outId; + + /** + * 出库单号 唯一 如O20260130001 + */ + private String outNo; + + /** + * 配料ID 关联t_material.id + */ + private Long materialId; + + /** + * 本次出库数量 不能超过现存库存 + */ + private BigDecimal outNum; + + /** + * 出库原因 生产使用/样品/报废等 + */ + private String outReason; + + /** + * 出库操作人 + */ + private String operator; + + /** + * 实际出库时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date outTime; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductBo.java new file mode 100644 index 0000000..ee39f51 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductBo.java @@ -0,0 +1,56 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 产品基础信息业务对象 mat_product + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatProductBo extends BaseEntity { + + /** + * 产品ID 主键 + */ + private Long productId; + + /** + * 产品名称 + */ + private String productName; + + /** + * 产品规格 + */ + private String spec; + + /** + * 产品型号 + */ + private String model; + + /** + * 产品单价 可手动维护 + */ + private BigDecimal unitPrice; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductMaterialRelationBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductMaterialRelationBo.java new file mode 100644 index 0000000..a503945 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatProductMaterialRelationBo.java @@ -0,0 +1,56 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import com.gear.common.core.domain.BaseEntity; + +/** + * 产品-配料关联中间业务对象 mat_product_material_relation + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatProductMaterialRelationBo extends BaseEntity { + + /** + * 关联ID 主键 + */ + private Long relationId; + + /** + * 产品ID 关联t_product.id + */ + private Long productId; + + /** + * 配料ID 关联t_material.id + */ + private Long materialId; + + /** + * 单产品所需配料数量 默认为1 + */ + private BigDecimal materialNum; + + /** + * 配料排序 用于前端展示顺序 + */ + private Long sort; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseBo.java new file mode 100644 index 0000000..dff39b0 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseBo.java @@ -0,0 +1,87 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gear.common.core.domain.BaseEntity; + +/** + * 采购单主(管理在途库存)业务对象 mat_purchase + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatPurchaseBo extends BaseEntity { + + /** + * 采购单ID 主键 + */ + private Long purchaseId; + + /** + * 采购单号 唯一 如P20260130001 + */ + private String purchaseNo; + + /** + * 厂家 + */ + private String factory; + + /** + * 配料ID 关联material.id + */ + private Long materialId; + + /** + * 采购计划数量 + */ + private BigDecimal planNum; + + /** + * 采购单价(本次录入价格) + */ + private BigDecimal purchasePrice; + + /** + * 采购截止日期(要求入库日期) + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deadline; + + /** + * 采购状态 1-待入(在途) 2-已完成(全部入库) 3-已取消(归零) 4-部分入库 + */ + private Integer status; + + /** + * 取消时间 状态为3时赋值 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; + + /** + * 采购人/操作人 + */ + private String operator; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseInDetailBo.java b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseInDetailBo.java new file mode 100644 index 0000000..037eeba --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/bo/MatPurchaseInDetailBo.java @@ -0,0 +1,75 @@ +package com.gear.mat.domain.bo; + +import com.gear.common.core.validate.AddGroup; +import com.gear.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.gear.common.core.domain.BaseEntity; + +/** + * 入库记录业务对象 mat_purchase_in_detail + * + * @author ruoyi + * @date 2026-01-30 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class MatPurchaseInDetailBo extends BaseEntity { + + /** + * 入库明细ID 主键 + */ + private Long detailId; + + /** + * 采购单ID 关联t_purchase.id + */ + private Long purchaseId; + + /** + * 配料ID 关联t_material.id 冗余字段 提升查询效率 + */ + private Long materialId; + + /** + * 本次入库数量 + */ + private BigDecimal inNum; + + /** + * 本次入库单价(同采购单单价) + */ + private BigDecimal inPrice; + + /** + * 本次入库金额 计算列 + */ + private BigDecimal inAmount; + + /** + * 实际入库时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date inTime; + + /** + * 入库操作人 + */ + private String operator; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMatPriceHistoryVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMatPriceHistoryVo.java new file mode 100644 index 0000000..ecdff1c --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMatPriceHistoryVo.java @@ -0,0 +1,62 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 配料价格/均价变动历史视图对象 mat_mat_price_history + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatMatPriceHistoryVo { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long historyId; + + /** + * 配料ID + */ + @ExcelProperty(value = "配料ID") + private Long materialId; + + /** + * 本次入库价格 + */ + @ExcelProperty(value = "本次入库价格") + private BigDecimal price; + + /** + * 本次计算后的均价 + */ + @ExcelProperty(value = "本次计算后的均价") + private BigDecimal avgPrice; + + /** + * 本次入库数量 + */ + @ExcelProperty(value = "本次入库数量") + private BigDecimal quantity; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialOutVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialOutVo.java new file mode 100644 index 0000000..0f984bb --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialOutVo.java @@ -0,0 +1,78 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 配料出库视图对象 mat_material_out + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatMaterialOutVo { + + private static final long serialVersionUID = 1L; + + /** + * 出库ID 主键 + */ + @ExcelProperty(value = "出库ID 主键") + private Long outId; + + /** + * 出库单号 唯一 如O20260130001 + */ + @ExcelProperty(value = "出库单号 唯一 如O20260130001") + private String outNo; + + /** + * 配料ID 关联t_material.id + */ + @ExcelProperty(value = "配料ID 关联t_material.id") + private Long materialId; + + /** + * 本次出库数量 不能超过现存库存 + */ + @ExcelProperty(value = "本次出库数量 不能超过现存库存") + private BigDecimal outNum; + + /** + * 出库原因 生产使用/样品/报废等 + */ + @ExcelProperty(value = "出库原因 生产使用/样品/报废等") + private String outReason; + + /** + * 出库操作人 + */ + @ExcelProperty(value = "出库操作人") + private String operator; + + /** + * 实际出库时间 + */ + @ExcelProperty(value = "实际出库时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date outTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialVo.java new file mode 100644 index 0000000..e444269 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatMaterialVo.java @@ -0,0 +1,75 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 配料配件基础信息视图对象 mat_material + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatMaterialVo { + + private static final long serialVersionUID = 1L; + + /** + * 配料ID 主键 + */ + @ExcelProperty(value = "配料ID 主键") + private Long materialId; + + /** + * 配料名称 + */ + @ExcelProperty(value = "配料名称") + private String materialName; + + /** + * 配料规格 + */ + @ExcelProperty(value = "配料规格") + private String spec; + + /** + * 配料型号 + */ + @ExcelProperty(value = "配料型号") + private String model; + + /** + * 厂家 + */ + @ExcelProperty(value = "厂家") + private String factory; + + /** + * 计量单位 个/公斤/米等 + */ + @ExcelProperty(value = "计量单位 个/公斤/米等") + private String unit; + + /** + * 现存库存(已入库) 不能为负 + */ + @ExcelProperty(value = "现存库存", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "已=入库") + private BigDecimal currentStock; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductMaterialRelationVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductMaterialRelationVo.java new file mode 100644 index 0000000..df2d8cb --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductMaterialRelationVo.java @@ -0,0 +1,62 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 产品-配料关联中间视图对象 mat_product_material_relation + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatProductMaterialRelationVo { + + private static final long serialVersionUID = 1L; + + /** + * 关联ID 主键 + */ + @ExcelProperty(value = "关联ID 主键") + private Long relationId; + + /** + * 产品ID 关联t_product.id + */ + @ExcelProperty(value = "产品ID 关联t_product.id") + private Long productId; + + /** + * 配料ID 关联t_material.id + */ + @ExcelProperty(value = "配料ID 关联t_material.id") + private Long materialId; + + /** + * 单产品所需配料数量 默认为1 + */ + @ExcelProperty(value = "单产品所需配料数量 默认为1") + private BigDecimal materialNum; + + /** + * 配料排序 用于前端展示顺序 + */ + @ExcelProperty(value = "配料排序 用于前端展示顺序") + private Long sort; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductVo.java new file mode 100644 index 0000000..ad5b715 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatProductVo.java @@ -0,0 +1,62 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 产品基础信息视图对象 mat_product + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatProductVo { + + private static final long serialVersionUID = 1L; + + /** + * 产品ID 主键 + */ + @ExcelProperty(value = "产品ID 主键") + private Long productId; + + /** + * 产品名称 + */ + @ExcelProperty(value = "产品名称") + private String productName; + + /** + * 产品规格 + */ + @ExcelProperty(value = "产品规格") + private String spec; + + /** + * 产品型号 + */ + @ExcelProperty(value = "产品型号") + private String model; + + /** + * 产品单价 可手动维护 + */ + @ExcelProperty(value = "产品单价 可手动维护") + private BigDecimal unitPrice; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java new file mode 100644 index 0000000..a19b13e --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseInDetailVo.java @@ -0,0 +1,85 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 入库记录视图对象 mat_purchase_in_detail + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatPurchaseInDetailVo { + + private static final long serialVersionUID = 1L; + + /** + * 入库明细ID 主键 + */ + @ExcelProperty(value = "入库明细ID 主键") + private Long detailId; + + /** + * 采购单ID 关联t_purchase.id + */ + @ExcelProperty(value = "采购单ID 关联t_purchase.id") + private Long purchaseId; + + /** + * 配料ID 关联t_material.id 冗余字段 提升查询效率 + */ + @ExcelProperty(value = "配料ID 关联t_material.id 冗余字段 提升查询效率") + private Long materialId; + + /** + * 本次入库数量 + */ + @ExcelProperty(value = "本次入库数量") + private BigDecimal inNum; + + /** + * 本次入库单价(同采购单单价) + */ + @ExcelProperty(value = "本次入库单价", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "同=采购单单价") + private BigDecimal inPrice; + + /** + * 本次入库金额 计算列 + */ + @ExcelProperty(value = "本次入库金额 计算列") + private BigDecimal inAmount; + + /** + * 实际入库时间 + */ + @ExcelProperty(value = "实际入库时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date inTime; + + /** + * 入库操作人 + */ + @ExcelProperty(value = "入库操作人") + private String operator; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseVo.java b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseVo.java new file mode 100644 index 0000000..c78c323 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/domain/vo/MatPurchaseVo.java @@ -0,0 +1,101 @@ +package com.gear.mat.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.gear.common.annotation.ExcelDictFormat; +import com.gear.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 采购单主(管理在途库存)视图对象 mat_purchase + * + * @author ruoyi + * @date 2026-01-30 + */ +@Data +@ExcelIgnoreUnannotated +public class MatPurchaseVo { + + private static final long serialVersionUID = 1L; + + /** + * 采购单ID 主键 + */ + @ExcelProperty(value = "采购单ID 主键") + private Long purchaseId; + + /** + * 采购单号 唯一 如P20260130001 + */ + @ExcelProperty(value = "采购单号 唯一 如P20260130001") + private String purchaseNo; + + /** + * 厂家 + */ + @ExcelProperty(value = "厂家") + private String factory; + + /** + * 配料ID 关联material.id + */ + @ExcelProperty(value = "配料ID 关联material.id") + private Long materialId; + + /** + * 采购计划数量 + */ + @ExcelProperty(value = "采购计划数量") + private BigDecimal planNum; + + /** + * 采购单价(本次录入价格) + */ + @ExcelProperty(value = "采购单价", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "本=次录入价格") + private BigDecimal purchasePrice; + + /** + * 采购截止日期(要求入库日期) + */ + @ExcelProperty(value = "采购截止日期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "要=求入库日期") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date deadline; + + /** + * 采购状态 1-待入(在途) 2-已完成(全部入库) 3-已取消(归零) 4-部分入库 + */ + @ExcelProperty(value = "采购状态 1-待入", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "在=途") + private Integer status; + + /** + * 取消时间 状态为3时赋值 + */ + @ExcelProperty(value = "取消时间 状态为3时赋值") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date cancelTime; + + /** + * 采购人/操作人 + */ + @ExcelProperty(value = "采购人/操作人") + private String operator; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatMatPriceHistoryMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatMatPriceHistoryMapper.java new file mode 100644 index 0000000..fc3e527 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatMatPriceHistoryMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatMatPriceHistory; +import com.gear.mat.domain.vo.MatMatPriceHistoryVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 配料价格/均价变动历史Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatMatPriceHistoryMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialMapper.java new file mode 100644 index 0000000..43c6678 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatMaterial; +import com.gear.mat.domain.vo.MatMaterialVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 配料配件基础信息Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatMaterialMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialOutMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialOutMapper.java new file mode 100644 index 0000000..a9b4aa4 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatMaterialOutMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatMaterialOut; +import com.gear.mat.domain.vo.MatMaterialOutVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 配料出库Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatMaterialOutMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatProductMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatProductMapper.java new file mode 100644 index 0000000..b37d8d8 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatProductMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatProduct; +import com.gear.mat.domain.vo.MatProductVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 产品基础信息Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatProductMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatProductMaterialRelationMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatProductMaterialRelationMapper.java new file mode 100644 index 0000000..4cd85b3 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatProductMaterialRelationMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatProductMaterialRelation; +import com.gear.mat.domain.vo.MatProductMaterialRelationVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 产品-配料关联中间Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatProductMaterialRelationMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java new file mode 100644 index 0000000..f6ba4f3 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseInDetailMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatPurchaseInDetail; +import com.gear.mat.domain.vo.MatPurchaseInDetailVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 入库记录Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatPurchaseInDetailMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseMapper.java b/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseMapper.java new file mode 100644 index 0000000..8a0c2e4 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/mapper/MatPurchaseMapper.java @@ -0,0 +1,15 @@ +package com.gear.mat.mapper; + +import com.gear.mat.domain.MatPurchase; +import com.gear.mat.domain.vo.MatPurchaseVo; +import com.gear.common.core.mapper.BaseMapperPlus; + +/** + * 采购单主(管理在途库存)Mapper接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface MatPurchaseMapper extends BaseMapperPlus { + +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatMatPriceHistoryService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatMatPriceHistoryService.java new file mode 100644 index 0000000..302c3c1 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatMatPriceHistoryService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatMatPriceHistory; +import com.gear.mat.domain.vo.MatMatPriceHistoryVo; +import com.gear.mat.domain.bo.MatMatPriceHistoryBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 配料价格/均价变动历史Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatMatPriceHistoryService { + + /** + * 查询配料价格/均价变动历史 + */ + MatMatPriceHistoryVo queryById(Long historyId); + + /** + * 查询配料价格/均价变动历史列表 + */ + TableDataInfo queryPageList(MatMatPriceHistoryBo bo, PageQuery pageQuery); + + /** + * 查询配料价格/均价变动历史列表 + */ + List queryList(MatMatPriceHistoryBo bo); + + /** + * 新增配料价格/均价变动历史 + */ + Boolean insertByBo(MatMatPriceHistoryBo bo); + + /** + * 修改配料价格/均价变动历史 + */ + Boolean updateByBo(MatMatPriceHistoryBo bo); + + /** + * 校验并批量删除配料价格/均价变动历史信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatMaterialOutService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatMaterialOutService.java new file mode 100644 index 0000000..24f31a2 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatMaterialOutService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatMaterialOut; +import com.gear.mat.domain.vo.MatMaterialOutVo; +import com.gear.mat.domain.bo.MatMaterialOutBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 配料出库Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatMaterialOutService { + + /** + * 查询配料出库 + */ + MatMaterialOutVo queryById(Long outId); + + /** + * 查询配料出库列表 + */ + TableDataInfo queryPageList(MatMaterialOutBo bo, PageQuery pageQuery); + + /** + * 查询配料出库列表 + */ + List queryList(MatMaterialOutBo bo); + + /** + * 新增配料出库 + */ + Boolean insertByBo(MatMaterialOutBo bo); + + /** + * 修改配料出库 + */ + Boolean updateByBo(MatMaterialOutBo bo); + + /** + * 校验并批量删除配料出库信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatMaterialService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatMaterialService.java new file mode 100644 index 0000000..1417fdc --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatMaterialService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatMaterial; +import com.gear.mat.domain.vo.MatMaterialVo; +import com.gear.mat.domain.bo.MatMaterialBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 配料配件基础信息Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatMaterialService { + + /** + * 查询配料配件基础信息 + */ + MatMaterialVo queryById(Long materialId); + + /** + * 查询配料配件基础信息列表 + */ + TableDataInfo queryPageList(MatMaterialBo bo, PageQuery pageQuery); + + /** + * 查询配料配件基础信息列表 + */ + List queryList(MatMaterialBo bo); + + /** + * 新增配料配件基础信息 + */ + Boolean insertByBo(MatMaterialBo bo); + + /** + * 修改配料配件基础信息 + */ + Boolean updateByBo(MatMaterialBo bo); + + /** + * 校验并批量删除配料配件基础信息信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatProductMaterialRelationService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatProductMaterialRelationService.java new file mode 100644 index 0000000..7ea589f --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatProductMaterialRelationService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatProductMaterialRelation; +import com.gear.mat.domain.vo.MatProductMaterialRelationVo; +import com.gear.mat.domain.bo.MatProductMaterialRelationBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 产品-配料关联中间Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatProductMaterialRelationService { + + /** + * 查询产品-配料关联中间 + */ + MatProductMaterialRelationVo queryById(Long relationId); + + /** + * 查询产品-配料关联中间列表 + */ + TableDataInfo queryPageList(MatProductMaterialRelationBo bo, PageQuery pageQuery); + + /** + * 查询产品-配料关联中间列表 + */ + List queryList(MatProductMaterialRelationBo bo); + + /** + * 新增产品-配料关联中间 + */ + Boolean insertByBo(MatProductMaterialRelationBo bo); + + /** + * 修改产品-配料关联中间 + */ + Boolean updateByBo(MatProductMaterialRelationBo bo); + + /** + * 校验并批量删除产品-配料关联中间信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatProductService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatProductService.java new file mode 100644 index 0000000..dcc7df4 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatProductService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatProduct; +import com.gear.mat.domain.vo.MatProductVo; +import com.gear.mat.domain.bo.MatProductBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 产品基础信息Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatProductService { + + /** + * 查询产品基础信息 + */ + MatProductVo queryById(Long productId); + + /** + * 查询产品基础信息列表 + */ + TableDataInfo queryPageList(MatProductBo bo, PageQuery pageQuery); + + /** + * 查询产品基础信息列表 + */ + List queryList(MatProductBo bo); + + /** + * 新增产品基础信息 + */ + Boolean insertByBo(MatProductBo bo); + + /** + * 修改产品基础信息 + */ + Boolean updateByBo(MatProductBo bo); + + /** + * 校验并批量删除产品基础信息信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseInDetailService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseInDetailService.java new file mode 100644 index 0000000..6679816 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseInDetailService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatPurchaseInDetail; +import com.gear.mat.domain.vo.MatPurchaseInDetailVo; +import com.gear.mat.domain.bo.MatPurchaseInDetailBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 入库记录Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatPurchaseInDetailService { + + /** + * 查询入库记录 + */ + MatPurchaseInDetailVo queryById(Long detailId); + + /** + * 查询入库记录列表 + */ + TableDataInfo queryPageList(MatPurchaseInDetailBo bo, PageQuery pageQuery); + + /** + * 查询入库记录列表 + */ + List queryList(MatPurchaseInDetailBo bo); + + /** + * 新增入库记录 + */ + Boolean insertByBo(MatPurchaseInDetailBo bo); + + /** + * 修改入库记录 + */ + Boolean updateByBo(MatPurchaseInDetailBo bo); + + /** + * 校验并批量删除入库记录信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseService.java b/gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseService.java new file mode 100644 index 0000000..717122f --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/IMatPurchaseService.java @@ -0,0 +1,49 @@ +package com.gear.mat.service; + +import com.gear.mat.domain.MatPurchase; +import com.gear.mat.domain.vo.MatPurchaseVo; +import com.gear.mat.domain.bo.MatPurchaseBo; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 采购单主(管理在途库存)Service接口 + * + * @author ruoyi + * @date 2026-01-30 + */ +public interface IMatPurchaseService { + + /** + * 查询采购单主(管理在途库存) + */ + MatPurchaseVo queryById(Long purchaseId); + + /** + * 查询采购单主(管理在途库存)列表 + */ + TableDataInfo queryPageList(MatPurchaseBo bo, PageQuery pageQuery); + + /** + * 查询采购单主(管理在途库存)列表 + */ + List queryList(MatPurchaseBo bo); + + /** + * 新增采购单主(管理在途库存) + */ + Boolean insertByBo(MatPurchaseBo bo); + + /** + * 修改采购单主(管理在途库存) + */ + Boolean updateByBo(MatPurchaseBo bo); + + /** + * 校验并批量删除采购单主(管理在途库存)信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatMatPriceHistoryServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatMatPriceHistoryServiceImpl.java new file mode 100644 index 0000000..392b1b1 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatMatPriceHistoryServiceImpl.java @@ -0,0 +1,112 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatMatPriceHistoryBo; +import com.gear.mat.domain.vo.MatMatPriceHistoryVo; +import com.gear.mat.domain.MatMatPriceHistory; +import com.gear.mat.mapper.MatMatPriceHistoryMapper; +import com.gear.mat.service.IMatMatPriceHistoryService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配料价格/均价变动历史Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatMatPriceHistoryServiceImpl implements IMatMatPriceHistoryService { + + private final MatMatPriceHistoryMapper baseMapper; + + /** + * 查询配料价格/均价变动历史 + */ + @Override + public MatMatPriceHistoryVo queryById(Long historyId){ + return baseMapper.selectVoById(historyId); + } + + /** + * 查询配料价格/均价变动历史列表 + */ + @Override + public TableDataInfo queryPageList(MatMatPriceHistoryBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询配料价格/均价变动历史列表 + */ + @Override + public List queryList(MatMatPriceHistoryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatMatPriceHistoryBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getMaterialId() != null, MatMatPriceHistory::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getPrice() != null, MatMatPriceHistory::getPrice, bo.getPrice()); + lqw.eq(bo.getAvgPrice() != null, MatMatPriceHistory::getAvgPrice, bo.getAvgPrice()); + lqw.eq(bo.getQuantity() != null, MatMatPriceHistory::getQuantity, bo.getQuantity()); + return lqw; + } + + /** + * 新增配料价格/均价变动历史 + */ + @Override + public Boolean insertByBo(MatMatPriceHistoryBo bo) { + MatMatPriceHistory add = BeanUtil.toBean(bo, MatMatPriceHistory.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setHistoryId(add.getHistoryId()); + } + return flag; + } + + /** + * 修改配料价格/均价变动历史 + */ + @Override + public Boolean updateByBo(MatMatPriceHistoryBo bo) { + MatMatPriceHistory update = BeanUtil.toBean(bo, MatMatPriceHistory.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatMatPriceHistory entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除配料价格/均价变动历史 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialOutServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialOutServiceImpl.java new file mode 100644 index 0000000..ab70220 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialOutServiceImpl.java @@ -0,0 +1,114 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatMaterialOutBo; +import com.gear.mat.domain.vo.MatMaterialOutVo; +import com.gear.mat.domain.MatMaterialOut; +import com.gear.mat.mapper.MatMaterialOutMapper; +import com.gear.mat.service.IMatMaterialOutService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配料出库Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatMaterialOutServiceImpl implements IMatMaterialOutService { + + private final MatMaterialOutMapper baseMapper; + + /** + * 查询配料出库 + */ + @Override + public MatMaterialOutVo queryById(Long outId){ + return baseMapper.selectVoById(outId); + } + + /** + * 查询配料出库列表 + */ + @Override + public TableDataInfo queryPageList(MatMaterialOutBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询配料出库列表 + */ + @Override + public List queryList(MatMaterialOutBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatMaterialOutBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getOutNo()), MatMaterialOut::getOutNo, bo.getOutNo()); + lqw.eq(bo.getMaterialId() != null, MatMaterialOut::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getOutNum() != null, MatMaterialOut::getOutNum, bo.getOutNum()); + lqw.eq(StringUtils.isNotBlank(bo.getOutReason()), MatMaterialOut::getOutReason, bo.getOutReason()); + lqw.eq(StringUtils.isNotBlank(bo.getOperator()), MatMaterialOut::getOperator, bo.getOperator()); + lqw.eq(bo.getOutTime() != null, MatMaterialOut::getOutTime, bo.getOutTime()); + return lqw; + } + + /** + * 新增配料出库 + */ + @Override + public Boolean insertByBo(MatMaterialOutBo bo) { + MatMaterialOut add = BeanUtil.toBean(bo, MatMaterialOut.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setOutId(add.getOutId()); + } + return flag; + } + + /** + * 修改配料出库 + */ + @Override + public Boolean updateByBo(MatMaterialOutBo bo) { + MatMaterialOut update = BeanUtil.toBean(bo, MatMaterialOut.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatMaterialOut entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除配料出库 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialServiceImpl.java new file mode 100644 index 0000000..225f5a7 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatMaterialServiceImpl.java @@ -0,0 +1,114 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatMaterialBo; +import com.gear.mat.domain.vo.MatMaterialVo; +import com.gear.mat.domain.MatMaterial; +import com.gear.mat.mapper.MatMaterialMapper; +import com.gear.mat.service.IMatMaterialService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 配料配件基础信息Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatMaterialServiceImpl implements IMatMaterialService { + + private final MatMaterialMapper baseMapper; + + /** + * 查询配料配件基础信息 + */ + @Override + public MatMaterialVo queryById(Long materialId){ + return baseMapper.selectVoById(materialId); + } + + /** + * 查询配料配件基础信息列表 + */ + @Override + public TableDataInfo queryPageList(MatMaterialBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询配料配件基础信息列表 + */ + @Override + public List queryList(MatMaterialBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatMaterialBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getMaterialName()), MatMaterial::getMaterialName, bo.getMaterialName()); + lqw.eq(StringUtils.isNotBlank(bo.getSpec()), MatMaterial::getSpec, bo.getSpec()); + lqw.eq(StringUtils.isNotBlank(bo.getModel()), MatMaterial::getModel, bo.getModel()); + lqw.eq(StringUtils.isNotBlank(bo.getFactory()), MatMaterial::getFactory, bo.getFactory()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), MatMaterial::getUnit, bo.getUnit()); + lqw.eq(bo.getCurrentStock() != null, MatMaterial::getCurrentStock, bo.getCurrentStock()); + return lqw; + } + + /** + * 新增配料配件基础信息 + */ + @Override + public Boolean insertByBo(MatMaterialBo bo) { + MatMaterial add = BeanUtil.toBean(bo, MatMaterial.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMaterialId(add.getMaterialId()); + } + return flag; + } + + /** + * 修改配料配件基础信息 + */ + @Override + public Boolean updateByBo(MatMaterialBo bo) { + MatMaterial update = BeanUtil.toBean(bo, MatMaterial.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatMaterial entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除配料配件基础信息 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatProductMaterialRelationServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatProductMaterialRelationServiceImpl.java new file mode 100644 index 0000000..7100e70 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatProductMaterialRelationServiceImpl.java @@ -0,0 +1,112 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatProductMaterialRelationBo; +import com.gear.mat.domain.vo.MatProductMaterialRelationVo; +import com.gear.mat.domain.MatProductMaterialRelation; +import com.gear.mat.mapper.MatProductMaterialRelationMapper; +import com.gear.mat.service.IMatProductMaterialRelationService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 产品-配料关联中间Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatProductMaterialRelationServiceImpl implements IMatProductMaterialRelationService { + + private final MatProductMaterialRelationMapper baseMapper; + + /** + * 查询产品-配料关联中间 + */ + @Override + public MatProductMaterialRelationVo queryById(Long relationId){ + return baseMapper.selectVoById(relationId); + } + + /** + * 查询产品-配料关联中间列表 + */ + @Override + public TableDataInfo queryPageList(MatProductMaterialRelationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询产品-配料关联中间列表 + */ + @Override + public List queryList(MatProductMaterialRelationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatProductMaterialRelationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getProductId() != null, MatProductMaterialRelation::getProductId, bo.getProductId()); + lqw.eq(bo.getMaterialId() != null, MatProductMaterialRelation::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getMaterialNum() != null, MatProductMaterialRelation::getMaterialNum, bo.getMaterialNum()); + lqw.eq(bo.getSort() != null, MatProductMaterialRelation::getSort, bo.getSort()); + return lqw; + } + + /** + * 新增产品-配料关联中间 + */ + @Override + public Boolean insertByBo(MatProductMaterialRelationBo bo) { + MatProductMaterialRelation add = BeanUtil.toBean(bo, MatProductMaterialRelation.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRelationId(add.getRelationId()); + } + return flag; + } + + /** + * 修改产品-配料关联中间 + */ + @Override + public Boolean updateByBo(MatProductMaterialRelationBo bo) { + MatProductMaterialRelation update = BeanUtil.toBean(bo, MatProductMaterialRelation.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatProductMaterialRelation entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除产品-配料关联中间 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatProductServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatProductServiceImpl.java new file mode 100644 index 0000000..8d4bd42 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatProductServiceImpl.java @@ -0,0 +1,112 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatProductBo; +import com.gear.mat.domain.vo.MatProductVo; +import com.gear.mat.domain.MatProduct; +import com.gear.mat.mapper.MatProductMapper; +import com.gear.mat.service.IMatProductService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 产品基础信息Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatProductServiceImpl implements IMatProductService { + + private final MatProductMapper baseMapper; + + /** + * 查询产品基础信息 + */ + @Override + public MatProductVo queryById(Long productId){ + return baseMapper.selectVoById(productId); + } + + /** + * 查询产品基础信息列表 + */ + @Override + public TableDataInfo queryPageList(MatProductBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询产品基础信息列表 + */ + @Override + public List queryList(MatProductBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatProductBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getProductName()), MatProduct::getProductName, bo.getProductName()); + lqw.eq(StringUtils.isNotBlank(bo.getSpec()), MatProduct::getSpec, bo.getSpec()); + lqw.eq(StringUtils.isNotBlank(bo.getModel()), MatProduct::getModel, bo.getModel()); + lqw.eq(bo.getUnitPrice() != null, MatProduct::getUnitPrice, bo.getUnitPrice()); + return lqw; + } + + /** + * 新增产品基础信息 + */ + @Override + public Boolean insertByBo(MatProductBo bo) { + MatProduct add = BeanUtil.toBean(bo, MatProduct.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProductId(add.getProductId()); + } + return flag; + } + + /** + * 修改产品基础信息 + */ + @Override + public Boolean updateByBo(MatProductBo bo) { + MatProduct update = BeanUtil.toBean(bo, MatProduct.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatProduct entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除产品基础信息 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java new file mode 100644 index 0000000..648f80d --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseInDetailServiceImpl.java @@ -0,0 +1,115 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatPurchaseInDetailBo; +import com.gear.mat.domain.vo.MatPurchaseInDetailVo; +import com.gear.mat.domain.MatPurchaseInDetail; +import com.gear.mat.mapper.MatPurchaseInDetailMapper; +import com.gear.mat.service.IMatPurchaseInDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 入库记录Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatPurchaseInDetailServiceImpl implements IMatPurchaseInDetailService { + + private final MatPurchaseInDetailMapper baseMapper; + + /** + * 查询入库记录 + */ + @Override + public MatPurchaseInDetailVo queryById(Long detailId){ + return baseMapper.selectVoById(detailId); + } + + /** + * 查询入库记录列表 + */ + @Override + public TableDataInfo queryPageList(MatPurchaseInDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询入库记录列表 + */ + @Override + public List queryList(MatPurchaseInDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatPurchaseInDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getPurchaseId() != null, MatPurchaseInDetail::getPurchaseId, bo.getPurchaseId()); + lqw.eq(bo.getMaterialId() != null, MatPurchaseInDetail::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getInNum() != null, MatPurchaseInDetail::getInNum, bo.getInNum()); + lqw.eq(bo.getInPrice() != null, MatPurchaseInDetail::getInPrice, bo.getInPrice()); + lqw.eq(bo.getInAmount() != null, MatPurchaseInDetail::getInAmount, bo.getInAmount()); + lqw.eq(bo.getInTime() != null, MatPurchaseInDetail::getInTime, bo.getInTime()); + lqw.eq(StringUtils.isNotBlank(bo.getOperator()), MatPurchaseInDetail::getOperator, bo.getOperator()); + return lqw; + } + + /** + * 新增入库记录 + */ + @Override + public Boolean insertByBo(MatPurchaseInDetailBo bo) { + MatPurchaseInDetail add = BeanUtil.toBean(bo, MatPurchaseInDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDetailId(add.getDetailId()); + } + return flag; + } + + /** + * 修改入库记录 + */ + @Override + public Boolean updateByBo(MatPurchaseInDetailBo bo) { + MatPurchaseInDetail update = BeanUtil.toBean(bo, MatPurchaseInDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatPurchaseInDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除入库记录 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseServiceImpl.java b/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseServiceImpl.java new file mode 100644 index 0000000..461a115 --- /dev/null +++ b/gear-mat/src/main/java/com/gear/mat/service/impl/MatPurchaseServiceImpl.java @@ -0,0 +1,117 @@ +package com.gear.mat.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.gear.common.utils.StringUtils; +import com.gear.common.core.page.TableDataInfo; +import com.gear.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.gear.mat.domain.bo.MatPurchaseBo; +import com.gear.mat.domain.vo.MatPurchaseVo; +import com.gear.mat.domain.MatPurchase; +import com.gear.mat.mapper.MatPurchaseMapper; +import com.gear.mat.service.IMatPurchaseService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购单主(管理在途库存)Service业务层处理 + * + * @author ruoyi + * @date 2026-01-30 + */ +@RequiredArgsConstructor +@Service +public class MatPurchaseServiceImpl implements IMatPurchaseService { + + private final MatPurchaseMapper baseMapper; + + /** + * 查询采购单主(管理在途库存) + */ + @Override + public MatPurchaseVo queryById(Long purchaseId){ + return baseMapper.selectVoById(purchaseId); + } + + /** + * 查询采购单主(管理在途库存)列表 + */ + @Override + public TableDataInfo queryPageList(MatPurchaseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询采购单主(管理在途库存)列表 + */ + @Override + public List queryList(MatPurchaseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MatPurchaseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getPurchaseNo()), MatPurchase::getPurchaseNo, bo.getPurchaseNo()); + lqw.eq(StringUtils.isNotBlank(bo.getFactory()), MatPurchase::getFactory, bo.getFactory()); + lqw.eq(bo.getMaterialId() != null, MatPurchase::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getPlanNum() != null, MatPurchase::getPlanNum, bo.getPlanNum()); + lqw.eq(bo.getPurchasePrice() != null, MatPurchase::getPurchasePrice, bo.getPurchasePrice()); + lqw.eq(bo.getDeadline() != null, MatPurchase::getDeadline, bo.getDeadline()); + lqw.eq(bo.getStatus() != null, MatPurchase::getStatus, bo.getStatus()); + lqw.eq(bo.getCancelTime() != null, MatPurchase::getCancelTime, bo.getCancelTime()); + lqw.eq(StringUtils.isNotBlank(bo.getOperator()), MatPurchase::getOperator, bo.getOperator()); + return lqw; + } + + /** + * 新增采购单主(管理在途库存) + */ + @Override + public Boolean insertByBo(MatPurchaseBo bo) { + MatPurchase add = BeanUtil.toBean(bo, MatPurchase.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPurchaseId(add.getPurchaseId()); + } + return flag; + } + + /** + * 修改采购单主(管理在途库存) + */ + @Override + public Boolean updateByBo(MatPurchaseBo bo) { + MatPurchase update = BeanUtil.toBean(bo, MatPurchase.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MatPurchase entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除采购单主(管理在途库存) + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/gear-mat/src/main/resources/mapper/MatMatPriceHistoryMapper.xml b/gear-mat/src/main/resources/mapper/MatMatPriceHistoryMapper.xml new file mode 100644 index 0000000..d5a6d9e --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatMatPriceHistoryMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mat/src/main/resources/mapper/MatMaterialMapper.xml b/gear-mat/src/main/resources/mapper/MatMaterialMapper.xml new file mode 100644 index 0000000..a6de0e0 --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatMaterialMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mat/src/main/resources/mapper/MatMaterialOutMapper.xml b/gear-mat/src/main/resources/mapper/MatMaterialOutMapper.xml new file mode 100644 index 0000000..765b35e --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatMaterialOutMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mat/src/main/resources/mapper/MatProductMapper.xml b/gear-mat/src/main/resources/mapper/MatProductMapper.xml new file mode 100644 index 0000000..d5e4bbb --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatProductMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mat/src/main/resources/mapper/MatProductMaterialRelationMapper.xml b/gear-mat/src/main/resources/mapper/MatProductMaterialRelationMapper.xml new file mode 100644 index 0000000..e351432 --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatProductMaterialRelationMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml b/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml new file mode 100644 index 0000000..6b46091 --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatPurchaseInDetailMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mat/src/main/resources/mapper/MatPurchaseMapper.xml b/gear-mat/src/main/resources/mapper/MatPurchaseMapper.xml new file mode 100644 index 0000000..50aa3aa --- /dev/null +++ b/gear-mat/src/main/resources/mapper/MatPurchaseMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gear-mes/src/main/resources/mapper/is b/gear-mes/src/main/resources/mapper/is deleted file mode 100644 index e69de29..0000000 diff --git a/pom.xml b/pom.xml index 53ba953..873adbc 100644 --- a/pom.xml +++ b/pom.xml @@ -381,6 +381,11 @@ gear-mes ${gear.version} + + com.gear + gear-mat + ${gear.version} + @@ -398,6 +403,7 @@ gear-system gear-oa gear-mes + gear-mat pom