From a6ce138bacdf22445afbcf223c087f826cd1fafd Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 29 Sep 2025 16:45:46 +0800 Subject: [PATCH] =?UTF-8?q?1.0.4=20add=E8=AE=A1=E9=87=8F=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E3=80=81=E7=89=A9=E6=96=99=E3=80=81=E5=85=B3=E8=81=94=E9=94=80?= =?UTF-8?q?=E5=94=AE=E7=89=A9=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseMaterielInfoController.java | 116 ++++++++++++++ .../BaseRelationMaterielController.java | 116 ++++++++++++++ .../controller/BaseUnitInfoController.java | 116 ++++++++++++++ .../oa/base/domain/BaseMaterielInfo.java | 96 ++++++++++++ .../oa/base/domain/BaseRelationMateriel.java | 78 ++++++++++ .../dromara/oa/base/domain/BaseUnitInfo.java | 61 ++++++++ .../oa/base/domain/bo/BaseMaterielInfoBo.java | 89 +++++++++++ .../domain/bo/BaseRelationMaterielBo.java | 69 +++++++++ .../oa/base/domain/bo/BaseUnitInfoBo.java | 55 +++++++ .../oa/base/domain/vo/BaseMaterielInfoVo.java | 111 ++++++++++++++ .../domain/vo/BaseRelationMaterielVo.java | 86 +++++++++++ .../oa/base/domain/vo/BaseUnitInfoVo.java | 69 +++++++++ .../base/mapper/BaseMaterielInfoMapper.java | 38 +++++ .../mapper/BaseRelationMaterielMapper.java | 37 +++++ .../oa/base/mapper/BaseUnitInfoMapper.java | 38 +++++ .../service/IBaseMaterielInfoService.java | 69 +++++++++ .../service/IBaseRelationMaterielService.java | 69 +++++++++ .../oa/base/service/IBaseUnitInfoService.java | 69 +++++++++ .../impl/BaseMaterielInfoServiceImpl.java | 143 +++++++++++++++++ .../impl/BaseRelationMaterielServiceImpl.java | 144 ++++++++++++++++++ .../service/impl/BaseUnitInfoServiceImpl.java | 134 ++++++++++++++++ .../mapper/oa/base/BaseMaterielInfoMapper.xml | 33 ++++ .../oa/base/BaseRelationMaterielMapper.xml | 14 ++ .../mapper/oa/base/BaseUnitInfoMapper.xml | 27 ++++ 24 files changed, 1877 insertions(+) create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseMaterielInfoController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseRelationMaterielController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseUnitInfoController.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseMaterielInfo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseRelationMateriel.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseUnitInfo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseMaterielInfoBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseRelationMaterielBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseUnitInfoBo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseMaterielInfoVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseRelationMaterielVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseUnitInfoVo.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseMaterielInfoMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseRelationMaterielMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseUnitInfoMapper.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseMaterielInfoService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseRelationMaterielService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseUnitInfoService.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseMaterielInfoServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseRelationMaterielServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseUnitInfoServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseMaterielInfoMapper.xml create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseRelationMaterielMapper.xml create mode 100644 ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseUnitInfoMapper.xml diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseMaterielInfoController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseMaterielInfoController.java new file mode 100644 index 00000000..0e314ed2 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseMaterielInfoController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.base.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; +import org.dromara.oa.base.domain.bo.BaseMaterielInfoBo; +import org.dromara.oa.base.service.IBaseMaterielInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * SAP物料信息 + * 前端访问路由地址为:/oa/base/materielInfo + * + * @author Yinq + * @date 2025-09-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/base/materielInfo") +public class BaseMaterielInfoController extends BaseController { + + private final IBaseMaterielInfoService baseMaterielInfoService; + + /** + * 查询SAP物料信息列表 + */ + @SaCheckPermission("oa/base:materielInfo:list") + @GetMapping("/list") + public TableDataInfo list(BaseMaterielInfoBo bo, PageQuery pageQuery) { + return baseMaterielInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出SAP物料信息列表 + */ + @SaCheckPermission("oa/base:materielInfo:export") + @Log(title = "SAP物料信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseMaterielInfoBo bo, HttpServletResponse response) { + List list = baseMaterielInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "SAP物料信息", BaseMaterielInfoVo.class, response); + } + + /** + * 获取SAP物料信息详细信息 + * + * @param materielId 主键 + */ + @SaCheckPermission("oa/base:materielInfo:query") + @GetMapping("/{materielId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("materielId") Long materielId) { + return R.ok(baseMaterielInfoService.queryById(materielId)); + } + + /** + * 新增SAP物料信息 + */ + @SaCheckPermission("oa/base:materielInfo:add") + @Log(title = "SAP物料信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseMaterielInfoBo bo) { + return toAjax(baseMaterielInfoService.insertByBo(bo)); + } + + /** + * 修改SAP物料信息 + */ + @SaCheckPermission("oa/base:materielInfo:edit") + @Log(title = "SAP物料信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseMaterielInfoBo bo) { + return toAjax(baseMaterielInfoService.updateByBo(bo)); + } + + /** + * 删除SAP物料信息 + * + * @param materielIds 主键串 + */ + @SaCheckPermission("oa/base:materielInfo:remove") + @Log(title = "SAP物料信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{materielIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("materielIds") Long[] materielIds) { + return toAjax(baseMaterielInfoService.deleteWithValidByIds(List.of(materielIds), true)); + } + + /** + * 下拉框查询SAP物料信息列表 + */ + @GetMapping("/getBaseMaterielInfoList") + public R> getBaseMaterielInfoList(BaseMaterielInfoBo bo) { + List list = baseMaterielInfoService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseRelationMaterielController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseRelationMaterielController.java new file mode 100644 index 00000000..d40effa0 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseRelationMaterielController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.base.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.base.domain.vo.BaseRelationMaterielVo; +import org.dromara.oa.base.domain.bo.BaseRelationMaterielBo; +import org.dromara.oa.base.service.IBaseRelationMaterielService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 关联销售物料信息 + * 前端访问路由地址为:/oa/base/relationMateriel + * + * @author Yinq + * @date 2025-09-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/base/relationMateriel") +public class BaseRelationMaterielController extends BaseController { + + private final IBaseRelationMaterielService baseRelationMaterielService; + + /** + * 查询关联销售物料信息列表 + */ + @SaCheckPermission("oa/base:relationMateriel:list") + @GetMapping("/list") + public TableDataInfo list(BaseRelationMaterielBo bo, PageQuery pageQuery) { + return baseRelationMaterielService.queryPageList(bo, pageQuery); + } + + /** + * 导出关联销售物料信息列表 + */ + @SaCheckPermission("oa/base:relationMateriel:export") + @Log(title = "关联销售物料信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseRelationMaterielBo bo, HttpServletResponse response) { + List list = baseRelationMaterielService.queryList(bo); + ExcelUtil.exportExcel(list, "关联销售物料信息", BaseRelationMaterielVo.class, response); + } + + /** + * 获取关联销售物料信息详细信息 + * + * @param relationMaterielId 主键 + */ + @SaCheckPermission("oa/base:relationMateriel:query") + @GetMapping("/{relationMaterielId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("relationMaterielId") Long relationMaterielId) { + return R.ok(baseRelationMaterielService.queryById(relationMaterielId)); + } + + /** + * 新增关联销售物料信息 + */ + @SaCheckPermission("oa/base:relationMateriel:add") + @Log(title = "关联销售物料信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseRelationMaterielBo bo) { + return toAjax(baseRelationMaterielService.insertByBo(bo)); + } + + /** + * 修改关联销售物料信息 + */ + @SaCheckPermission("oa/base:relationMateriel:edit") + @Log(title = "关联销售物料信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseRelationMaterielBo bo) { + return toAjax(baseRelationMaterielService.updateByBo(bo)); + } + + /** + * 删除关联销售物料信息 + * + * @param relationMaterielIds 主键串 + */ + @SaCheckPermission("oa/base:relationMateriel:remove") + @Log(title = "关联销售物料信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{relationMaterielIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("relationMaterielIds") Long[] relationMaterielIds) { + return toAjax(baseRelationMaterielService.deleteWithValidByIds(List.of(relationMaterielIds), true)); + } + + /** + * 下拉框查询关联销售物料信息列表 + */ + @GetMapping("/getBaseRelationMaterielList") + public R> getBaseRelationMaterielList(BaseRelationMaterielBo bo) { + List list = baseRelationMaterielService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseUnitInfoController.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseUnitInfoController.java new file mode 100644 index 00000000..adec048f --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/controller/BaseUnitInfoController.java @@ -0,0 +1,116 @@ +package org.dromara.oa.base.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.oa.base.domain.vo.BaseUnitInfoVo; +import org.dromara.oa.base.domain.bo.BaseUnitInfoBo; +import org.dromara.oa.base.service.IBaseUnitInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 计量单位信息 + * 前端访问路由地址为:/oa/base/unitInfo + * + * @author Yinq + * @date 2025-09-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/base/unitInfo") +public class BaseUnitInfoController extends BaseController { + + private final IBaseUnitInfoService baseUnitInfoService; + + /** + * 查询计量单位信息列表 + */ + @SaCheckPermission("oa/base:unitInfo:list") + @GetMapping("/list") + public TableDataInfo list(BaseUnitInfoBo bo, PageQuery pageQuery) { + return baseUnitInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出计量单位信息列表 + */ + @SaCheckPermission("oa/base:unitInfo:export") + @Log(title = "计量单位信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseUnitInfoBo bo, HttpServletResponse response) { + List list = baseUnitInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "计量单位信息", BaseUnitInfoVo.class, response); + } + + /** + * 获取计量单位信息详细信息 + * + * @param unitId 主键 + */ + @SaCheckPermission("oa/base:unitInfo:query") + @GetMapping("/{unitId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("unitId") Long unitId) { + return R.ok(baseUnitInfoService.queryById(unitId)); + } + + /** + * 新增计量单位信息 + */ + @SaCheckPermission("oa/base:unitInfo:add") + @Log(title = "计量单位信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseUnitInfoBo bo) { + return toAjax(baseUnitInfoService.insertByBo(bo)); + } + + /** + * 修改计量单位信息 + */ + @SaCheckPermission("oa/base:unitInfo:edit") + @Log(title = "计量单位信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseUnitInfoBo bo) { + return toAjax(baseUnitInfoService.updateByBo(bo)); + } + + /** + * 删除计量单位信息 + * + * @param unitIds 主键串 + */ + @SaCheckPermission("oa/base:unitInfo:remove") + @Log(title = "计量单位信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{unitIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("unitIds") Long[] unitIds) { + return toAjax(baseUnitInfoService.deleteWithValidByIds(List.of(unitIds), true)); + } + + /** + * 下拉框查询计量单位信息列表 + */ + @GetMapping("/getBaseUnitInfoList") + public R> getBaseUnitInfoList(BaseUnitInfoBo bo) { + List list = baseUnitInfoService.queryList(bo); + return R.ok(list); + } + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseMaterielInfo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseMaterielInfo.java new file mode 100644 index 00000000..869c9cae --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseMaterielInfo.java @@ -0,0 +1,96 @@ +package org.dromara.oa.base.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * SAP物料信息对象 base_materiel_info + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("base_materiel_info") +public class BaseMaterielInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 物料ID + */ + @TableId(value = "materiel_id", type = IdType.AUTO) + private Long materielId; + + /** + * SAP物料编码 + */ + private String materielCode; + + /** + * SAP物料名称 + */ + private String materielName; + + /** + * 物料品牌 + */ + private String materielBrand; + + /** + * 物料型号 + */ + private String materielModel; + + /** + * 单位ID + */ + private Long unitId; + + /** + * 物料参数 + */ + private String materialParameter; + + /** + * 采购单价(元) + */ + private Long purchasePrice; + + /** + * 售前对外单价(元) + */ + private Long foreignPrice; + + /** + * 备货期(天) + */ + private Long stockingPeriod; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + /** + * 物料单位 + */ + @TableField(exist = false) + private String unitName; +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseRelationMateriel.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseRelationMateriel.java new file mode 100644 index 00000000..492259c7 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseRelationMateriel.java @@ -0,0 +1,78 @@ +package org.dromara.oa.base.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 关联销售物料信息对象 base_relation_materiel + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("base_relation_materiel") +public class BaseRelationMateriel extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 关联物料ID + */ + @TableId(value = "relation_materiel_id", type = IdType.AUTO) + private Long relationMaterielId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 客户ID + */ + private Long customerId; + + /** + * 销售物料名称 + */ + private String saleMaterielName; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + + /** + * SAP物料编码 + */ + @TableField(exist = false) + private String materielCode; + + /** + * SAP物料名称 + */ + @TableField(exist = false) + private String materielName; + + /** + * 客户名称 + */ + @TableField(exist = false) + private String customerName; +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseUnitInfo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseUnitInfo.java new file mode 100644 index 00000000..53fd9c5d --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/BaseUnitInfo.java @@ -0,0 +1,61 @@ +package org.dromara.oa.base.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 计量单位信息对象 base_unit_info + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("base_unit_info") +public class BaseUnitInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 单位ID + */ + @TableId(value = "unit_id", type = IdType.AUTO) + private Long unitId; + + /** + * 计量单位编号 + */ + private String unitCode; + + /** + * 计量单位名称 + */ + private String unitName; + + /** + * 单位类型(1长度 2质量 3时间 4面积 5体积) + */ + private String unitType; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic + private String delFlag; + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseMaterielInfoBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseMaterielInfoBo.java new file mode 100644 index 00000000..d4fa6fb0 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseMaterielInfoBo.java @@ -0,0 +1,89 @@ +package org.dromara.oa.base.domain.bo; + +import org.dromara.oa.base.domain.BaseMaterielInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * SAP物料信息业务对象 base_materiel_info + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseMaterielInfo.class, reverseConvertGenerate = false) +public class BaseMaterielInfoBo extends BaseEntity { + + /** + * 物料ID + */ + @NotNull(message = "物料ID不能为空", groups = { EditGroup.class }) + private Long materielId; + + /** + * SAP物料编码 + */ + private String materielCode; + + /** + * SAP物料名称 + */ + private String materielName; + + /** + * 物料品牌 + */ + private String materielBrand; + + /** + * 物料型号 + */ + private String materielModel; + + /** + * 单位ID + */ + private Long unitId; + + /** + * 物料参数 + */ + private String materialParameter; + + /** + * 采购单价(元) + */ + private Long purchasePrice; + + /** + * 售前对外单价(元) + */ + private Long foreignPrice; + + /** + * 备货期(天) + */ + private Long stockingPeriod; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 物料单位 + */ + private String unitName; + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseRelationMaterielBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseRelationMaterielBo.java new file mode 100644 index 00000000..e75c6752 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseRelationMaterielBo.java @@ -0,0 +1,69 @@ +package org.dromara.oa.base.domain.bo; + +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.oa.base.domain.BaseRelationMateriel; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 关联销售物料信息业务对象 base_relation_materiel + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseRelationMateriel.class, reverseConvertGenerate = false) +public class BaseRelationMaterielBo extends BaseEntity { + + /** + * 关联物料ID + */ + @NotNull(message = "关联物料ID不能为空", groups = { EditGroup.class }) + private Long relationMaterielId; + + /** + * 物料ID + */ + private Long materielId; + + /** + * 客户ID + */ + private Long customerId; + + /** + * 销售物料名称 + */ + private String saleMaterielName; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * SAP物料编码 + */ + private String materielCode; + + /** + * SAP物料名称 + */ + private String materielName; + + /** + * 客户名称 + */ + private String customerName; +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseUnitInfoBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseUnitInfoBo.java new file mode 100644 index 00000000..2bceb682 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/bo/BaseUnitInfoBo.java @@ -0,0 +1,55 @@ +package org.dromara.oa.base.domain.bo; + +import org.dromara.oa.base.domain.BaseUnitInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 计量单位信息业务对象 base_unit_info + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseUnitInfo.class, reverseConvertGenerate = false) +public class BaseUnitInfoBo extends BaseEntity { + + /** + * 单位ID + */ + @NotNull(message = "单位ID不能为空", groups = { EditGroup.class }) + private Long unitId; + + /** + * 计量单位编号 + */ + private String unitCode; + + /** + * 计量单位名称 + */ + private String unitName; + + /** + * 单位类型(1长度 2质量 3时间 4面积 5体积) + */ + private String unitType; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseMaterielInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseMaterielInfoVo.java new file mode 100644 index 00000000..5a42db6c --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseMaterielInfoVo.java @@ -0,0 +1,111 @@ +package org.dromara.oa.base.domain.vo; + +import org.dromara.oa.base.domain.BaseMaterielInfo; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * SAP物料信息视图对象 base_materiel_info + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseMaterielInfo.class) +public class BaseMaterielInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materielId; + + /** + * SAP物料编码 + */ + @ExcelProperty(value = "SAP物料编码") + private String materielCode; + + /** + * SAP物料名称 + */ + @ExcelProperty(value = "SAP物料名称") + private String materielName; + + /** + * 物料品牌 + */ + @ExcelProperty(value = "物料品牌") + private String materielBrand; + + /** + * 物料型号 + */ + @ExcelProperty(value = "物料型号") + private String materielModel; + + /** + * 单位ID + */ + @ExcelProperty(value = "单位ID") + private Long unitId; + + /** + * 物料单位 + */ + @ExcelProperty(value = "物料单位") + private String unitName; + + /** + * 物料参数 + */ + @ExcelProperty(value = "物料参数") + private String materialParameter; + + /** + * 采购单价(元) + */ + @ExcelProperty(value = "采购单价(元)") + private Long purchasePrice; + + /** + * 售前对外单价(元) + */ + @ExcelProperty(value = "售前对外单价(元)") + private Long foreignPrice; + + /** + * 备货期(天) + */ + @ExcelProperty(value = "备货期", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "天=") + private Long stockingPeriod; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseRelationMaterielVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseRelationMaterielVo.java new file mode 100644 index 00000000..a5a663bb --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseRelationMaterielVo.java @@ -0,0 +1,86 @@ +package org.dromara.oa.base.domain.vo; + +import org.dromara.oa.base.domain.BaseRelationMateriel; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 关联销售物料信息视图对象 base_relation_materiel + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseRelationMateriel.class) +public class BaseRelationMaterielVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 关联物料ID + */ + @ExcelProperty(value = "关联物料ID") + private Long relationMaterielId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materielId; + + /** + * SAP物料编码 + */ + @ExcelProperty(value = "SAP物料编码") + private String materielCode; + + /** + * SAP物料名称 + */ + @ExcelProperty(value = "SAP物料名称") + private String materielName; + + /** + * 客户ID + */ + @ExcelProperty(value = "客户ID") + private Long customerId; + + /** + * 客户名称 + */ + @ExcelProperty(value = "客户名称") + private String customerName; + + /** + * 销售物料名称 + */ + @ExcelProperty(value = "销售物料名称") + private String saleMaterielName; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseUnitInfoVo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseUnitInfoVo.java new file mode 100644 index 00000000..ed90f723 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/domain/vo/BaseUnitInfoVo.java @@ -0,0 +1,69 @@ +package org.dromara.oa.base.domain.vo; + +import org.dromara.oa.base.domain.BaseUnitInfo; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 计量单位信息视图对象 base_unit_info + * + * @author Yinq + * @date 2025-09-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseUnitInfo.class) +public class BaseUnitInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 单位ID + */ + @ExcelProperty(value = "单位ID") + private Long unitId; + + /** + * 计量单位编号 + */ + @ExcelProperty(value = "计量单位编号") + private String unitCode; + + /** + * 计量单位名称 + */ + @ExcelProperty(value = "计量单位名称") + private String unitName; + + /** + * 单位类型(1长度 2质量 3时间 4面积 5体积) + */ + @ExcelProperty(value = "单位类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "unit_type") + private String unitType; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseMaterielInfoMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseMaterielInfoMapper.java new file mode 100644 index 00000000..7ea84529 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseMaterielInfoMapper.java @@ -0,0 +1,38 @@ +package org.dromara.oa.base.mapper; + +import java.util.List; + +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.base.domain.BaseMaterielInfo; +import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * SAP物料信息Mapper接口 + * + * @author Yinq + * @date 2025-09-28 + */ +public interface BaseMaterielInfoMapper extends BaseMapperPlus { + + /** + * 查询SAP物料信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return SAP物料信息集合 + */ + public Page selectCustomBaseMaterielInfoVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询SAP物料信息列表 + * + * @param queryWrapper 条件 + * @return SAP物料信息集合 + */ + public List selectCustomBaseMaterielInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseRelationMaterielMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseRelationMaterielMapper.java new file mode 100644 index 00000000..107c23a4 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseRelationMaterielMapper.java @@ -0,0 +1,37 @@ +package org.dromara.oa.base.mapper; + +import java.util.List; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.base.domain.BaseRelationMateriel; +import org.dromara.oa.base.domain.vo.BaseRelationMaterielVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 关联销售物料信息Mapper接口 + * + * @author Yinq + * @date 2025-09-28 + */ +public interface BaseRelationMaterielMapper extends BaseMapperPlus { + + /** + * 查询关联销售物料信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 关联销售物料信息集合 + */ + public Page selectCustomBaseRelationMaterielVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询关联销售物料信息列表 + * + * @param queryWrapper 条件 + * @return 关联销售物料信息集合 + */ + public List selectCustomBaseRelationMaterielVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseUnitInfoMapper.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseUnitInfoMapper.java new file mode 100644 index 00000000..0294ea86 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/mapper/BaseUnitInfoMapper.java @@ -0,0 +1,38 @@ +package org.dromara.oa.base.mapper; + +import java.util.List; + +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.oa.base.domain.BaseUnitInfo; +import org.dromara.oa.base.domain.vo.BaseUnitInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 计量单位信息Mapper接口 + * + * @author Yinq + * @date 2025-09-28 + */ +public interface BaseUnitInfoMapper extends BaseMapperPlus { + + /** + * 查询计量单位信息列表 + * + * @param page 分页 + * @param queryWrapper 条件 + * @return 计量单位信息集合 + */ + public Page selectCustomBaseUnitInfoVoList(@Param("page") Page page, @Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + + /** + * 查询计量单位信息列表 + * + * @param queryWrapper 条件 + * @return 计量单位信息集合 + */ + public List selectCustomBaseUnitInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper queryWrapper); + +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseMaterielInfoService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseMaterielInfoService.java new file mode 100644 index 00000000..9f79eb5f --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseMaterielInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.base.service; + +import org.dromara.oa.base.domain.BaseMaterielInfo; +import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; +import org.dromara.oa.base.domain.bo.BaseMaterielInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * SAP物料信息Service接口 + * + * @author Yinq + * @date 2025-09-28 + */ +public interface IBaseMaterielInfoService { + + /** + * 查询SAP物料信息 + * + * @param materielId 主键 + * @return SAP物料信息 + */ + BaseMaterielInfoVo queryById(Long materielId); + + /** + * 分页查询SAP物料信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return SAP物料信息分页列表 + */ + TableDataInfo queryPageList(BaseMaterielInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的SAP物料信息列表 + * + * @param bo 查询条件 + * @return SAP物料信息列表 + */ + List queryList(BaseMaterielInfoBo bo); + + /** + * 新增SAP物料信息 + * + * @param bo SAP物料信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BaseMaterielInfoBo bo); + + /** + * 修改SAP物料信息 + * + * @param bo SAP物料信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BaseMaterielInfoBo bo); + + /** + * 校验并批量删除SAP物料信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseRelationMaterielService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseRelationMaterielService.java new file mode 100644 index 00000000..52f338eb --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseRelationMaterielService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.base.service; + +import org.dromara.oa.base.domain.BaseRelationMateriel; +import org.dromara.oa.base.domain.vo.BaseRelationMaterielVo; +import org.dromara.oa.base.domain.bo.BaseRelationMaterielBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 关联销售物料信息Service接口 + * + * @author Yinq + * @date 2025-09-28 + */ +public interface IBaseRelationMaterielService { + + /** + * 查询关联销售物料信息 + * + * @param relationMaterielId 主键 + * @return 关联销售物料信息 + */ + BaseRelationMaterielVo queryById(Long relationMaterielId); + + /** + * 分页查询关联销售物料信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 关联销售物料信息分页列表 + */ + TableDataInfo queryPageList(BaseRelationMaterielBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的关联销售物料信息列表 + * + * @param bo 查询条件 + * @return 关联销售物料信息列表 + */ + List queryList(BaseRelationMaterielBo bo); + + /** + * 新增关联销售物料信息 + * + * @param bo 关联销售物料信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BaseRelationMaterielBo bo); + + /** + * 修改关联销售物料信息 + * + * @param bo 关联销售物料信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BaseRelationMaterielBo bo); + + /** + * 校验并批量删除关联销售物料信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseUnitInfoService.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseUnitInfoService.java new file mode 100644 index 00000000..50073f24 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/IBaseUnitInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.oa.base.service; + +import org.dromara.oa.base.domain.BaseUnitInfo; +import org.dromara.oa.base.domain.vo.BaseUnitInfoVo; +import org.dromara.oa.base.domain.bo.BaseUnitInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 计量单位信息Service接口 + * + * @author Yinq + * @date 2025-09-28 + */ +public interface IBaseUnitInfoService { + + /** + * 查询计量单位信息 + * + * @param unitId 主键 + * @return 计量单位信息 + */ + BaseUnitInfoVo queryById(Long unitId); + + /** + * 分页查询计量单位信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 计量单位信息分页列表 + */ + TableDataInfo queryPageList(BaseUnitInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的计量单位信息列表 + * + * @param bo 查询条件 + * @return 计量单位信息列表 + */ + List queryList(BaseUnitInfoBo bo); + + /** + * 新增计量单位信息 + * + * @param bo 计量单位信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BaseUnitInfoBo bo); + + /** + * 修改计量单位信息 + * + * @param bo 计量单位信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BaseUnitInfoBo bo); + + /** + * 校验并批量删除计量单位信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseMaterielInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseMaterielInfoServiceImpl.java new file mode 100644 index 00000000..7053ea92 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseMaterielInfoServiceImpl.java @@ -0,0 +1,143 @@ +package org.dromara.oa.base.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.oa.base.domain.BaseUnitInfo; +import org.springframework.stereotype.Service; +import org.dromara.oa.base.domain.bo.BaseMaterielInfoBo; +import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; +import org.dromara.oa.base.domain.BaseMaterielInfo; +import org.dromara.oa.base.mapper.BaseMaterielInfoMapper; +import org.dromara.oa.base.service.IBaseMaterielInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * SAP物料信息Service业务层处理 + * + * @author Yinq + * @date 2025-09-28 + */ +@RequiredArgsConstructor +@Service +public class BaseMaterielInfoServiceImpl implements IBaseMaterielInfoService { + + private final BaseMaterielInfoMapper baseMapper; + + /** + * 查询SAP物料信息 + * + * @param materielId 主键 + * @return SAP物料信息 + */ + @Override + public BaseMaterielInfoVo queryById(Long materielId) { + return baseMapper.selectVoById(materielId); + } + + /** + * 分页查询SAP物料信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return SAP物料信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BaseMaterielInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的SAP物料信息列表 + * + * @param bo 查询条件 + * @return SAP物料信息列表 + */ + @Override + public List queryList(BaseMaterielInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseMaterielInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseMaterielInfo.class) + .selectAll(BaseMaterielInfo.class) + .select(BaseUnitInfo::getUnitName) + .leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, BaseMaterielInfo::getUnitId) + .like(StringUtils.isNotBlank(bo.getMaterielCode()), BaseMaterielInfo::getMaterielCode, bo.getMaterielCode()) + .like(StringUtils.isNotBlank(bo.getMaterielName()), BaseMaterielInfo::getMaterielName, bo.getMaterielName()) + .like(StringUtils.isNotBlank(bo.getMaterielBrand()), BaseMaterielInfo::getMaterielBrand, bo.getMaterielBrand()) + .like(StringUtils.isNotBlank(bo.getMaterielModel()), BaseMaterielInfo::getMaterielModel, bo.getMaterielModel()) + .eq(bo.getUnitId() != null, BaseMaterielInfo::getUnitId, bo.getUnitId()) + .like(StringUtils.isNotBlank(bo.getMaterialParameter()), BaseMaterielInfo::getMaterialParameter, bo.getMaterialParameter()) + .eq(bo.getPurchasePrice() != null, BaseMaterielInfo::getPurchasePrice, bo.getPurchasePrice()) + .eq(bo.getForeignPrice() != null, BaseMaterielInfo::getForeignPrice, bo.getForeignPrice()) + .eq(bo.getStockingPeriod() != null, BaseMaterielInfo::getStockingPeriod, bo.getStockingPeriod()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseMaterielInfo::getActiveFlag, bo.getActiveFlag()); + return lqw; + } + + /** + * 新增SAP物料信息 + * + * @param bo SAP物料信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseMaterielInfoBo bo) { + BaseMaterielInfo add = MapstructUtils.convert(bo, BaseMaterielInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMaterielId(add.getMaterielId()); + } + return flag; + } + + /** + * 修改SAP物料信息 + * + * @param bo SAP物料信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseMaterielInfoBo bo) { + BaseMaterielInfo update = MapstructUtils.convert(bo, BaseMaterielInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseMaterielInfo entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除SAP物料信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseRelationMaterielServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseRelationMaterielServiceImpl.java new file mode 100644 index 00000000..2cd41644 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseRelationMaterielServiceImpl.java @@ -0,0 +1,144 @@ +package org.dromara.oa.base.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.oa.base.domain.BaseMaterielInfo; +import org.dromara.oa.crm.domain.CrmCustomerInfo; +import org.springframework.stereotype.Service; +import org.dromara.oa.base.domain.bo.BaseRelationMaterielBo; +import org.dromara.oa.base.domain.vo.BaseRelationMaterielVo; +import org.dromara.oa.base.domain.BaseRelationMateriel; +import org.dromara.oa.base.mapper.BaseRelationMaterielMapper; +import org.dromara.oa.base.service.IBaseRelationMaterielService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 关联销售物料信息Service业务层处理 + * + * @author Yinq + * @date 2025-09-28 + */ +@RequiredArgsConstructor +@Service +public class BaseRelationMaterielServiceImpl implements IBaseRelationMaterielService { + + private final BaseRelationMaterielMapper baseMapper; + + /** + * 查询关联销售物料信息 + * + * @param relationMaterielId 主键 + * @return 关联销售物料信息 + */ + @Override + public BaseRelationMaterielVo queryById(Long relationMaterielId) { + return baseMapper.selectVoById(relationMaterielId); + } + + /** + * 分页查询关联销售物料信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 关联销售物料信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BaseRelationMaterielBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的关联销售物料信息列表 + * + * @param bo 查询条件 + * @return 关联销售物料信息列表 + */ + @Override + public List queryList(BaseRelationMaterielBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseRelationMaterielBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseRelationMateriel.class) + .selectAll(BaseRelationMateriel.class) + .select(BaseMaterielInfo::getMaterielCode) + .select(BaseMaterielInfo::getMaterielName) + .select(CrmCustomerInfo::getCustomerName) + .leftJoin(BaseMaterielInfo.class, BaseMaterielInfo::getMaterielId, BaseRelationMateriel::getMaterielId) + .leftJoin(CrmCustomerInfo.class, CrmCustomerInfo::getCustomerId, BaseRelationMateriel::getCustomerId) + .eq(bo.getMaterielId() != null, BaseRelationMateriel::getMaterielId, bo.getMaterielId()) + .eq(bo.getCustomerId() != null, BaseRelationMateriel::getCustomerId, bo.getCustomerId()) + .like(StringUtils.isNotBlank(bo.getMaterielCode()), BaseMaterielInfo::getMaterielCode, bo.getMaterielCode()) + .like(StringUtils.isNotBlank(bo.getMaterielName()), BaseMaterielInfo::getMaterielName, bo.getMaterielName()) + .like(StringUtils.isNotBlank(bo.getCustomerName()), CrmCustomerInfo::getCustomerName, bo.getCustomerName()) + .like(StringUtils.isNotBlank(bo.getSaleMaterielName()), BaseRelationMateriel::getSaleMaterielName, bo.getSaleMaterielName()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseRelationMateriel::getActiveFlag, bo.getActiveFlag()); + return lqw; + } + + /** + * 新增关联销售物料信息 + * + * @param bo 关联销售物料信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseRelationMaterielBo bo) { + BaseRelationMateriel add = MapstructUtils.convert(bo, BaseRelationMateriel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setRelationMaterielId(add.getRelationMaterielId()); + } + return flag; + } + + /** + * 修改关联销售物料信息 + * + * @param bo 关联销售物料信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseRelationMaterielBo bo) { + BaseRelationMateriel update = MapstructUtils.convert(bo, BaseRelationMateriel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseRelationMateriel entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除关联销售物料信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseUnitInfoServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseUnitInfoServiceImpl.java new file mode 100644 index 00000000..953995d6 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/base/service/impl/BaseUnitInfoServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.oa.base.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.oa.base.domain.bo.BaseUnitInfoBo; +import org.dromara.oa.base.domain.vo.BaseUnitInfoVo; +import org.dromara.oa.base.domain.BaseUnitInfo; +import org.dromara.oa.base.mapper.BaseUnitInfoMapper; +import org.dromara.oa.base.service.IBaseUnitInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 计量单位信息Service业务层处理 + * + * @author Yinq + * @date 2025-09-28 + */ +@RequiredArgsConstructor +@Service +public class BaseUnitInfoServiceImpl implements IBaseUnitInfoService { + + private final BaseUnitInfoMapper baseMapper; + + /** + * 查询计量单位信息 + * + * @param unitId 主键 + * @return 计量单位信息 + */ + @Override + public BaseUnitInfoVo queryById(Long unitId) { + return baseMapper.selectVoById(unitId); + } + + /** + * 分页查询计量单位信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 计量单位信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BaseUnitInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的计量单位信息列表 + * + * @param bo 查询条件 + * @return 计量单位信息列表 + */ + @Override + public List queryList(BaseUnitInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseUnitInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseUnitInfo.class) + .selectAll(BaseUnitInfo.class) + .eq(StringUtils.isNotBlank(bo.getUnitCode()), BaseUnitInfo::getUnitCode, bo.getUnitCode()) + .like(StringUtils.isNotBlank(bo.getUnitName()), BaseUnitInfo::getUnitName, bo.getUnitName()) + .eq(StringUtils.isNotBlank(bo.getUnitType()), BaseUnitInfo::getUnitType, bo.getUnitType()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseUnitInfo::getActiveFlag, bo.getActiveFlag()); + return lqw; + } + + /** + * 新增计量单位信息 + * + * @param bo 计量单位信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseUnitInfoBo bo) { + BaseUnitInfo add = MapstructUtils.convert(bo, BaseUnitInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setUnitId(add.getUnitId()); + } + return flag; + } + + /** + * 修改计量单位信息 + * + * @param bo 计量单位信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseUnitInfoBo bo) { + BaseUnitInfo update = MapstructUtils.convert(bo, BaseUnitInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseUnitInfo entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除计量单位信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseMaterielInfoMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseMaterielInfoMapper.xml new file mode 100644 index 00000000..c14e7d6b --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseMaterielInfoMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseRelationMaterielMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseRelationMaterielMapper.xml new file mode 100644 index 00000000..0346b735 --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseRelationMaterielMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseUnitInfoMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseUnitInfoMapper.xml new file mode 100644 index 00000000..7f4635ce --- /dev/null +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/base/BaseUnitInfoMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + +