diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml index ef2ff5cb..3e212b6c 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml @@ -53,13 +53,13 @@ spring: username: xinnengyuandev password: StRWCZdZirysNSs2 # 从库数据源 - slave: - lazy: true - type: ${spring.datasource.type} - driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.110.2:13386/zmkgdev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true - username: zmkgdev - password: JhYxREf25AXdy3h8 +# slave: +# lazy: true +# type: ${spring.datasource.type} +# driverClassName: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://192.168.110.2:13386/zmkgdev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true +# username: zmkgdev +# password: JhYxREf25AXdy3h8 # oracle: # type: ${spring.datasource.type} # driverClassName: oracle.jdbc.OracleDriver diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java new file mode 100644 index 00000000..9e9e1a86 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java @@ -0,0 +1,120 @@ +package org.dromara.cailiaoshebei.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.dromara.cailiaoshebei.domain.dto.BusMrpDto; +import org.dromara.cailiaoshebei.domain.vo.BusMrpVo; +import org.dromara.design.domain.dto.desCollect.DesCollectBatchDto; +import org.dromara.design.domain.vo.DesCollectVo; +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.cailiaoshebei.domain.vo.BusMrpBaseVo; +import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseBo; +import org.dromara.cailiaoshebei.service.IBusMrpBaseService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 物资-批次需求计划基础信息 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/cailiaoshebei/mrpBase") +public class BusMrpBaseController extends BaseController { + + private final IBusMrpBaseService busMrpBaseService; + + /** + * 查询物资-批次需求计划基础信息列表 + */ + @SaCheckPermission("cailiaoshebei:mrpBase:list") + @GetMapping("/list") + public TableDataInfo list(BusMrpBaseBo bo, PageQuery pageQuery) { + return busMrpBaseService.queryPageList(bo, pageQuery); + } + + /** + * 导出物资-批次需求计划基础信息列表 + */ + @SaCheckPermission("cailiaoshebei:mrpBase:export") + @Log(title = "物资-批次需求计划基础信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusMrpBaseBo bo, HttpServletResponse response) { + List list = busMrpBaseService.queryList(bo); + ExcelUtil.exportExcel(list, "物资-批次需求计划基础信息", BusMrpBaseVo.class, response); + } + + /** + * 获取物资-批次需求计划基础信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("cailiaoshebei:mrpBase:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busMrpBaseService.queryById(id)); + } + + /** + * 新增物资-批次需求计划基础信息 + */ + @SaCheckPermission("cailiaoshebei:mrpBase:add") + @Log(title = "物资-批次需求计划基础信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusMrpBaseBo bo) { + return toAjax(busMrpBaseService.insertByBo(bo)); + } + + /** + * 修改物资-批次需求计划基础信息 + */ + @SaCheckPermission("cailiaoshebei:mrpBase:edit") + @Log(title = "物资-批次需求计划基础信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusMrpBaseBo bo) { + return toAjax(busMrpBaseService.updateByBo(bo)); + } + + /** + * 删除物资-批次需求计划基础信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("cailiaoshebei:mrpBase:remove") + @Log(title = "物资-批次需求计划基础信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busMrpBaseService.deleteWithValidByIds(List.of(ids), true)); + } + + /** + * 批量新增或修改 + */ + @RepeatSubmit() + @PostMapping("/batch") + public R batchAddOrUpdate(@RequestBody BusMrpDto dto) { + return toAjax(busMrpBaseService.batchAddOrUpdate(dto)); + } + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPlanDocAssociationController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPlanDocAssociationController.java new file mode 100644 index 00000000..0cab4954 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPlanDocAssociationController.java @@ -0,0 +1,105 @@ +package org.dromara.cailiaoshebei.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.cailiaoshebei.domain.vo.BusPlanDocAssociationVo; +import org.dromara.cailiaoshebei.domain.bo.BusPlanDocAssociationBo; +import org.dromara.cailiaoshebei.service.IBusPlanDocAssociationService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 物资-批次需求计划与采购单关联 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/cailiaoshebei/planDocAssociation") +public class BusPlanDocAssociationController extends BaseController { + + private final IBusPlanDocAssociationService busPlanDocAssociationService; + + /** + * 查询物资-批次需求计划与采购单关联列表 + */ + @SaCheckPermission("cailiaoshebei:planDocAssociation:list") + @GetMapping("/list") + public TableDataInfo list(BusPlanDocAssociationBo bo, PageQuery pageQuery) { + return busPlanDocAssociationService.queryPageList(bo, pageQuery); + } + + /** + * 导出物资-批次需求计划与采购单关联列表 + */ + @SaCheckPermission("cailiaoshebei:planDocAssociation:export") + @Log(title = "物资-批次需求计划与采购单关联", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusPlanDocAssociationBo bo, HttpServletResponse response) { + List list = busPlanDocAssociationService.queryList(bo); + ExcelUtil.exportExcel(list, "物资-批次需求计划与采购单关联", BusPlanDocAssociationVo.class, response); + } + + /** + * 获取物资-批次需求计划与采购单关联详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("cailiaoshebei:planDocAssociation:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busPlanDocAssociationService.queryById(id)); + } + + /** + * 新增物资-批次需求计划与采购单关联 + */ + @SaCheckPermission("cailiaoshebei:planDocAssociation:add") + @Log(title = "物资-批次需求计划与采购单关联", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusPlanDocAssociationBo bo) { + return toAjax(busPlanDocAssociationService.insertByBo(bo)); + } + + /** + * 修改物资-批次需求计划与采购单关联 + */ + @SaCheckPermission("cailiaoshebei:planDocAssociation:edit") + @Log(title = "物资-批次需求计划与采购单关联", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusPlanDocAssociationBo bo) { + return toAjax(busPlanDocAssociationService.updateByBo(bo)); + } + + /** + * 删除物资-批次需求计划与采购单关联 + * + * @param ids 主键串 + */ + @SaCheckPermission("cailiaoshebei:planDocAssociation:remove") + @Log(title = "物资-批次需求计划与采购单关联", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busPlanDocAssociationService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java new file mode 100644 index 00000000..24005520 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseDocController.java @@ -0,0 +1,105 @@ +package org.dromara.cailiaoshebei.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.cailiaoshebei.domain.vo.BusPurchaseDocVo; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseDocBo; +import org.dromara.cailiaoshebei.service.IBusPurchaseDocService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 物资-采购联系单 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/cailiaoshebei/purchaseDoc") +public class BusPurchaseDocController extends BaseController { + + private final IBusPurchaseDocService busPurchaseDocService; + + /** + * 查询物资-采购联系单列表 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:list") + @GetMapping("/list") + public TableDataInfo list(BusPurchaseDocBo bo, PageQuery pageQuery) { + return busPurchaseDocService.queryPageList(bo, pageQuery); + } + + /** + * 导出物资-采购联系单列表 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:export") + @Log(title = "物资-采购联系单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusPurchaseDocBo bo, HttpServletResponse response) { + List list = busPurchaseDocService.queryList(bo); + ExcelUtil.exportExcel(list, "物资-采购联系单", BusPurchaseDocVo.class, response); + } + + /** + * 获取物资-采购联系单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busPurchaseDocService.queryById(id)); + } + + /** + * 新增物资-采购联系单 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:add") + @Log(title = "物资-采购联系单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusPurchaseDocBo bo) { + return toAjax(busPurchaseDocService.insertByBo(bo)); + } + + /** + * 修改物资-采购联系单 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:edit") + @Log(title = "物资-采购联系单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusPurchaseDocBo bo) { + return toAjax(busPurchaseDocService.updateByBo(bo)); + } + + /** + * 删除物资-采购联系单 + * + * @param ids 主键串 + */ + @SaCheckPermission("cailiaoshebei:purchaseDoc:remove") + @Log(title = "物资-采购联系单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busPurchaseDocService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseUserController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseUserController.java new file mode 100644 index 00000000..c311bbcc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusPurchaseUserController.java @@ -0,0 +1,130 @@ +package org.dromara.cailiaoshebei.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.cailiaoshebei.domain.vo.BusPurchaseUserVo; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseUserBo; +import org.dromara.cailiaoshebei.service.IBusPurchaseUserService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 物资采购人员 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/cailiaoshebei/purchaseUser") +public class BusPurchaseUserController extends BaseController { + + private final IBusPurchaseUserService busPurchaseUserService; + + /** + * 查询物资采购人员列表 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:list") + @GetMapping("/list") + public TableDataInfo list(BusPurchaseUserBo bo, PageQuery pageQuery) { + return busPurchaseUserService.queryPageList(bo, pageQuery); + } + + /** + * 导出物资采购人员列表 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:export") + @Log(title = "物资采购人员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusPurchaseUserBo bo, HttpServletResponse response) { + List list = busPurchaseUserService.queryList(bo); + ExcelUtil.exportExcel(list, "物资采购人员", BusPurchaseUserVo.class, response); + } + + /** + * 获取物资采购人员详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busPurchaseUserService.queryById(id)); + } + + /** + * 新增物资采购人员 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:add") + @Log(title = "物资采购人员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusPurchaseUserBo bo) { + return toAjax(busPurchaseUserService.insertByBo(bo)); + } + + /** + * 修改物资采购人员 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:edit") + @Log(title = "物资采购人员", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusPurchaseUserBo bo) { + return toAjax(busPurchaseUserService.updateByBo(bo)); + } + + /** + * 删除物资采购人员 + * + * @param ids 主键串 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:remove") + @Log(title = "物资采购人员", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busPurchaseUserService.deleteWithValidByIds(List.of(ids), true)); + } + + + /** + * 新增或修改物资采购人员 + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:add") + @Log(title = "物资采购人员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/addOrUpdate") + public R addOrUpdate(@Validated(AddGroup.class) @RequestBody BusPurchaseUserBo bo) { + return toAjax(busPurchaseUserService.addOrUpdate(bo)); + } + + + /** + * 根据项目获取物资采购人员详细信息 + * + * @param projectId 项目id + */ + @SaCheckPermission("cailiaoshebei:purchaseUser:query") + @GetMapping("/byProject/{projectId}") + public R getInfoByProject(@NotNull(message = "主键不能为空") + @PathVariable Long projectId) { + return R.ok(busPurchaseUserService.getInfoByProject(projectId)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMaterialbatchdemandplan.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMaterialbatchdemandplan.java index cf505eb5..a7bbf7b6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMaterialbatchdemandplan.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMaterialbatchdemandplan.java @@ -49,6 +49,11 @@ public class BusMaterialbatchdemandplan extends BaseEntity { */ private Long suppliespriceId; + /** + * 基础信息ID + */ + private Long mrpBaseId; + /** * 物料编码 */ @@ -94,5 +99,10 @@ public class BusMaterialbatchdemandplan extends BaseEntity { */ private String remark; + /** + * 质量标准 + */ + private String qs; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMrpBase.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMrpBase.java new file mode 100644 index 00000000..a66a01c3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusMrpBase.java @@ -0,0 +1,57 @@ +package org.dromara.cailiaoshebei.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 物资-批次需求计划基础信息对象 bus_mrp_base + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_mrp_base") +public class BusMrpBase extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 计划编号 + */ + private String planCode; + + /** + * 物资类别 + */ + private String matCat; + + /** + * 编制日期 + */ + private LocalDate preparedDate; + + /** + * 审核状态 + */ + private String status; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPlanDocAssociation.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPlanDocAssociation.java new file mode 100644 index 00000000..c30ef0eb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPlanDocAssociation.java @@ -0,0 +1,46 @@ +package org.dromara.cailiaoshebei.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 物资-批次需求计划与采购单关联对象 bus_plan_doc_association + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_plan_doc_association") +public class BusPlanDocAssociation extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 计划id + */ + private Long planId; + + /** + * 采购联系单id + */ + private Long docId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPurchaseDoc.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPurchaseDoc.java new file mode 100644 index 00000000..295e93a6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPurchaseDoc.java @@ -0,0 +1,122 @@ +package org.dromara.cailiaoshebei.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.time.LocalDate; + +/** + * 物资-采购联系单对象 bus_purchase_doc + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_purchase_doc") +public class BusPurchaseDoc extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 采购单编号 + */ + private String docCode; + + /** + * 供应商 + */ + private String supplier; + + /** + * 事由 + */ + private String reason; + + /** + * 设备统称 + */ + private String name; + + /** + * 到货日期 + */ + private LocalDate arrivalDate; + + /** + * 设计负责人联系方式 + */ + private String designDirectorTel; + + /** + * 现场技术负责人联系方式 + */ + private String technicalDirectorTel; + + /** + * 收货地址 + */ + private String receivingAddress; + + /** + * 联系人 + */ + private String contacts; + + /** + * 项目负责人 + */ + private String projectDirector; + + /** + * 采购经办人 + */ + private String purchasingAgent; + + /** + * 日期 + */ + private LocalDate preparedDate; + + /** + * 反馈文件地址 + */ + private String feedbackUrl; + + /** + * 签收单位 + */ + private String signingUnit; + + /** + * 签收人 + */ + private String signingPerson; + + /** + * 签收日期 + */ + private LocalDate signingDate; + + /** + * 审核状态 + */ + private String status; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPurchaseUser.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPurchaseUser.java new file mode 100644 index 00000000..a333bb5d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/BusPurchaseUser.java @@ -0,0 +1,46 @@ +package org.dromara.cailiaoshebei.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 物资采购人员对象 bus_purchase_user + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_purchase_user") +public class BusPurchaseUser extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 采购人员id + */ + private Long userId; + + /** + * 采购人员姓名 + */ + private String userName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMaterialbatchdemandplanBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMaterialbatchdemandplanBo.java index 1dec475e..8eea5600 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMaterialbatchdemandplanBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMaterialbatchdemandplanBo.java @@ -33,7 +33,6 @@ public class BusMaterialbatchdemandplanBo extends BaseEntity { /** * 批次号 */ - @NotBlank(message = "批次号不能为空") private String batchNumber; /** @@ -41,6 +40,11 @@ public class BusMaterialbatchdemandplanBo extends BaseEntity { */ private Long projectId; + /** + * 基础信息ID + */ + private Long mrpBaseId; + /** * 材料设备ID */ @@ -97,4 +101,8 @@ public class BusMaterialbatchdemandplanBo extends BaseEntity { private String remark; + /** + * 质量标准 + */ + private String qs; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMrpBaseBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMrpBaseBo.java new file mode 100644 index 00000000..79d90735 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusMrpBaseBo.java @@ -0,0 +1,59 @@ +package org.dromara.cailiaoshebei.domain.bo; + +import org.dromara.cailiaoshebei.domain.BusMrpBase; +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.*; + +import java.time.LocalDate; + +/** + * 物资-批次需求计划基础信息业务对象 bus_mrp_base + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusMrpBase.class, reverseConvertGenerate = false) +public class BusMrpBaseBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目ID + */ + @NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 计划编号 + */ + @NotBlank(message = "计划编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String planCode; + + /** + * 物资类别 + */ + private String matCat; + + /** + * 编制日期 + */ + private LocalDate preparedDate; + + /** + * 审核状态 + */ + private String status; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPlanDocAssociationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPlanDocAssociationBo.java new file mode 100644 index 00000000..c6be7935 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPlanDocAssociationBo.java @@ -0,0 +1,45 @@ +package org.dromara.cailiaoshebei.domain.bo; + +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +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.*; + +/** + * 物资-批次需求计划与采购单关联业务对象 bus_plan_doc_association + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusPlanDocAssociation.class, reverseConvertGenerate = false) +public class BusPlanDocAssociationBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 计划id + */ + private Long planId; + + /** + * 采购联系单id + */ + private Long docId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPurchaseDocBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPurchaseDocBo.java new file mode 100644 index 00000000..60e44442 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPurchaseDocBo.java @@ -0,0 +1,126 @@ +package org.dromara.cailiaoshebei.domain.bo; + +import org.dromara.cailiaoshebei.domain.BusPurchaseDoc; +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.*; + +import java.time.LocalDate; +import java.util.List; + +/** + * 物资-采购联系单业务对象 bus_purchase_doc + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusPurchaseDoc.class, reverseConvertGenerate = false) +public class BusPurchaseDocBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 采购单编号 + */ + private String docCode; + + /** + * 供应商 + */ + private String supplier; + + /** + * 事由 + */ + private String reason; + + /** + * 设备统称 + */ + private String name; + + /** + * 到货日期 + */ + private LocalDate arrivalDate; + + /** + * 设计负责人联系方式 + */ + private String designDirectorTel; + + /** + * 现场技术负责人联系方式 + */ + private String technicalDirectorTel; + + /** + * 收货地址 + */ + private String receivingAddress; + + /** + * 联系人 + */ + private String contacts; + + /** + * 项目负责人 + */ + private String projectDirector; + + /** + * 采购经办人 + */ + private String purchasingAgent; + + /** + * 日期 + */ + private LocalDate preparedDate; + + /** + * 反馈文件地址 + */ + private String feedbackUrl; + + /** + * 签收单位 + */ + private String signingUnit; + + /** + * 签收人 + */ + private String signingPerson; + + /** + * 签收日期 + */ + private LocalDate signingDate; + + /** + * 审核状态 + */ + private String status; + + /** + * 关联计划 + */ + private List associationList; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPurchaseUserBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPurchaseUserBo.java new file mode 100644 index 00000000..ae5956dc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/bo/BusPurchaseUserBo.java @@ -0,0 +1,48 @@ +package org.dromara.cailiaoshebei.domain.bo; + +import org.dromara.cailiaoshebei.domain.BusPurchaseUser; +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.*; + +/** + * 物资采购人员业务对象 bus_purchase_user + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusPurchaseUser.class, reverseConvertGenerate = false) +public class BusPurchaseUserBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目id + */ + @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 采购人员id + */ + @NotNull(message = "采购人员id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 采购人员姓名 + */ + @NotBlank(message = "采购人员姓名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String userName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusMrpDto.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusMrpDto.java new file mode 100644 index 00000000..1268f10b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/dto/BusMrpDto.java @@ -0,0 +1,15 @@ +package org.dromara.cailiaoshebei.domain.dto; + +import lombok.Data; +import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanBo; +import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseBo; + +import java.util.List; + +@Data +public class BusMrpDto { + + private BusMrpBaseBo mrpBaseBo; + + private List planList; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java index ed297c80..893093a6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java @@ -43,6 +43,11 @@ public class BusMaterialbatchdemandplanVo implements Serializable { @ExcelProperty(value = "批次ID") private String batchId; + /** + * 基础信息ID + */ + private Long mrpBaseId; + /** * 项目ID */ @@ -115,5 +120,9 @@ public class BusMaterialbatchdemandplanVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 质量标准 + */ + private String qs; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMrpBaseVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMrpBaseVo.java new file mode 100644 index 00000000..a3a99b73 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMrpBaseVo.java @@ -0,0 +1,73 @@ +package org.dromara.cailiaoshebei.domain.vo; + +import org.dromara.cailiaoshebei.domain.BusMrpBase; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.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.time.LocalDate; +import java.util.List; + + +/** + * 物资-批次需求计划基础信息视图对象 bus_mrp_base + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusMrpBase.class) +public class BusMrpBaseVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 计划编号 + */ + @ExcelProperty(value = "计划编号") + private String planCode; + + /** + * 物资类别 + */ + @ExcelProperty(value = "物资类别") + private String matCat; + + /** + * 编制日期 + */ + @ExcelProperty(value = "编制日期") + private LocalDate preparedDate; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String status; + + + /** + * 计划详情 + */ + private List planList; + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMrpVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMrpVo.java new file mode 100644 index 00000000..05874b9e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMrpVo.java @@ -0,0 +1,15 @@ +package org.dromara.cailiaoshebei.domain.vo; + +import lombok.Data; +import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanBo; +import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseBo; + +import java.util.List; + +@Data +public class BusMrpVo { + + private BusMrpBaseVo mrpBaseBo; + + private List planList; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPlanDocAssociationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPlanDocAssociationVo.java new file mode 100644 index 00000000..5d35e650 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPlanDocAssociationVo.java @@ -0,0 +1,56 @@ +package org.dromara.cailiaoshebei.domain.vo; + +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.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; + + + +/** + * 物资-批次需求计划与采购单关联视图对象 bus_plan_doc_association + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusPlanDocAssociation.class) +public class BusPlanDocAssociationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 计划id + */ + @ExcelProperty(value = "计划id") + private Long planId; + + /** + * 采购联系单id + */ + @ExcelProperty(value = "采购联系单id") + private Long docId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPurchaseDocVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPurchaseDocVo.java new file mode 100644 index 00000000..9dd354dc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPurchaseDocVo.java @@ -0,0 +1,147 @@ +package org.dromara.cailiaoshebei.domain.vo; + +import org.dromara.cailiaoshebei.domain.BusPurchaseDoc; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.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.time.LocalDate; +import java.util.Date; + + + +/** + * 物资-采购联系单视图对象 bus_purchase_doc + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusPurchaseDoc.class) +public class BusPurchaseDocVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 采购单编号 + */ + @ExcelProperty(value = "采购单编号") + private String docCode; + + /** + * 供应商 + */ + @ExcelProperty(value = "供应商") + private String supplier; + + /** + * 事由 + */ + @ExcelProperty(value = "事由") + private String reason; + + /** + * 设备统称 + */ + @ExcelProperty(value = "设备统称") + private String name; + + /** + * 到货日期 + */ + @ExcelProperty(value = "到货日期") + private LocalDate arrivalDate; + + /** + * 设计负责人联系方式 + */ + @ExcelProperty(value = "设计负责人联系方式") + private String designDirectorTel; + + /** + * 现场技术负责人联系方式 + */ + @ExcelProperty(value = "现场技术负责人联系方式") + private String technicalDirectorTel; + + /** + * 收货地址 + */ + @ExcelProperty(value = "收货地址") + private String receivingAddress; + + /** + * 联系人 + */ + @ExcelProperty(value = "联系人") + private String contacts; + + /** + * 项目负责人 + */ + @ExcelProperty(value = "项目负责人") + private String projectDirector; + + /** + * 采购经办人 + */ + @ExcelProperty(value = "采购经办人") + private String purchasingAgent; + + /** + * 日期 + */ + @ExcelProperty(value = "日期") + private LocalDate preparedDate; + + /** + * 反馈文件地址 + */ + @ExcelProperty(value = "反馈文件地址") + private String feedbackUrl; + + /** + * 签收单位 + */ + @ExcelProperty(value = "签收单位") + private String signingUnit; + + /** + * 签收人 + */ + @ExcelProperty(value = "签收人") + private String signingPerson; + + /** + * 签收日期 + */ + @ExcelProperty(value = "签收日期") + private LocalDate signingDate; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String status; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPurchaseUserVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPurchaseUserVo.java new file mode 100644 index 00000000..1b89af89 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusPurchaseUserVo.java @@ -0,0 +1,56 @@ +package org.dromara.cailiaoshebei.domain.vo; + +import org.dromara.cailiaoshebei.domain.BusPurchaseUser; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.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; + + + +/** + * 物资采购人员视图对象 bus_purchase_user + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusPurchaseUser.class) +public class BusPurchaseUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 采购人员id + */ + @ExcelProperty(value = "采购人员id") + private Long userId; + + /** + * 采购人员姓名 + */ + @ExcelProperty(value = "采购人员姓名") + private String userName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusMrpBaseMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusMrpBaseMapper.java new file mode 100644 index 00000000..6300864c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusMrpBaseMapper.java @@ -0,0 +1,15 @@ +package org.dromara.cailiaoshebei.mapper; + +import org.dromara.cailiaoshebei.domain.BusMrpBase; +import org.dromara.cailiaoshebei.domain.vo.BusMrpBaseVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 物资-批次需求计划基础信息Mapper接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface BusMrpBaseMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPlanDocAssociationMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPlanDocAssociationMapper.java new file mode 100644 index 00000000..6fbc6a87 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPlanDocAssociationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.cailiaoshebei.mapper; + +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +import org.dromara.cailiaoshebei.domain.vo.BusPlanDocAssociationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 物资-批次需求计划与采购单关联Mapper接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface BusPlanDocAssociationMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPurchaseDocMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPurchaseDocMapper.java new file mode 100644 index 00000000..e28b8cf4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPurchaseDocMapper.java @@ -0,0 +1,15 @@ +package org.dromara.cailiaoshebei.mapper; + +import org.dromara.cailiaoshebei.domain.BusPurchaseDoc; +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseDocVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 物资-采购联系单Mapper接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface BusPurchaseDocMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPurchaseUserMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPurchaseUserMapper.java new file mode 100644 index 00000000..b66f0276 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/mapper/BusPurchaseUserMapper.java @@ -0,0 +1,15 @@ +package org.dromara.cailiaoshebei.mapper; + +import org.dromara.cailiaoshebei.domain.BusPurchaseUser; +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseUserVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 物资采购人员Mapper接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface BusPurchaseUserMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java new file mode 100644 index 00000000..995dfc63 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java @@ -0,0 +1,79 @@ +package org.dromara.cailiaoshebei.service; + +import org.dromara.cailiaoshebei.domain.dto.BusMrpDto; +import org.dromara.cailiaoshebei.domain.vo.BusMrpBaseVo; +import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseBo; +import org.dromara.cailiaoshebei.domain.BusMrpBase; +import org.dromara.cailiaoshebei.domain.vo.BusMrpVo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.Collection; +import java.util.List; + +/** + * 物资-批次需求计划基础信息Service接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface IBusMrpBaseService extends IService{ + + /** + * 查询物资-批次需求计划基础信息 + * + * @param id 主键 + * @return 物资-批次需求计划基础信息 + */ + BusMrpVo queryById(Long id); + + /** + * 分页查询物资-批次需求计划基础信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资-批次需求计划基础信息分页列表 + */ + TableDataInfo queryPageList(BusMrpBaseBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的物资-批次需求计划基础信息列表 + * + * @param bo 查询条件 + * @return 物资-批次需求计划基础信息列表 + */ + List queryList(BusMrpBaseBo bo); + + /** + * 新增物资-批次需求计划基础信息 + * + * @param bo 物资-批次需求计划基础信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BusMrpBaseBo bo); + + /** + * 修改物资-批次需求计划基础信息 + * + * @param bo 物资-批次需求计划基础信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BusMrpBaseBo bo); + + /** + * 校验并批量删除物资-批次需求计划基础信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 批量新增或修改物资-批次需求计划 + */ + Boolean batchAddOrUpdate(BusMrpDto dto); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPlanDocAssociationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPlanDocAssociationService.java new file mode 100644 index 00000000..51633559 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPlanDocAssociationService.java @@ -0,0 +1,70 @@ +package org.dromara.cailiaoshebei.service; + +import org.dromara.cailiaoshebei.domain.vo.BusPlanDocAssociationVo; +import org.dromara.cailiaoshebei.domain.bo.BusPlanDocAssociationBo; +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 物资-批次需求计划与采购单关联Service接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface IBusPlanDocAssociationService extends IService{ + + /** + * 查询物资-批次需求计划与采购单关联 + * + * @param id 主键 + * @return 物资-批次需求计划与采购单关联 + */ + BusPlanDocAssociationVo queryById(Long id); + + /** + * 分页查询物资-批次需求计划与采购单关联列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资-批次需求计划与采购单关联分页列表 + */ + TableDataInfo queryPageList(BusPlanDocAssociationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的物资-批次需求计划与采购单关联列表 + * + * @param bo 查询条件 + * @return 物资-批次需求计划与采购单关联列表 + */ + List queryList(BusPlanDocAssociationBo bo); + + /** + * 新增物资-批次需求计划与采购单关联 + * + * @param bo 物资-批次需求计划与采购单关联 + * @return 是否新增成功 + */ + Boolean insertByBo(BusPlanDocAssociationBo bo); + + /** + * 修改物资-批次需求计划与采购单关联 + * + * @param bo 物资-批次需求计划与采购单关联 + * @return 是否修改成功 + */ + Boolean updateByBo(BusPlanDocAssociationBo bo); + + /** + * 校验并批量删除物资-批次需求计划与采购单关联信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPurchaseDocService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPurchaseDocService.java new file mode 100644 index 00000000..ddc97f0f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPurchaseDocService.java @@ -0,0 +1,70 @@ +package org.dromara.cailiaoshebei.service; + +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseDocVo; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseDocBo; +import org.dromara.cailiaoshebei.domain.BusPurchaseDoc; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 物资-采购联系单Service接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface IBusPurchaseDocService extends IService{ + + /** + * 查询物资-采购联系单 + * + * @param id 主键 + * @return 物资-采购联系单 + */ + BusPurchaseDocVo queryById(Long id); + + /** + * 分页查询物资-采购联系单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资-采购联系单分页列表 + */ + TableDataInfo queryPageList(BusPurchaseDocBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的物资-采购联系单列表 + * + * @param bo 查询条件 + * @return 物资-采购联系单列表 + */ + List queryList(BusPurchaseDocBo bo); + + /** + * 新增物资-采购联系单 + * + * @param bo 物资-采购联系单 + * @return 是否新增成功 + */ + Boolean insertByBo(BusPurchaseDocBo bo); + + /** + * 修改物资-采购联系单 + * + * @param bo 物资-采购联系单 + * @return 是否修改成功 + */ + Boolean updateByBo(BusPurchaseDocBo bo); + + /** + * 校验并批量删除物资-采购联系单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPurchaseUserService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPurchaseUserService.java new file mode 100644 index 00000000..31182e2b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusPurchaseUserService.java @@ -0,0 +1,83 @@ +package org.dromara.cailiaoshebei.service; + +import jakarta.validation.constraints.NotNull; +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseUserVo; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseUserBo; +import org.dromara.cailiaoshebei.domain.BusPurchaseUser; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.bind.annotation.PathVariable; + +import java.util.Collection; +import java.util.List; + +/** + * 物资采购人员Service接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface IBusPurchaseUserService extends IService{ + + /** + * 查询物资采购人员 + * + * @param id 主键 + * @return 物资采购人员 + */ + BusPurchaseUserVo queryById(Long id); + + /** + * 分页查询物资采购人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资采购人员分页列表 + */ + TableDataInfo queryPageList(BusPurchaseUserBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的物资采购人员列表 + * + * @param bo 查询条件 + * @return 物资采购人员列表 + */ + List queryList(BusPurchaseUserBo bo); + + /** + * 新增物资采购人员 + * + * @param bo 物资采购人员 + * @return 是否新增成功 + */ + Boolean insertByBo(BusPurchaseUserBo bo); + + /** + * 修改物资采购人员 + * + * @param bo 物资采购人员 + * @return 是否修改成功 + */ + Boolean updateByBo(BusPurchaseUserBo bo); + + /** + * 校验并批量删除物资采购人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 新增或修改 + */ + boolean addOrUpdate(BusPurchaseUserBo bo); + + /** + * 根据项目id查询采购人员信息 + */ + BusPurchaseUserVo getInfoByProject(Long projectId); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java index 77675430..f95d5778 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMaterialbatchdemandplanServiceImpl.java @@ -112,6 +112,7 @@ public class BusMaterialbatchdemandplanServiceImpl extends ServiceImpl implements IBusMrpBaseService { + + private final BusMrpBaseMapper baseMapper; + + private final IBusMaterialbatchdemandplanService planservice; + + /** + * 查询物资-批次需求计划基础信息 + * + * @param id 主键 + * @return 物资-批次需求计划基础信息 + */ + @Override + public BusMrpVo queryById(Long id){ + BusMrpVo busMrpVo = new BusMrpVo(); + + BusMrpBaseVo busMrpBaseVo = baseMapper.selectVoById(id); + BusMaterialbatchdemandplanBo planBo = new BusMaterialbatchdemandplanBo(); + planBo.setMrpBaseId(id); + List voList = planservice.queryList(planBo); + busMrpVo.setMrpBaseBo(busMrpBaseVo); + busMrpVo.setPlanList(voList); + + return busMrpVo; + } + + /** + * 分页查询物资-批次需求计划基础信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资-批次需求计划基础信息分页列表 + */ + @Override + public TableDataInfo queryPageList(BusMrpBaseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的物资-批次需求计划基础信息列表 + * + * @param bo 查询条件 + * @return 物资-批次需求计划基础信息列表 + */ + @Override + public List queryList(BusMrpBaseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusMrpBaseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusMrpBase::getId); + lqw.eq(bo.getProjectId() != null, BusMrpBase::getProjectId, bo.getProjectId()); + lqw.like(StringUtils.isNotBlank(bo.getPlanCode()), BusMrpBase::getPlanCode, bo.getPlanCode()); + lqw.eq(StringUtils.isNotBlank(bo.getMatCat()), BusMrpBase::getMatCat, bo.getMatCat()); + lqw.eq(bo.getPreparedDate() != null, BusMrpBase::getPreparedDate, bo.getPreparedDate()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BusMrpBase::getStatus, bo.getStatus()); + return lqw; + } + + /** + * 新增物资-批次需求计划基础信息 + * + * @param bo 物资-批次需求计划基础信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusMrpBaseBo bo) { + BusMrpBase add = MapstructUtils.convert(bo, BusMrpBase.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改物资-批次需求计划基础信息 + * + * @param bo 物资-批次需求计划基础信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusMrpBaseBo bo) { + BusMrpBase update = MapstructUtils.convert(bo, BusMrpBase.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusMrpBase entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除物资-批次需求计划基础信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + planservice.remove(Wrappers.lambdaQuery() + .in(BusMaterialbatchdemandplan::getMrpBaseId,ids)); + + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean batchAddOrUpdate(BusMrpDto dto) { + BusMrpBase convert = MapstructUtils.convert(dto.getMrpBaseBo(), BusMrpBase.class); + convert.setStatus(null); + boolean b = saveOrUpdate(convert); + + planservice.remove(Wrappers.lambdaQuery() + .eq(BusMaterialbatchdemandplan::getMrpBaseId,convert.getId())); + + if(CollectionUtil.isNotEmpty(dto.getPlanList())){ + List plans = MapstructUtils.convert(dto.getPlanList(), BusMaterialbatchdemandplan.class); + plans.forEach(item -> { + item.setMrpBaseId(convert.getId()); + item.setProjectId(convert.getProjectId()); + }); + planservice.saveBatch(plans); + } + return b; + } + + /** + * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等) + * 正常使用只需#processEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processEvent 参数 + */ + @EventListener(condition = "#processEvent.flowCode.endsWith('mrp')") + public void processHandler(ProcessEvent processEvent) { + log.info("收资清单审核任务执行了{}", processEvent.toString()); + BusMrpBase busMrpBase = this.getById(Convert.toLong(processEvent.getBusinessId())); + busMrpBase.setStatus(processEvent.getStatus()); + if (processEvent.getSubmit()) { + busMrpBase.setStatus(BusinessStatusEnum.WAITING.getStatus()); + } + this.updateById(busMrpBase); + + } + + /** + * 执行任务创建监听 + * 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断 + * 在方法中判断流程节点key + * if ("xxx".equals(processTaskEvent.getNodeCode())) { + * //执行业务逻辑 + * } + * + * @param processTaskEvent 参数 + */ + @EventListener(condition = "#processTaskEvent.flowCode.endsWith('mrp')") + public void processTaskHandler(ProcessTaskEvent processTaskEvent) { + log.info("收资清单审核任务创建了{}", processTaskEvent.toString()); + } + + /** + * 监听删除流程事件 + * 正常使用只需#processDeleteEvent.flowCode=='leave1' + * 示例为了方便则使用startsWith匹配了全部示例key + * + * @param processDeleteEvent 参数 + */ + @EventListener(condition = "#processDeleteEvent.flowCode.endsWith('mrp')") + public void processDeleteHandler(ProcessDeleteEvent processDeleteEvent) { + log.info("监听删除流程事件,收资清单审核任务执行了{}", processDeleteEvent.toString()); + } + + + + + + + + + + + + + + + + + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPlanDocAssociationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPlanDocAssociationServiceImpl.java new file mode 100644 index 00000000..a9167a86 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPlanDocAssociationServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.cailiaoshebei.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.cailiaoshebei.domain.bo.BusPlanDocAssociationBo; +import org.dromara.cailiaoshebei.domain.vo.BusPlanDocAssociationVo; +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +import org.dromara.cailiaoshebei.mapper.BusPlanDocAssociationMapper; +import org.dromara.cailiaoshebei.service.IBusPlanDocAssociationService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 物资-批次需求计划与采购单关联Service业务层处理 + * + * @author Lion Li + * @date 2025-08-13 + */ +@RequiredArgsConstructor +@Service +public class BusPlanDocAssociationServiceImpl extends ServiceImpl implements IBusPlanDocAssociationService { + + private final BusPlanDocAssociationMapper baseMapper; + + /** + * 查询物资-批次需求计划与采购单关联 + * + * @param id 主键 + * @return 物资-批次需求计划与采购单关联 + */ + @Override + public BusPlanDocAssociationVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询物资-批次需求计划与采购单关联列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资-批次需求计划与采购单关联分页列表 + */ + @Override + public TableDataInfo queryPageList(BusPlanDocAssociationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的物资-批次需求计划与采购单关联列表 + * + * @param bo 查询条件 + * @return 物资-批次需求计划与采购单关联列表 + */ + @Override + public List queryList(BusPlanDocAssociationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusPlanDocAssociationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusPlanDocAssociation::getId); + lqw.eq(bo.getProjectId() != null, BusPlanDocAssociation::getProjectId, bo.getProjectId()); + lqw.eq(bo.getPlanId() != null, BusPlanDocAssociation::getPlanId, bo.getPlanId()); + lqw.eq(bo.getDocId() != null, BusPlanDocAssociation::getDocId, bo.getDocId()); + return lqw; + } + + /** + * 新增物资-批次需求计划与采购单关联 + * + * @param bo 物资-批次需求计划与采购单关联 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusPlanDocAssociationBo bo) { + BusPlanDocAssociation add = MapstructUtils.convert(bo, BusPlanDocAssociation.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改物资-批次需求计划与采购单关联 + * + * @param bo 物资-批次需求计划与采购单关联 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusPlanDocAssociationBo bo) { + BusPlanDocAssociation update = MapstructUtils.convert(bo, BusPlanDocAssociation.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusPlanDocAssociation 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/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java new file mode 100644 index 00000000..d83a213b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseDocServiceImpl.java @@ -0,0 +1,177 @@ +package org.dromara.cailiaoshebei.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation; +import org.dromara.cailiaoshebei.service.IBusPlanDocAssociationService; +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseDocBo; +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseDocVo; +import org.dromara.cailiaoshebei.domain.BusPurchaseDoc; +import org.dromara.cailiaoshebei.mapper.BusPurchaseDocMapper; +import org.dromara.cailiaoshebei.service.IBusPurchaseDocService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 物资-采购联系单Service业务层处理 + * + * @author Lion Li + * @date 2025-08-13 + */ +@RequiredArgsConstructor +@Service +public class BusPurchaseDocServiceImpl extends ServiceImpl implements IBusPurchaseDocService { + + private final BusPurchaseDocMapper baseMapper; + + private final IBusPlanDocAssociationService planDocAssociationService; + + /** + * 查询物资-采购联系单 + * + * @param id 主键 + * @return 物资-采购联系单 + */ + @Override + public BusPurchaseDocVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询物资-采购联系单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资-采购联系单分页列表 + */ + @Override + public TableDataInfo queryPageList(BusPurchaseDocBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的物资-采购联系单列表 + * + * @param bo 查询条件 + * @return 物资-采购联系单列表 + */ + @Override + public List queryList(BusPurchaseDocBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusPurchaseDocBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusPurchaseDoc::getId); + lqw.eq(bo.getProjectId() != null, BusPurchaseDoc::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getDocCode()), BusPurchaseDoc::getDocCode, bo.getDocCode()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplier()), BusPurchaseDoc::getSupplier, bo.getSupplier()); + lqw.eq(StringUtils.isNotBlank(bo.getReason()), BusPurchaseDoc::getReason, bo.getReason()); + lqw.like(StringUtils.isNotBlank(bo.getName()), BusPurchaseDoc::getName, bo.getName()); + lqw.eq(bo.getArrivalDate() != null, BusPurchaseDoc::getArrivalDate, bo.getArrivalDate()); + lqw.eq(StringUtils.isNotBlank(bo.getDesignDirectorTel()), BusPurchaseDoc::getDesignDirectorTel, bo.getDesignDirectorTel()); + lqw.eq(StringUtils.isNotBlank(bo.getTechnicalDirectorTel()), BusPurchaseDoc::getTechnicalDirectorTel, bo.getTechnicalDirectorTel()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingAddress()), BusPurchaseDoc::getReceivingAddress, bo.getReceivingAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getContacts()), BusPurchaseDoc::getContacts, bo.getContacts()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectDirector()), BusPurchaseDoc::getProjectDirector, bo.getProjectDirector()); + lqw.eq(StringUtils.isNotBlank(bo.getPurchasingAgent()), BusPurchaseDoc::getPurchasingAgent, bo.getPurchasingAgent()); + lqw.eq(bo.getPreparedDate() != null, BusPurchaseDoc::getPreparedDate, bo.getPreparedDate()); + lqw.eq(StringUtils.isNotBlank(bo.getFeedbackUrl()), BusPurchaseDoc::getFeedbackUrl, bo.getFeedbackUrl()); + lqw.eq(StringUtils.isNotBlank(bo.getSigningUnit()), BusPurchaseDoc::getSigningUnit, bo.getSigningUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getSigningPerson()), BusPurchaseDoc::getSigningPerson, bo.getSigningPerson()); + lqw.eq(bo.getSigningDate() != null, BusPurchaseDoc::getSigningDate, bo.getSigningDate()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), BusPurchaseDoc::getStatus, bo.getStatus()); + return lqw; + } + + /** + * 新增物资-采购联系单 + * + * @param bo 物资-采购联系单 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(BusPurchaseDocBo bo) { + BusPurchaseDoc add = MapstructUtils.convert(bo, BusPurchaseDoc.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + //存入联系表 + if(CollectionUtil.isNotEmpty(bo.getAssociationList())){ + List convert = MapstructUtils.convert(bo.getAssociationList(), BusPlanDocAssociation.class); + convert.forEach(item -> { + item.setProjectId(add.getProjectId()); + item.setDocId(add.getId()); + }); + planDocAssociationService.saveBatch(convert); + } + return flag; + } + + /** + * 修改物资-采购联系单 + * + * @param bo 物资-采购联系单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusPurchaseDocBo bo) { + BusPurchaseDoc update = MapstructUtils.convert(bo, BusPurchaseDoc.class); + validEntityBeforeSave(update); + + planDocAssociationService.remove(Wrappers.lambdaQuery() + .eq(BusPlanDocAssociation::getProjectId, update.getProjectId()) + .eq(BusPlanDocAssociation::getDocId, update.getId())); + + if(CollectionUtil.isNotEmpty(bo.getAssociationList())){ + List convert = MapstructUtils.convert(bo.getAssociationList(), BusPlanDocAssociation.class); + convert.forEach(item -> { + item.setProjectId(update.getProjectId()); + item.setDocId(update.getId()); + }); + planDocAssociationService.saveBatch(convert); + } + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusPurchaseDoc 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/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseUserServiceImpl.java new file mode 100644 index 00000000..eeaf069f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusPurchaseUserServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.cailiaoshebei.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.cailiaoshebei.domain.bo.BusPurchaseUserBo; +import org.dromara.cailiaoshebei.domain.vo.BusPurchaseUserVo; +import org.dromara.cailiaoshebei.domain.BusPurchaseUser; +import org.dromara.cailiaoshebei.mapper.BusPurchaseUserMapper; +import org.dromara.cailiaoshebei.service.IBusPurchaseUserService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 物资采购人员Service业务层处理 + * + * @author Lion Li + * @date 2025-08-13 + */ +@RequiredArgsConstructor +@Service +public class BusPurchaseUserServiceImpl extends ServiceImpl + implements IBusPurchaseUserService { + + private final BusPurchaseUserMapper baseMapper; + + /** + * 查询物资采购人员 + * + * @param id 主键 + * @return 物资采购人员 + */ + @Override + public BusPurchaseUserVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询物资采购人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 物资采购人员分页列表 + */ + @Override + public TableDataInfo queryPageList(BusPurchaseUserBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的物资采购人员列表 + * + * @param bo 查询条件 + * @return 物资采购人员列表 + */ + @Override + public List queryList(BusPurchaseUserBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusPurchaseUserBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusPurchaseUser::getId); + lqw.eq(bo.getProjectId() != null, BusPurchaseUser::getProjectId, bo.getProjectId()); + lqw.eq(bo.getUserId() != null, BusPurchaseUser::getUserId, bo.getUserId()); + lqw.like(StringUtils.isNotBlank(bo.getUserName()), BusPurchaseUser::getUserName, bo.getUserName()); + return lqw; + } + + /** + * 新增物资采购人员 + * + * @param bo 物资采购人员 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusPurchaseUserBo bo) { + BusPurchaseUser add = MapstructUtils.convert(bo, BusPurchaseUser.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改物资采购人员 + * + * @param bo 物资采购人员 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusPurchaseUserBo bo) { + BusPurchaseUser update = MapstructUtils.convert(bo, BusPurchaseUser.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusPurchaseUser entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除物资采购人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public boolean addOrUpdate(BusPurchaseUserBo bo) { + BusPurchaseUser add = MapstructUtils.convert(bo, BusPurchaseUser.class); + return saveOrUpdate(add); + } + + @Override + public BusPurchaseUserVo getInfoByProject(Long projectId) { + return baseMapper.selectVoOne(Wrappers.lambdaQuery(BusPurchaseUser.class) + .eq(BusPurchaseUser::getProjectId, projectId).last("limit 1")); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/controller/MsgConfigController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/controller/MsgConfigController.java new file mode 100644 index 00000000..538c81a3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/controller/MsgConfigController.java @@ -0,0 +1,105 @@ +package org.dromara.message.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.message.domain.vo.MsgConfigVo; +import org.dromara.message.domain.bo.MsgConfigBo; +import org.dromara.message.service.IMsgConfigService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 消息配置 + * + * @author Lion Li + * @date 2025-08-13 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/message/config") +public class MsgConfigController extends BaseController { + + private final IMsgConfigService msgConfigService; + + /** + * 查询消息配置列表 + */ + @SaCheckPermission("message:config:list") + @GetMapping("/list") + public TableDataInfo list(MsgConfigBo bo, PageQuery pageQuery) { + return msgConfigService.queryPageList(bo, pageQuery); + } + + /** + * 导出消息配置列表 + */ + @SaCheckPermission("message:config:export") + @Log(title = "消息配置", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(MsgConfigBo bo, HttpServletResponse response) { + List list = msgConfigService.queryList(bo); + ExcelUtil.exportExcel(list, "消息配置", MsgConfigVo.class, response); + } + + /** + * 获取消息配置详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("message:config:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(msgConfigService.queryById(id)); + } + + /** + * 新增消息配置 + */ + @SaCheckPermission("message:config:add") + @Log(title = "消息配置", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody MsgConfigBo bo) { + return toAjax(msgConfigService.insertByBo(bo)); + } + + /** + * 修改消息配置 + */ + @SaCheckPermission("message:config:edit") + @Log(title = "消息配置", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody MsgConfigBo bo) { + return toAjax(msgConfigService.updateByBo(bo)); + } + + /** + * 删除消息配置 + * + * @param ids 主键串 + */ + @SaCheckPermission("message:config:remove") + @Log(title = "消息配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(msgConfigService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/MsgConfig.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/MsgConfig.java new file mode 100644 index 00000000..80525175 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/MsgConfig.java @@ -0,0 +1,61 @@ +package org.dromara.message.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 消息配置对象 msg_config + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("msg_config") +public class MsgConfig extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 消息名称 + */ + private Long msgName; + + /** + * 消息模板 + */ + private String msgContent; + + /** + * 消息标识 + */ + private String msgKey; + + /** + * 跳转路由 + */ + private String route; + + /** + * 通知人 + */ + private String userId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/bo/MsgConfigBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/bo/MsgConfigBo.java new file mode 100644 index 00000000..df85add0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/bo/MsgConfigBo.java @@ -0,0 +1,65 @@ +package org.dromara.message.domain.bo; + +import org.dromara.message.domain.MsgConfig; +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.*; + +/** + * 消息配置业务对象 msg_config + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = MsgConfig.class, reverseConvertGenerate = false) +public class MsgConfigBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目ID + */ + @NotNull(message = "项目ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 消息名称 + */ + @NotNull(message = "消息名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long msgName; + + /** + * 消息模板 + */ + @NotBlank(message = "消息模板不能为空", groups = { AddGroup.class, EditGroup.class }) + private String msgContent; + + /** + * 消息标识 + */ + @NotBlank(message = "消息标识不能为空", groups = { AddGroup.class, EditGroup.class }) + private String msgKey; + + /** + * 跳转路由 + */ + @NotBlank(message = "跳转路由不能为空", groups = { AddGroup.class, EditGroup.class }) + private String route; + + /** + * 通知人 + */ + private String userId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/vo/MsgConfigVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/vo/MsgConfigVo.java new file mode 100644 index 00000000..e56e6931 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/domain/vo/MsgConfigVo.java @@ -0,0 +1,74 @@ +package org.dromara.message.domain.vo; + +import org.dromara.message.domain.MsgConfig; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.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; + + + +/** + * 消息配置视图对象 msg_config + * + * @author Lion Li + * @date 2025-08-13 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = MsgConfig.class) +public class MsgConfigVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 消息名称 + */ + @ExcelProperty(value = "消息名称") + private Long msgName; + + /** + * 消息模板 + */ + @ExcelProperty(value = "消息模板") + private String msgContent; + + /** + * 消息标识 + */ + @ExcelProperty(value = "消息标识") + private String msgKey; + + /** + * 跳转路由 + */ + @ExcelProperty(value = "跳转路由") + private String route; + + /** + * 通知人 + */ + @ExcelProperty(value = "通知人") + private String userId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/mapper/MsgConfigMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/mapper/MsgConfigMapper.java new file mode 100644 index 00000000..063410c3 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/mapper/MsgConfigMapper.java @@ -0,0 +1,15 @@ +package org.dromara.message.mapper; + +import org.dromara.message.domain.MsgConfig; +import org.dromara.message.domain.vo.MsgConfigVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 消息配置Mapper接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface MsgConfigMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/service/IMsgConfigService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/service/IMsgConfigService.java new file mode 100644 index 00000000..ff1ec449 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/service/IMsgConfigService.java @@ -0,0 +1,70 @@ +package org.dromara.message.service; + +import org.dromara.message.domain.vo.MsgConfigVo; +import org.dromara.message.domain.bo.MsgConfigBo; +import org.dromara.message.domain.MsgConfig; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 消息配置Service接口 + * + * @author Lion Li + * @date 2025-08-13 + */ +public interface IMsgConfigService extends IService{ + + /** + * 查询消息配置 + * + * @param id 主键 + * @return 消息配置 + */ + MsgConfigVo queryById(Long id); + + /** + * 分页查询消息配置列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 消息配置分页列表 + */ + TableDataInfo queryPageList(MsgConfigBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的消息配置列表 + * + * @param bo 查询条件 + * @return 消息配置列表 + */ + List queryList(MsgConfigBo bo); + + /** + * 新增消息配置 + * + * @param bo 消息配置 + * @return 是否新增成功 + */ + Boolean insertByBo(MsgConfigBo bo); + + /** + * 修改消息配置 + * + * @param bo 消息配置 + * @return 是否修改成功 + */ + Boolean updateByBo(MsgConfigBo bo); + + /** + * 校验并批量删除消息配置信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/service/impl/MsgConfigServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/service/impl/MsgConfigServiceImpl.java new file mode 100644 index 00000000..edd51b2d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/message/service/impl/MsgConfigServiceImpl.java @@ -0,0 +1,136 @@ +package org.dromara.message.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.message.domain.bo.MsgConfigBo; +import org.dromara.message.domain.vo.MsgConfigVo; +import org.dromara.message.domain.MsgConfig; +import org.dromara.message.mapper.MsgConfigMapper; +import org.dromara.message.service.IMsgConfigService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 消息配置Service业务层处理 + * + * @author Lion Li + * @date 2025-08-13 + */ +@RequiredArgsConstructor +@Service +public class MsgConfigServiceImpl extends ServiceImpl implements IMsgConfigService { + + private final MsgConfigMapper baseMapper; + + /** + * 查询消息配置 + * + * @param id 主键 + * @return 消息配置 + */ + @Override + public MsgConfigVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询消息配置列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 消息配置分页列表 + */ + @Override + public TableDataInfo queryPageList(MsgConfigBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的消息配置列表 + * + * @param bo 查询条件 + * @return 消息配置列表 + */ + @Override + public List queryList(MsgConfigBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(MsgConfigBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(MsgConfig::getId); + lqw.eq(bo.getProjectId() != null, MsgConfig::getProjectId, bo.getProjectId()); + lqw.like(bo.getMsgName() != null, MsgConfig::getMsgName, bo.getMsgName()); + lqw.eq(StringUtils.isNotBlank(bo.getMsgContent()), MsgConfig::getMsgContent, bo.getMsgContent()); + lqw.eq(StringUtils.isNotBlank(bo.getMsgKey()), MsgConfig::getMsgKey, bo.getMsgKey()); + lqw.eq(StringUtils.isNotBlank(bo.getRoute()), MsgConfig::getRoute, bo.getRoute()); + lqw.eq(StringUtils.isNotBlank(bo.getUserId()), MsgConfig::getUserId, bo.getUserId()); + return lqw; + } + + /** + * 新增消息配置 + * + * @param bo 消息配置 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(MsgConfigBo bo) { + MsgConfig add = MapstructUtils.convert(bo, MsgConfig.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改消息配置 + * + * @param bo 消息配置 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(MsgConfigBo bo) { + MsgConfig update = MapstructUtils.convert(bo, MsgConfig.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(MsgConfig 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/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusMrpBaseMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusMrpBaseMapper.xml new file mode 100644 index 00000000..49e037b4 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusMrpBaseMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPlanDocAssociationMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPlanDocAssociationMapper.xml new file mode 100644 index 00000000..b4f19d7c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPlanDocAssociationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPurchaseDocMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPurchaseDocMapper.xml new file mode 100644 index 00000000..b052040b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPurchaseDocMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPurchaseUserMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPurchaseUserMapper.xml new file mode 100644 index 00000000..7268a849 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/cailiaoshebei/BusPurchaseUserMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/message/MsgConfigMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/message/MsgConfigMapper.xml new file mode 100644 index 00000000..3d3271ee --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/message/MsgConfigMapper.xml @@ -0,0 +1,7 @@ + + + + +