From 7051de1fabfef251f50e49761fbc23069ee12511 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 8 Dec 2025 16:54:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=96=B0=E5=A2=9E=E9=80=81?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E5=8F=8A=E5=B7=A5=E8=89=BA=E5=8D=A1=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增送货单主表、明细表及相关业务逻辑 - 新增工艺卡主表、明细表及相关业务逻辑 - 实现完整的CRUD功能和数据校验 - 配置MyBatis映射文件和Excel导出支持 - 提供Controller接口用于前后端交互 --- .../controller/OaDeliveryOrderController.java | 101 +++++++++++++ .../OaDeliveryOrderDetailController.java | 101 +++++++++++++ .../controller/OaProcessCardController.java | 101 +++++++++++++ .../OaProcessCardDetailController.java | 101 +++++++++++++ .../com/ruoyi/oa/domain/OaDeliveryOrder.java | 104 ++++++++++++++ .../oa/domain/OaDeliveryOrderDetail.java | 97 +++++++++++++ .../com/ruoyi/oa/domain/OaProcessCard.java | 66 +++++++++ .../ruoyi/oa/domain/OaProcessCardDetail.java | 78 ++++++++++ .../ruoyi/oa/domain/bo/OaDeliveryOrderBo.java | 115 +++++++++++++++ .../oa/domain/bo/OaDeliveryOrderDetailBo.java | 106 ++++++++++++++ .../ruoyi/oa/domain/bo/OaProcessCardBo.java | 67 +++++++++ .../oa/domain/bo/OaProcessCardDetailBo.java | 82 +++++++++++ .../oa/domain/vo/OaDeliveryOrderDetailVo.java | 135 ++++++++++++++++++ .../ruoyi/oa/domain/vo/OaDeliveryOrderVo.java | 134 +++++++++++++++++ .../oa/domain/vo/OaProcessCardDetailVo.java | 102 +++++++++++++ .../ruoyi/oa/domain/vo/OaProcessCardVo.java | 77 ++++++++++ .../mapper/OaDeliveryOrderDetailMapper.java | 15 ++ .../oa/mapper/OaDeliveryOrderMapper.java | 15 ++ .../oa/mapper/OaProcessCardDetailMapper.java | 15 ++ .../ruoyi/oa/mapper/OaProcessCardMapper.java | 15 ++ .../IOaDeliveryOrderDetailService.java | 49 +++++++ .../oa/service/IOaDeliveryOrderService.java | 49 +++++++ .../service/IOaProcessCardDetailService.java | 49 +++++++ .../oa/service/IOaProcessCardService.java | 49 +++++++ .../OaDeliveryOrderDetailServiceImpl.java | 123 ++++++++++++++++ .../impl/OaDeliveryOrderServiceImpl.java | 125 ++++++++++++++++ .../impl/OaProcessCardDetailServiceImpl.java | 118 +++++++++++++++ .../impl/OaProcessCardServiceImpl.java | 115 +++++++++++++++ .../mapper/oa/OaDeliveryOrderDetailMapper.xml | 32 +++++ .../mapper/oa/OaDeliveryOrderMapper.xml | 34 +++++ .../mapper/oa/OaProcessCardDetailMapper.xml | 27 ++++ .../mapper/oa/OaProcessCardMapper.xml | 24 ++++ 32 files changed, 2421 insertions(+) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderDetailController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardDetailController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrder.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrderDetail.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCard.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCardDetail.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderDetailBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardDetailBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderDetailVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardDetailVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderDetailMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardDetailMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderDetailService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardDetailService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderDetailServiceImpl.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardDetailServiceImpl.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderDetailMapper.xml create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderMapper.xml create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardDetailMapper.xml create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardMapper.xml diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderController.java new file mode 100644 index 0000000..a2cbdec --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderController.java @@ -0,0 +1,101 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderVo; +import com.ruoyi.oa.domain.bo.OaDeliveryOrderBo; +import com.ruoyi.oa.service.IOaDeliveryOrderService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 送货单主 + * + * @author ruoyi + * @date 2025-12-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/deliveryOrder") +public class OaDeliveryOrderController extends BaseController { + + private final IOaDeliveryOrderService iOaDeliveryOrderService; + + /** + * 查询送货单主列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaDeliveryOrderBo bo, PageQuery pageQuery) { + return iOaDeliveryOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出送货单主列表 + */ + @Log(title = "送货单主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaDeliveryOrderBo bo, HttpServletResponse response) { + List list = iOaDeliveryOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "送货单主", OaDeliveryOrderVo.class, response); + } + + /** + * 获取送货单主详细信息 + * + * @param orderId 主键 + */ + @GetMapping("/{orderId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long orderId) { + return R.ok(iOaDeliveryOrderService.queryById(orderId)); + } + + /** + * 新增送货单主 + */ + @Log(title = "送货单主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaDeliveryOrderBo bo) { + return toAjax(iOaDeliveryOrderService.insertByBo(bo)); + } + + /** + * 修改送货单主 + */ + @Log(title = "送货单主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaDeliveryOrderBo bo) { + return toAjax(iOaDeliveryOrderService.updateByBo(bo)); + } + + /** + * 删除送货单主 + * + * @param orderIds 主键串 + */ + @Log(title = "送货单主", businessType = BusinessType.DELETE) + @DeleteMapping("/{orderIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] orderIds) { + return toAjax(iOaDeliveryOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderDetailController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderDetailController.java new file mode 100644 index 0000000..eae8676 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaDeliveryOrderDetailController.java @@ -0,0 +1,101 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderDetailVo; +import com.ruoyi.oa.domain.bo.OaDeliveryOrderDetailBo; +import com.ruoyi.oa.service.IOaDeliveryOrderDetailService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 送货单明细 + * + * @author ruoyi + * @date 2025-12-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/deliveryOrderDetail") +public class OaDeliveryOrderDetailController extends BaseController { + + private final IOaDeliveryOrderDetailService iOaDeliveryOrderDetailService; + + /** + * 查询送货单明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaDeliveryOrderDetailBo bo, PageQuery pageQuery) { + return iOaDeliveryOrderDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出送货单明细列表 + */ + @Log(title = "送货单明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaDeliveryOrderDetailBo bo, HttpServletResponse response) { + List list = iOaDeliveryOrderDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "送货单明细", OaDeliveryOrderDetailVo.class, response); + } + + /** + * 获取送货单明细详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iOaDeliveryOrderDetailService.queryById(detailId)); + } + + /** + * 新增送货单明细 + */ + @Log(title = "送货单明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaDeliveryOrderDetailBo bo) { + return toAjax(iOaDeliveryOrderDetailService.insertByBo(bo)); + } + + /** + * 修改送货单明细 + */ + @Log(title = "送货单明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaDeliveryOrderDetailBo bo) { + return toAjax(iOaDeliveryOrderDetailService.updateByBo(bo)); + } + + /** + * 删除送货单明细 + * + * @param detailIds 主键串 + */ + @Log(title = "送货单明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iOaDeliveryOrderDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java new file mode 100644 index 0000000..5dc9203 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardController.java @@ -0,0 +1,101 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.OaProcessCardVo; +import com.ruoyi.oa.domain.bo.OaProcessCardBo; +import com.ruoyi.oa.service.IOaProcessCardService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 工艺卡主 + * + * @author ruoyi + * @date 2025-12-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/processCard") +public class OaProcessCardController extends BaseController { + + private final IOaProcessCardService iOaProcessCardService; + + /** + * 查询工艺卡主列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaProcessCardBo bo, PageQuery pageQuery) { + return iOaProcessCardService.queryPageList(bo, pageQuery); + } + + /** + * 导出工艺卡主列表 + */ + @Log(title = "工艺卡主", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaProcessCardBo bo, HttpServletResponse response) { + List list = iOaProcessCardService.queryList(bo); + ExcelUtil.exportExcel(list, "工艺卡主", OaProcessCardVo.class, response); + } + + /** + * 获取工艺卡主详细信息 + * + * @param cardId 主键 + */ + @GetMapping("/{cardId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long cardId) { + return R.ok(iOaProcessCardService.queryById(cardId)); + } + + /** + * 新增工艺卡主 + */ + @Log(title = "工艺卡主", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaProcessCardBo bo) { + return toAjax(iOaProcessCardService.insertByBo(bo)); + } + + /** + * 修改工艺卡主 + */ + @Log(title = "工艺卡主", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaProcessCardBo bo) { + return toAjax(iOaProcessCardService.updateByBo(bo)); + } + + /** + * 删除工艺卡主 + * + * @param cardIds 主键串 + */ + @Log(title = "工艺卡主", businessType = BusinessType.DELETE) + @DeleteMapping("/{cardIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] cardIds) { + return toAjax(iOaProcessCardService.deleteWithValidByIds(Arrays.asList(cardIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardDetailController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardDetailController.java new file mode 100644 index 0000000..5a313a8 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaProcessCardDetailController.java @@ -0,0 +1,101 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.core.validate.QueryGroup; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.oa.domain.vo.OaProcessCardDetailVo; +import com.ruoyi.oa.domain.bo.OaProcessCardDetailBo; +import com.ruoyi.oa.service.IOaProcessCardDetailService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 工艺卡明细 + * + * @author ruoyi + * @date 2025-12-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/processCardDetail") +public class OaProcessCardDetailController extends BaseController { + + private final IOaProcessCardDetailService iOaProcessCardDetailService; + + /** + * 查询工艺卡明细列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaProcessCardDetailBo bo, PageQuery pageQuery) { + return iOaProcessCardDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出工艺卡明细列表 + */ + @Log(title = "工艺卡明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaProcessCardDetailBo bo, HttpServletResponse response) { + List list = iOaProcessCardDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "工艺卡明细", OaProcessCardDetailVo.class, response); + } + + /** + * 获取工艺卡明细详细信息 + * + * @param detailId 主键 + */ + @GetMapping("/{detailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long detailId) { + return R.ok(iOaProcessCardDetailService.queryById(detailId)); + } + + /** + * 新增工艺卡明细 + */ + @Log(title = "工艺卡明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaProcessCardDetailBo bo) { + return toAjax(iOaProcessCardDetailService.insertByBo(bo)); + } + + /** + * 修改工艺卡明细 + */ + @Log(title = "工艺卡明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaProcessCardDetailBo bo) { + return toAjax(iOaProcessCardDetailService.updateByBo(bo)); + } + + /** + * 删除工艺卡明细 + * + * @param detailIds 主键串 + */ + @Log(title = "工艺卡明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{detailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] detailIds) { + return toAjax(iOaProcessCardDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrder.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrder.java new file mode 100644 index 0000000..caa334a --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrder.java @@ -0,0 +1,104 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 送货单主对象 oa_delivery_order + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_delivery_order") +public class OaDeliveryOrder extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "order_id") + private Long orderId; + /** + * 送货单号(Excel:工作表名,如:G031) + */ + private String deliveryOrderNo; + /** + * 项目ID + */ + private Long projectId; + /** + * 合同号 + */ + private String contractNo; + /** + * 用户合同号 + */ + private String userContractNo; + /** + * 采购合同号 + */ + private String procurementNo; + /** + * 送达目的地 + */ + private String deliveryDestination; + /** + * 送货地址 + */ + private String deliveryAddress; + /** + * 收货人 + */ + private String receiver; + /** + * 收货人联系电话 + */ + private String receiverPhone; + /** + * 供应商全称 + */ + private String supplierFullname; + /** + * 供应商联系人 + */ + private String supplierContact; + /** + * 供应商联系电话 + */ + private String supplierPhone; + /** + * 收货单位 + */ + private String receivingCompany; + /** + * 实际收货人 + */ + private String actualReceiver; + /** + * 施工单位 + */ + private String constructionCompany; + /** + * 送货备注 + */ + private String deliveryRemark; + /** + * 删除标志(0:未删除,1:已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrderDetail.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrderDetail.java new file mode 100644 index 0000000..3a1f258 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaDeliveryOrderDetail.java @@ -0,0 +1,97 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.math.BigDecimal; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 送货单明细对象 oa_delivery_order_detail + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_delivery_order_detail") +public class OaDeliveryOrderDetail extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "detail_id") + private Long detailId; + /** + * 送货单主表ID + */ + private Long orderId; + /** + * 序号(Excel:序号,如:1、2、3) + */ + private Long sequence; + /** + * 分箱编号/总箱件数(Excel:分箱编号/总箱件数) + */ + private String boxNoTotal; + /** + * 设备工位号(Excel:设备工位号) + */ + private String equipmentStationNo; + /** + * 设备名称(Excel:设备名称,如:炉台风机柜、进线柜) + */ + private String equipmentName; + /** + * 型号规格(Excel:型号规格,如:BAF+ES、BAF+EA) + */ + private String modelSpec; + /** + * 数量(Excel:数量,如:2、1、4) + */ + private Long quantity; + /** + * 单位(Excel:单位,如:台、个、包、箱) + */ + private String unit; + /** + * 包装形式(Excel:包装形式,如:简易包装) + */ + private String packagingType; + /** + * 净重(Excel:净重/kg,单位:kg) + */ + private BigDecimal netWeight; + /** + * 毛重(Excel:毛重/kg,单位:kg) + */ + private BigDecimal grossWeight; + /** + * 体积(Excel:体积/m³,单位:m³) + */ + private BigDecimal volume; + /** + * 箱件尺寸(Excel:箱件尺寸/mm长×宽×高,如:2000*1200*600) + */ + private String boxSize; + /** + * 明细备注(Excel:备注,如:内含并柜板螺丝、在炉台风柜内) + */ + private String detailRemark; + /** + * 删除标志(0:未删除,1:已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCard.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCard.java new file mode 100644 index 0000000..1654866 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCard.java @@ -0,0 +1,66 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工艺卡主对象 oa_process_card + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_process_card") +public class OaProcessCard extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "card_id") + private Long cardId; + /** + * 项目ID + */ + private Long projectId; + /** + * 设备名称(Excel:设备名称,如:调功柜) + */ + private String equipmentName; + /** + * 设备数量(Excel:数量,如:3) + */ + private Long equipmentQuantity; + /** + * 制造负责人 + */ + private String manufacturingLeader; + /** + * 作业负责人 + */ + private String operationLeader; + /** + * 计划交货日期 + */ + private Date plannedDeliveryDate; + /** + * 删除标志(0:未删除,1:已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCardDetail.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCardDetail.java new file mode 100644 index 0000000..c1588ee --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaProcessCardDetail.java @@ -0,0 +1,78 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工艺卡明细对象 oa_process_card_detail + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_process_card_detail") +public class OaProcessCardDetail extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * 主键ID + */ + @TableId(value = "detail_id") + private Long detailId; + /** + * 工艺卡主表ID(关联process_card_main.id) + */ + private Long cardId; + /** + * 序号(Excel:序号,如:1、2、3) + */ + private Long sequence; + /** + * 工序名称(Excel:工序,如:图纸设计、钣金安装) + */ + private String processName; + /** + * 工序详情(描述工序具体内容、操作要求、技术标准等) + */ + private String processDetail; + /** + * 作业责任人(该道工序的具体负责人,区别于主表的整体负责人) + */ + private String workResponsiblePerson; + /** + * 工序开始时间(该道工序的实际启动时间,每个明细独立记录) + */ + private Date processStartTime; + /** + * 工序结束时间(该道工序的实际完成时间,每个明细独立记录) + */ + private Date processEndTime; + /** + * 质检员(Excel:质检员) + */ + private String inspector; + /** + * 不合格内容(Excel:不合格内容) + */ + private String unqualifiedContent; + /** + * 删除标志(0:未删除,1:已删除) + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderBo.java new file mode 100644 index 0000000..e2ea02b --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderBo.java @@ -0,0 +1,115 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 送货单主业务对象 oa_delivery_order + * + * @author ruoyi + * @date 2025-12-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaDeliveryOrderBo extends BaseEntity { + + /** + * 主键ID + */ + private Long orderId; + + /** + * 送货单号(Excel:工作表名,如:G031) + */ + private String deliveryOrderNo; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 合同号 + */ + private String contractNo; + + /** + * 用户合同号 + */ + private String userContractNo; + + /** + * 采购合同号 + */ + private String procurementNo; + + /** + * 送达目的地 + */ + private String deliveryDestination; + + /** + * 送货地址 + */ + private String deliveryAddress; + + /** + * 收货人 + */ + private String receiver; + + /** + * 收货人联系电话 + */ + private String receiverPhone; + + /** + * 供应商全称 + */ + private String supplierFullname; + + /** + * 供应商联系人 + */ + private String supplierContact; + + /** + * 供应商联系电话 + */ + private String supplierPhone; + + /** + * 收货单位 + */ + private String receivingCompany; + + /** + * 实际收货人 + */ + private String actualReceiver; + + /** + * 施工单位 + */ + private String constructionCompany; + + /** + * 送货备注 + */ + private String deliveryRemark; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderDetailBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderDetailBo.java new file mode 100644 index 0000000..a0b7a67 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaDeliveryOrderDetailBo.java @@ -0,0 +1,106 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.math.BigDecimal; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 送货单明细业务对象 oa_delivery_order_detail + * + * @author ruoyi + * @date 2025-12-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaDeliveryOrderDetailBo extends BaseEntity { + + /** + * 主键ID + */ + private Long detailId; + + /** + * 送货单主表ID + */ + private Long orderId; + + /** + * 序号(Excel:序号,如:1、2、3) + */ + private Long sequence; + + /** + * 分箱编号/总箱件数(Excel:分箱编号/总箱件数) + */ + private String boxNoTotal; + + /** + * 设备工位号(Excel:设备工位号) + */ + private String equipmentStationNo; + + /** + * 设备名称(Excel:设备名称,如:炉台风机柜、进线柜) + */ + private String equipmentName; + + /** + * 型号规格(Excel:型号规格,如:BAF+ES、BAF+EA) + */ + private String modelSpec; + + /** + * 数量(Excel:数量,如:2、1、4) + */ + private Long quantity; + + /** + * 单位(Excel:单位,如:台、个、包、箱) + */ + private String unit; + + /** + * 包装形式(Excel:包装形式,如:简易包装) + */ + private String packagingType; + + /** + * 净重(Excel:净重/kg,单位:kg) + */ + private BigDecimal netWeight; + + /** + * 毛重(Excel:毛重/kg,单位:kg) + */ + private BigDecimal grossWeight; + + /** + * 体积(Excel:体积/m³,单位:m³) + */ + private BigDecimal volume; + + /** + * 箱件尺寸(Excel:箱件尺寸/mm长×宽×高,如:2000*1200*600) + */ + private String boxSize; + + /** + * 明细备注(Excel:备注,如:内含并柜板螺丝、在炉台风柜内) + */ + private String detailRemark; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardBo.java new file mode 100644 index 0000000..68ba2aa --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardBo.java @@ -0,0 +1,67 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工艺卡主业务对象 oa_process_card + * + * @author ruoyi + * @date 2025-12-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaProcessCardBo extends BaseEntity { + + /** + * 主键ID + */ + private Long cardId; + + /** + * 项目ID + */ + private Long projectId; + + /** + * 设备名称(Excel:设备名称,如:调功柜) + */ + private String equipmentName; + + /** + * 设备数量(Excel:数量,如:3) + */ + private Long equipmentQuantity; + + /** + * 制造负责人 + */ + private String manufacturingLeader; + + /** + * 作业负责人 + */ + private String operationLeader; + + /** + * 计划交货日期 + */ + private Date plannedDeliveryDate; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardDetailBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardDetailBo.java new file mode 100644 index 0000000..9a233aa --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProcessCardDetailBo.java @@ -0,0 +1,82 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 工艺卡明细业务对象 oa_process_card_detail + * + * @author ruoyi + * @date 2025-12-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaProcessCardDetailBo extends BaseEntity { + + /** + * 主键ID + */ + private Long detailId; + + /** + * 工艺卡主表ID(关联process_card_main.id) + */ + private Long cardId; + + /** + * 序号(Excel:序号,如:1、2、3) + */ + private Long sequence; + + /** + * 工序名称(Excel:工序,如:图纸设计、钣金安装) + */ + private String processName; + + /** + * 工序详情(描述工序具体内容、操作要求、技术标准等) + */ + private String processDetail; + + /** + * 作业责任人(该道工序的具体负责人,区别于主表的整体负责人) + */ + private String workResponsiblePerson; + + /** + * 工序开始时间(该道工序的实际启动时间,每个明细独立记录) + */ + private Date processStartTime; + + /** + * 工序结束时间(该道工序的实际完成时间,每个明细独立记录) + */ + private Date processEndTime; + + /** + * 质检员(Excel:质检员) + */ + private String inspector; + + /** + * 不合格内容(Excel:不合格内容) + */ + private String unqualifiedContent; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderDetailVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderDetailVo.java new file mode 100644 index 0000000..a9dbcd3 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderDetailVo.java @@ -0,0 +1,135 @@ +package com.ruoyi.oa.domain.vo; + +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 送货单明细视图对象 oa_delivery_order_detail + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaDeliveryOrderDetailVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long detailId; + + /** + * 送货单主表ID + */ + @ExcelProperty(value = "送货单主表ID") + private Long orderId; + + /** + * 序号(Excel:序号,如:1、2、3) + */ + @ExcelProperty(value = "序号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:序号,如:1、2、3") + private Long sequence; + + /** + * 分箱编号/总箱件数(Excel:分箱编号/总箱件数) + */ + @ExcelProperty(value = "分箱编号/总箱件数", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:分箱编号/总箱件数") + private String boxNoTotal; + + /** + * 设备工位号(Excel:设备工位号) + */ + @ExcelProperty(value = "设备工位号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:设备工位号") + private String equipmentStationNo; + + /** + * 设备名称(Excel:设备名称,如:炉台风机柜、进线柜) + */ + @ExcelProperty(value = "设备名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:设备名称,如:炉台风机柜、进线柜") + private String equipmentName; + + /** + * 型号规格(Excel:型号规格,如:BAF+ES、BAF+EA) + */ + @ExcelProperty(value = "型号规格", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:型号规格,如:BAF+ES、BAF+EA") + private String modelSpec; + + /** + * 数量(Excel:数量,如:2、1、4) + */ + @ExcelProperty(value = "数量", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:数量,如:2、1、4") + private Long quantity; + + /** + * 单位(Excel:单位,如:台、个、包、箱) + */ + @ExcelProperty(value = "单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:单位,如:台、个、包、箱") + private String unit; + + /** + * 包装形式(Excel:包装形式,如:简易包装) + */ + @ExcelProperty(value = "包装形式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:包装形式,如:简易包装") + private String packagingType; + + /** + * 净重(Excel:净重/kg,单位:kg) + */ + @ExcelProperty(value = "净重", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:净重/kg,单位:kg") + private BigDecimal netWeight; + + /** + * 毛重(Excel:毛重/kg,单位:kg) + */ + @ExcelProperty(value = "毛重", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:毛重/kg,单位:kg") + private BigDecimal grossWeight; + + /** + * 体积(Excel:体积/m³,单位:m³) + */ + @ExcelProperty(value = "体积", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:体积/m³,单位:m³") + private BigDecimal volume; + + /** + * 箱件尺寸(Excel:箱件尺寸/mm长×宽×高,如:2000*1200*600) + */ + @ExcelProperty(value = "箱件尺寸", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:箱件尺寸/mm长×宽×高,如:2000*1200*600") + private String boxSize; + + /** + * 明细备注(Excel:备注,如:内含并柜板螺丝、在炉台风柜内) + */ + @ExcelProperty(value = "明细备注", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:备注,如:内含并柜板螺丝、在炉台风柜内") + private String detailRemark; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderVo.java new file mode 100644 index 0000000..43b6927 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaDeliveryOrderVo.java @@ -0,0 +1,134 @@ +package com.ruoyi.oa.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 送货单主视图对象 oa_delivery_order + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaDeliveryOrderVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long orderId; + + /** + * 送货单号(Excel:工作表名,如:G031) + */ + @ExcelProperty(value = "送货单号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:工作表名,如:G031") + private String deliveryOrderNo; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 合同号 + */ + @ExcelProperty(value = "合同号") + private String contractNo; + + /** + * 用户合同号 + */ + @ExcelProperty(value = "用户合同号") + private String userContractNo; + + /** + * 采购合同号 + */ + @ExcelProperty(value = "采购合同号") + private String procurementNo; + + /** + * 送达目的地 + */ + @ExcelProperty(value = "送达目的地") + private String deliveryDestination; + + /** + * 送货地址 + */ + @ExcelProperty(value = "送货地址") + private String deliveryAddress; + + /** + * 收货人 + */ + @ExcelProperty(value = "收货人") + private String receiver; + + /** + * 收货人联系电话 + */ + @ExcelProperty(value = "收货人联系电话") + private String receiverPhone; + + /** + * 供应商全称 + */ + @ExcelProperty(value = "供应商全称") + private String supplierFullname; + + /** + * 供应商联系人 + */ + @ExcelProperty(value = "供应商联系人") + private String supplierContact; + + /** + * 供应商联系电话 + */ + @ExcelProperty(value = "供应商联系电话") + private String supplierPhone; + + /** + * 收货单位 + */ + @ExcelProperty(value = "收货单位") + private String receivingCompany; + + /** + * 实际收货人 + */ + @ExcelProperty(value = "实际收货人") + private String actualReceiver; + + /** + * 施工单位 + */ + @ExcelProperty(value = "施工单位") + private String constructionCompany; + + /** + * 送货备注 + */ + @ExcelProperty(value = "送货备注") + private String deliveryRemark; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardDetailVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardDetailVo.java new file mode 100644 index 0000000..9aa2e05 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardDetailVo.java @@ -0,0 +1,102 @@ +package com.ruoyi.oa.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 工艺卡明细视图对象 oa_process_card_detail + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaProcessCardDetailVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long detailId; + + /** + * 工艺卡主表ID(关联process_card_main.id) + */ + @ExcelProperty(value = "工艺卡主表ID", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "关=联process_card_main.id") + private Long cardId; + + /** + * 序号(Excel:序号,如:1、2、3) + */ + @ExcelProperty(value = "序号", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:序号,如:1、2、3") + private Long sequence; + + /** + * 工序名称(Excel:工序,如:图纸设计、钣金安装) + */ + @ExcelProperty(value = "工序名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:工序,如:图纸设计、钣金安装") + private String processName; + + /** + * 工序详情(描述工序具体内容、操作要求、技术标准等) + */ + @ExcelProperty(value = "工序详情", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "描=述工序具体内容、操作要求、技术标准等") + private String processDetail; + + /** + * 作业责任人(该道工序的具体负责人,区别于主表的整体负责人) + */ + @ExcelProperty(value = "作业责任人", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "该=道工序的具体负责人,区别于主表的整体负责人") + private String workResponsiblePerson; + + /** + * 工序开始时间(该道工序的实际启动时间,每个明细独立记录) + */ + @ExcelProperty(value = "工序开始时间", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "该=道工序的实际启动时间,每个明细独立记录") + private Date processStartTime; + + /** + * 工序结束时间(该道工序的实际完成时间,每个明细独立记录) + */ + @ExcelProperty(value = "工序结束时间", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "该=道工序的实际完成时间,每个明细独立记录") + private Date processEndTime; + + /** + * 质检员(Excel:质检员) + */ + @ExcelProperty(value = "质检员", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:质检员") + private String inspector; + + /** + * 不合格内容(Excel:不合格内容) + */ + @ExcelProperty(value = "不合格内容", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:不合格内容") + private String unqualifiedContent; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardVo.java new file mode 100644 index 0000000..6a0c370 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaProcessCardVo.java @@ -0,0 +1,77 @@ +package com.ruoyi.oa.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 工艺卡主视图对象 oa_process_card + * + * @author ruoyi + * @date 2025-12-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaProcessCardVo { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long cardId; + + /** + * 项目ID + */ + @ExcelProperty(value = "项目ID") + private Long projectId; + + /** + * 设备名称(Excel:设备名称,如:调功柜) + */ + @ExcelProperty(value = "设备名称", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:设备名称,如:调功柜") + private String equipmentName; + + /** + * 设备数量(Excel:数量,如:3) + */ + @ExcelProperty(value = "设备数量", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "E=xcel:数量,如:3") + private Long equipmentQuantity; + + /** + * 制造负责人 + */ + @ExcelProperty(value = "制造负责人") + private String manufacturingLeader; + + /** + * 作业负责人 + */ + @ExcelProperty(value = "作业负责人") + private String operationLeader; + + /** + * 计划交货日期 + */ + @ExcelProperty(value = "计划交货日期") + private Date plannedDeliveryDate; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderDetailMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderDetailMapper.java new file mode 100644 index 0000000..7f9eb0b --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderDetailMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaDeliveryOrderDetail; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderDetailVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 送货单明细Mapper接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface OaDeliveryOrderDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderMapper.java new file mode 100644 index 0000000..f02700e --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaDeliveryOrderMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaDeliveryOrder; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 送货单主Mapper接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface OaDeliveryOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardDetailMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardDetailMapper.java new file mode 100644 index 0000000..ce1e6b1 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardDetailMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaProcessCardDetail; +import com.ruoyi.oa.domain.vo.OaProcessCardDetailVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 工艺卡明细Mapper接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface OaProcessCardDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardMapper.java new file mode 100644 index 0000000..d3adc9d --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaProcessCardMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaProcessCard; +import com.ruoyi.oa.domain.vo.OaProcessCardVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 工艺卡主Mapper接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface OaProcessCardMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderDetailService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderDetailService.java new file mode 100644 index 0000000..40e9e71 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderDetailService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaDeliveryOrderDetail; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderDetailVo; +import com.ruoyi.oa.domain.bo.OaDeliveryOrderDetailBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 送货单明细Service接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface IOaDeliveryOrderDetailService { + + /** + * 查询送货单明细 + */ + OaDeliveryOrderDetailVo queryById(Long detailId); + + /** + * 查询送货单明细列表 + */ + TableDataInfo queryPageList(OaDeliveryOrderDetailBo bo, PageQuery pageQuery); + + /** + * 查询送货单明细列表 + */ + List queryList(OaDeliveryOrderDetailBo bo); + + /** + * 新增送货单明细 + */ + Boolean insertByBo(OaDeliveryOrderDetailBo bo); + + /** + * 修改送货单明细 + */ + Boolean updateByBo(OaDeliveryOrderDetailBo bo); + + /** + * 校验并批量删除送货单明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderService.java new file mode 100644 index 0000000..be97148 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaDeliveryOrderService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaDeliveryOrder; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderVo; +import com.ruoyi.oa.domain.bo.OaDeliveryOrderBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 送货单主Service接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface IOaDeliveryOrderService { + + /** + * 查询送货单主 + */ + OaDeliveryOrderVo queryById(Long orderId); + + /** + * 查询送货单主列表 + */ + TableDataInfo queryPageList(OaDeliveryOrderBo bo, PageQuery pageQuery); + + /** + * 查询送货单主列表 + */ + List queryList(OaDeliveryOrderBo bo); + + /** + * 新增送货单主 + */ + Boolean insertByBo(OaDeliveryOrderBo bo); + + /** + * 修改送货单主 + */ + Boolean updateByBo(OaDeliveryOrderBo bo); + + /** + * 校验并批量删除送货单主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardDetailService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardDetailService.java new file mode 100644 index 0000000..256e29f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardDetailService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaProcessCardDetail; +import com.ruoyi.oa.domain.vo.OaProcessCardDetailVo; +import com.ruoyi.oa.domain.bo.OaProcessCardDetailBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工艺卡明细Service接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface IOaProcessCardDetailService { + + /** + * 查询工艺卡明细 + */ + OaProcessCardDetailVo queryById(Long detailId); + + /** + * 查询工艺卡明细列表 + */ + TableDataInfo queryPageList(OaProcessCardDetailBo bo, PageQuery pageQuery); + + /** + * 查询工艺卡明细列表 + */ + List queryList(OaProcessCardDetailBo bo); + + /** + * 新增工艺卡明细 + */ + Boolean insertByBo(OaProcessCardDetailBo bo); + + /** + * 修改工艺卡明细 + */ + Boolean updateByBo(OaProcessCardDetailBo bo); + + /** + * 校验并批量删除工艺卡明细信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java new file mode 100644 index 0000000..673c87e --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaProcessCardService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaProcessCard; +import com.ruoyi.oa.domain.vo.OaProcessCardVo; +import com.ruoyi.oa.domain.bo.OaProcessCardBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工艺卡主Service接口 + * + * @author ruoyi + * @date 2025-12-08 + */ +public interface IOaProcessCardService { + + /** + * 查询工艺卡主 + */ + OaProcessCardVo queryById(Long cardId); + + /** + * 查询工艺卡主列表 + */ + TableDataInfo queryPageList(OaProcessCardBo bo, PageQuery pageQuery); + + /** + * 查询工艺卡主列表 + */ + List queryList(OaProcessCardBo bo); + + /** + * 新增工艺卡主 + */ + Boolean insertByBo(OaProcessCardBo bo); + + /** + * 修改工艺卡主 + */ + Boolean updateByBo(OaProcessCardBo bo); + + /** + * 校验并批量删除工艺卡主信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderDetailServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderDetailServiceImpl.java new file mode 100644 index 0000000..3f43f28 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderDetailServiceImpl.java @@ -0,0 +1,123 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaDeliveryOrderDetailBo; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderDetailVo; +import com.ruoyi.oa.domain.OaDeliveryOrderDetail; +import com.ruoyi.oa.mapper.OaDeliveryOrderDetailMapper; +import com.ruoyi.oa.service.IOaDeliveryOrderDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 送货单明细Service业务层处理 + * + * @author ruoyi + * @date 2025-12-08 + */ +@RequiredArgsConstructor +@Service +public class OaDeliveryOrderDetailServiceImpl implements IOaDeliveryOrderDetailService { + + private final OaDeliveryOrderDetailMapper baseMapper; + + /** + * 查询送货单明细 + */ + @Override + public OaDeliveryOrderDetailVo queryById(Long detailId){ + return baseMapper.selectVoById(detailId); + } + + /** + * 查询送货单明细列表 + */ + @Override + public TableDataInfo queryPageList(OaDeliveryOrderDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询送货单明细列表 + */ + @Override + public List queryList(OaDeliveryOrderDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaDeliveryOrderDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getOrderId() != null, OaDeliveryOrderDetail::getOrderId, bo.getOrderId()); + lqw.eq(bo.getSequence() != null, OaDeliveryOrderDetail::getSequence, bo.getSequence()); + lqw.eq(StringUtils.isNotBlank(bo.getBoxNoTotal()), OaDeliveryOrderDetail::getBoxNoTotal, bo.getBoxNoTotal()); + lqw.eq(StringUtils.isNotBlank(bo.getEquipmentStationNo()), OaDeliveryOrderDetail::getEquipmentStationNo, bo.getEquipmentStationNo()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), OaDeliveryOrderDetail::getEquipmentName, bo.getEquipmentName()); + lqw.eq(StringUtils.isNotBlank(bo.getModelSpec()), OaDeliveryOrderDetail::getModelSpec, bo.getModelSpec()); + lqw.eq(bo.getQuantity() != null, OaDeliveryOrderDetail::getQuantity, bo.getQuantity()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), OaDeliveryOrderDetail::getUnit, bo.getUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getPackagingType()), OaDeliveryOrderDetail::getPackagingType, bo.getPackagingType()); + lqw.eq(bo.getNetWeight() != null, OaDeliveryOrderDetail::getNetWeight, bo.getNetWeight()); + lqw.eq(bo.getGrossWeight() != null, OaDeliveryOrderDetail::getGrossWeight, bo.getGrossWeight()); + lqw.eq(bo.getVolume() != null, OaDeliveryOrderDetail::getVolume, bo.getVolume()); + lqw.eq(StringUtils.isNotBlank(bo.getBoxSize()), OaDeliveryOrderDetail::getBoxSize, bo.getBoxSize()); + lqw.eq(StringUtils.isNotBlank(bo.getDetailRemark()), OaDeliveryOrderDetail::getDetailRemark, bo.getDetailRemark()); + lqw.orderByDesc(OaDeliveryOrderDetail::getCreateTime); + return lqw; + } + + /** + * 新增送货单明细 + */ + @Override + public Boolean insertByBo(OaDeliveryOrderDetailBo bo) { + OaDeliveryOrderDetail add = BeanUtil.toBean(bo, OaDeliveryOrderDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDetailId(add.getDetailId()); + } + return flag; + } + + /** + * 修改送货单明细 + */ + @Override + public Boolean updateByBo(OaDeliveryOrderDetailBo bo) { + OaDeliveryOrderDetail update = BeanUtil.toBean(bo, OaDeliveryOrderDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaDeliveryOrderDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除送货单明细 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java new file mode 100644 index 0000000..f108e3d --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaDeliveryOrderServiceImpl.java @@ -0,0 +1,125 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaDeliveryOrderBo; +import com.ruoyi.oa.domain.vo.OaDeliveryOrderVo; +import com.ruoyi.oa.domain.OaDeliveryOrder; +import com.ruoyi.oa.mapper.OaDeliveryOrderMapper; +import com.ruoyi.oa.service.IOaDeliveryOrderService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 送货单主Service业务层处理 + * + * @author ruoyi + * @date 2025-12-08 + */ +@RequiredArgsConstructor +@Service +public class OaDeliveryOrderServiceImpl implements IOaDeliveryOrderService { + + private final OaDeliveryOrderMapper baseMapper; + + /** + * 查询送货单主 + */ + @Override + public OaDeliveryOrderVo queryById(Long orderId){ + return baseMapper.selectVoById(orderId); + } + + /** + * 查询送货单主列表 + */ + @Override + public TableDataInfo queryPageList(OaDeliveryOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询送货单主列表 + */ + @Override + public List queryList(OaDeliveryOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaDeliveryOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getDeliveryOrderNo()), OaDeliveryOrder::getDeliveryOrderNo, bo.getDeliveryOrderNo()); + lqw.eq(bo.getProjectId() != null, OaDeliveryOrder::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getContractNo()), OaDeliveryOrder::getContractNo, bo.getContractNo()); + lqw.eq(StringUtils.isNotBlank(bo.getUserContractNo()), OaDeliveryOrder::getUserContractNo, bo.getUserContractNo()); + lqw.eq(StringUtils.isNotBlank(bo.getProcurementNo()), OaDeliveryOrder::getProcurementNo, bo.getProcurementNo()); + lqw.eq(StringUtils.isNotBlank(bo.getDeliveryDestination()), OaDeliveryOrder::getDeliveryDestination, bo.getDeliveryDestination()); + lqw.eq(StringUtils.isNotBlank(bo.getDeliveryAddress()), OaDeliveryOrder::getDeliveryAddress, bo.getDeliveryAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getReceiver()), OaDeliveryOrder::getReceiver, bo.getReceiver()); + lqw.eq(StringUtils.isNotBlank(bo.getReceiverPhone()), OaDeliveryOrder::getReceiverPhone, bo.getReceiverPhone()); + lqw.like(StringUtils.isNotBlank(bo.getSupplierFullname()), OaDeliveryOrder::getSupplierFullname, bo.getSupplierFullname()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierContact()), OaDeliveryOrder::getSupplierContact, bo.getSupplierContact()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierPhone()), OaDeliveryOrder::getSupplierPhone, bo.getSupplierPhone()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingCompany()), OaDeliveryOrder::getReceivingCompany, bo.getReceivingCompany()); + lqw.eq(StringUtils.isNotBlank(bo.getActualReceiver()), OaDeliveryOrder::getActualReceiver, bo.getActualReceiver()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionCompany()), OaDeliveryOrder::getConstructionCompany, bo.getConstructionCompany()); + lqw.eq(StringUtils.isNotBlank(bo.getDeliveryRemark()), OaDeliveryOrder::getDeliveryRemark, bo.getDeliveryRemark()); + lqw.orderByDesc(OaDeliveryOrder::getCreateTime); + return lqw; + } + + /** + * 新增送货单主 + */ + @Override + public Boolean insertByBo(OaDeliveryOrderBo bo) { + OaDeliveryOrder add = BeanUtil.toBean(bo, OaDeliveryOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setOrderId(add.getOrderId()); + } + return flag; + } + + /** + * 修改送货单主 + */ + @Override + public Boolean updateByBo(OaDeliveryOrderBo bo) { + OaDeliveryOrder update = BeanUtil.toBean(bo, OaDeliveryOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaDeliveryOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除送货单主 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardDetailServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardDetailServiceImpl.java new file mode 100644 index 0000000..e4c0602 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardDetailServiceImpl.java @@ -0,0 +1,118 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaProcessCardDetailBo; +import com.ruoyi.oa.domain.vo.OaProcessCardDetailVo; +import com.ruoyi.oa.domain.OaProcessCardDetail; +import com.ruoyi.oa.mapper.OaProcessCardDetailMapper; +import com.ruoyi.oa.service.IOaProcessCardDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工艺卡明细Service业务层处理 + * + * @author ruoyi + * @date 2025-12-08 + */ +@RequiredArgsConstructor +@Service +public class OaProcessCardDetailServiceImpl implements IOaProcessCardDetailService { + + private final OaProcessCardDetailMapper baseMapper; + + /** + * 查询工艺卡明细 + */ + @Override + public OaProcessCardDetailVo queryById(Long detailId){ + return baseMapper.selectVoById(detailId); + } + + /** + * 查询工艺卡明细列表 + */ + @Override + public TableDataInfo queryPageList(OaProcessCardDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询工艺卡明细列表 + */ + @Override + public List queryList(OaProcessCardDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaProcessCardDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getCardId() != null, OaProcessCardDetail::getCardId, bo.getCardId()); + lqw.eq(bo.getSequence() != null, OaProcessCardDetail::getSequence, bo.getSequence()); + lqw.like(StringUtils.isNotBlank(bo.getProcessName()), OaProcessCardDetail::getProcessName, bo.getProcessName()); + lqw.eq(StringUtils.isNotBlank(bo.getProcessDetail()), OaProcessCardDetail::getProcessDetail, bo.getProcessDetail()); + lqw.eq(StringUtils.isNotBlank(bo.getWorkResponsiblePerson()), OaProcessCardDetail::getWorkResponsiblePerson, bo.getWorkResponsiblePerson()); + lqw.eq(bo.getProcessStartTime() != null, OaProcessCardDetail::getProcessStartTime, bo.getProcessStartTime()); + lqw.eq(bo.getProcessEndTime() != null, OaProcessCardDetail::getProcessEndTime, bo.getProcessEndTime()); + lqw.eq(StringUtils.isNotBlank(bo.getInspector()), OaProcessCardDetail::getInspector, bo.getInspector()); + lqw.eq(StringUtils.isNotBlank(bo.getUnqualifiedContent()), OaProcessCardDetail::getUnqualifiedContent, bo.getUnqualifiedContent()); + lqw.orderByDesc(OaProcessCardDetail::getCreateTime); + return lqw; + } + + /** + * 新增工艺卡明细 + */ + @Override + public Boolean insertByBo(OaProcessCardDetailBo bo) { + OaProcessCardDetail add = BeanUtil.toBean(bo, OaProcessCardDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setDetailId(add.getDetailId()); + } + return flag; + } + + /** + * 修改工艺卡明细 + */ + @Override + public Boolean updateByBo(OaProcessCardDetailBo bo) { + OaProcessCardDetail update = BeanUtil.toBean(bo, OaProcessCardDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaProcessCardDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除工艺卡明细 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java new file mode 100644 index 0000000..5c72b59 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProcessCardServiceImpl.java @@ -0,0 +1,115 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaProcessCardBo; +import com.ruoyi.oa.domain.vo.OaProcessCardVo; +import com.ruoyi.oa.domain.OaProcessCard; +import com.ruoyi.oa.mapper.OaProcessCardMapper; +import com.ruoyi.oa.service.IOaProcessCardService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工艺卡主Service业务层处理 + * + * @author ruoyi + * @date 2025-12-08 + */ +@RequiredArgsConstructor +@Service +public class OaProcessCardServiceImpl implements IOaProcessCardService { + + private final OaProcessCardMapper baseMapper; + + /** + * 查询工艺卡主 + */ + @Override + public OaProcessCardVo queryById(Long cardId){ + return baseMapper.selectVoById(cardId); + } + + /** + * 查询工艺卡主列表 + */ + @Override + public TableDataInfo queryPageList(OaProcessCardBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询工艺卡主列表 + */ + @Override + public List queryList(OaProcessCardBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaProcessCardBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getProjectId() != null, OaProcessCard::getProjectId, bo.getProjectId()); + lqw.like(StringUtils.isNotBlank(bo.getEquipmentName()), OaProcessCard::getEquipmentName, bo.getEquipmentName()); + lqw.eq(bo.getEquipmentQuantity() != null, OaProcessCard::getEquipmentQuantity, bo.getEquipmentQuantity()); + lqw.eq(StringUtils.isNotBlank(bo.getManufacturingLeader()), OaProcessCard::getManufacturingLeader, bo.getManufacturingLeader()); + lqw.eq(StringUtils.isNotBlank(bo.getOperationLeader()), OaProcessCard::getOperationLeader, bo.getOperationLeader()); + lqw.eq(bo.getPlannedDeliveryDate() != null, OaProcessCard::getPlannedDeliveryDate, bo.getPlannedDeliveryDate()); + lqw.orderByDesc(OaProcessCard::getCreateTime); + return lqw; + } + + /** + * 新增工艺卡主 + */ + @Override + public Boolean insertByBo(OaProcessCardBo bo) { + OaProcessCard add = BeanUtil.toBean(bo, OaProcessCard.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setCardId(add.getCardId()); + } + return flag; + } + + /** + * 修改工艺卡主 + */ + @Override + public Boolean updateByBo(OaProcessCardBo bo) { + OaProcessCard update = BeanUtil.toBean(bo, OaProcessCard.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaProcessCard entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除工艺卡主 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderDetailMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderDetailMapper.xml new file mode 100644 index 0000000..7701fe5 --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderDetailMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderMapper.xml new file mode 100644 index 0000000..8df4285 --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaDeliveryOrderMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardDetailMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardDetailMapper.xml new file mode 100644 index 0000000..d5745ff --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardDetailMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardMapper.xml new file mode 100644 index 0000000..29eed32 --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaProcessCardMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + +