feat(oa): 新增送货单及工艺卡模块

- 新增送货单主表、明细表及相关业务逻辑
- 新增工艺卡主表、明细表及相关业务逻辑
- 实现完整的CRUD功能和数据校验
- 配置MyBatis映射文件和Excel导出支持
- 提供Controller接口用于前后端交互
This commit is contained in:
2025-12-08 16:54:23 +08:00
parent 7c9734f529
commit 7051de1fab
32 changed files with 2421 additions and 0 deletions

View File

@@ -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<OaDeliveryOrderVo> 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<OaDeliveryOrderVo> list = iOaDeliveryOrderService.queryList(bo);
ExcelUtil.exportExcel(list, "送货单主", OaDeliveryOrderVo.class, response);
}
/**
* 获取送货单主详细信息
*
* @param orderId 主键
*/
@GetMapping("/{orderId}")
public R<OaDeliveryOrderVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long orderId) {
return R.ok(iOaDeliveryOrderService.queryById(orderId));
}
/**
* 新增送货单主
*/
@Log(title = "送货单主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaDeliveryOrderBo bo) {
return toAjax(iOaDeliveryOrderService.insertByBo(bo));
}
/**
* 修改送货单主
*/
@Log(title = "送货单主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaDeliveryOrderBo bo) {
return toAjax(iOaDeliveryOrderService.updateByBo(bo));
}
/**
* 删除送货单主
*
* @param orderIds 主键串
*/
@Log(title = "送货单主", businessType = BusinessType.DELETE)
@DeleteMapping("/{orderIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] orderIds) {
return toAjax(iOaDeliveryOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true));
}
}

View File

@@ -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<OaDeliveryOrderDetailVo> 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<OaDeliveryOrderDetailVo> list = iOaDeliveryOrderDetailService.queryList(bo);
ExcelUtil.exportExcel(list, "送货单明细", OaDeliveryOrderDetailVo.class, response);
}
/**
* 获取送货单明细详细信息
*
* @param detailId 主键
*/
@GetMapping("/{detailId}")
public R<OaDeliveryOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long detailId) {
return R.ok(iOaDeliveryOrderDetailService.queryById(detailId));
}
/**
* 新增送货单明细
*/
@Log(title = "送货单明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaDeliveryOrderDetailBo bo) {
return toAjax(iOaDeliveryOrderDetailService.insertByBo(bo));
}
/**
* 修改送货单明细
*/
@Log(title = "送货单明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaDeliveryOrderDetailBo bo) {
return toAjax(iOaDeliveryOrderDetailService.updateByBo(bo));
}
/**
* 删除送货单明细
*
* @param detailIds 主键串
*/
@Log(title = "送货单明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{detailIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] detailIds) {
return toAjax(iOaDeliveryOrderDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true));
}
}

View File

@@ -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<OaProcessCardVo> 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<OaProcessCardVo> list = iOaProcessCardService.queryList(bo);
ExcelUtil.exportExcel(list, "工艺卡主", OaProcessCardVo.class, response);
}
/**
* 获取工艺卡主详细信息
*
* @param cardId 主键
*/
@GetMapping("/{cardId}")
public R<OaProcessCardVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long cardId) {
return R.ok(iOaProcessCardService.queryById(cardId));
}
/**
* 新增工艺卡主
*/
@Log(title = "工艺卡主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaProcessCardBo bo) {
return toAjax(iOaProcessCardService.insertByBo(bo));
}
/**
* 修改工艺卡主
*/
@Log(title = "工艺卡主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaProcessCardBo bo) {
return toAjax(iOaProcessCardService.updateByBo(bo));
}
/**
* 删除工艺卡主
*
* @param cardIds 主键串
*/
@Log(title = "工艺卡主", businessType = BusinessType.DELETE)
@DeleteMapping("/{cardIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] cardIds) {
return toAjax(iOaProcessCardService.deleteWithValidByIds(Arrays.asList(cardIds), true));
}
}

View File

@@ -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<OaProcessCardDetailVo> 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<OaProcessCardDetailVo> list = iOaProcessCardDetailService.queryList(bo);
ExcelUtil.exportExcel(list, "工艺卡明细", OaProcessCardDetailVo.class, response);
}
/**
* 获取工艺卡明细详细信息
*
* @param detailId 主键
*/
@GetMapping("/{detailId}")
public R<OaProcessCardDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long detailId) {
return R.ok(iOaProcessCardDetailService.queryById(detailId));
}
/**
* 新增工艺卡明细
*/
@Log(title = "工艺卡明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OaProcessCardDetailBo bo) {
return toAjax(iOaProcessCardDetailService.insertByBo(bo));
}
/**
* 修改工艺卡明细
*/
@Log(title = "工艺卡明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OaProcessCardDetailBo bo) {
return toAjax(iOaProcessCardDetailService.updateByBo(bo));
}
/**
* 删除工艺卡明细
*
* @param detailIds 主键串
*/
@Log(title = "工艺卡明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{detailIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] detailIds) {
return toAjax(iOaProcessCardDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true));
}
}

View File

@@ -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;
}

View File

@@ -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³单位
*/
private BigDecimal volume;
/**
* 箱件尺寸Excel箱件尺寸/mm长××2000*1200*600
*/
private String boxSize;
/**
* 明细备注Excel备注内含并柜板螺丝、在炉台风柜内
*/
private String detailRemark;
/**
* 删除标志0未删除1已删除
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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³单位
*/
private BigDecimal volume;
/**
* 箱件尺寸Excel箱件尺寸/mm长××2000*1200*600
*/
private String boxSize;
/**
* 明细备注Excel备注内含并柜板螺丝、在炉台风柜内
*/
private String detailRemark;
/**
* 备注
*/
private String remark;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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³单位
*/
@ExcelProperty(value = "体积", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "E=xcel体积/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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<OaDeliveryOrderDetailMapper, OaDeliveryOrderDetail, OaDeliveryOrderDetailVo> {
}

View File

@@ -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<OaDeliveryOrderMapper, OaDeliveryOrder, OaDeliveryOrderVo> {
}

View File

@@ -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<OaProcessCardDetailMapper, OaProcessCardDetail, OaProcessCardDetailVo> {
}

View File

@@ -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<OaProcessCardMapper, OaProcessCard, OaProcessCardVo> {
}

View File

@@ -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<OaDeliveryOrderDetailVo> queryPageList(OaDeliveryOrderDetailBo bo, PageQuery pageQuery);
/**
* 查询送货单明细列表
*/
List<OaDeliveryOrderDetailVo> queryList(OaDeliveryOrderDetailBo bo);
/**
* 新增送货单明细
*/
Boolean insertByBo(OaDeliveryOrderDetailBo bo);
/**
* 修改送货单明细
*/
Boolean updateByBo(OaDeliveryOrderDetailBo bo);
/**
* 校验并批量删除送货单明细信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -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<OaDeliveryOrderVo> queryPageList(OaDeliveryOrderBo bo, PageQuery pageQuery);
/**
* 查询送货单主列表
*/
List<OaDeliveryOrderVo> queryList(OaDeliveryOrderBo bo);
/**
* 新增送货单主
*/
Boolean insertByBo(OaDeliveryOrderBo bo);
/**
* 修改送货单主
*/
Boolean updateByBo(OaDeliveryOrderBo bo);
/**
* 校验并批量删除送货单主信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -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<OaProcessCardDetailVo> queryPageList(OaProcessCardDetailBo bo, PageQuery pageQuery);
/**
* 查询工艺卡明细列表
*/
List<OaProcessCardDetailVo> queryList(OaProcessCardDetailBo bo);
/**
* 新增工艺卡明细
*/
Boolean insertByBo(OaProcessCardDetailBo bo);
/**
* 修改工艺卡明细
*/
Boolean updateByBo(OaProcessCardDetailBo bo);
/**
* 校验并批量删除工艺卡明细信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -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<OaProcessCardVo> queryPageList(OaProcessCardBo bo, PageQuery pageQuery);
/**
* 查询工艺卡主列表
*/
List<OaProcessCardVo> queryList(OaProcessCardBo bo);
/**
* 新增工艺卡主
*/
Boolean insertByBo(OaProcessCardBo bo);
/**
* 修改工艺卡主
*/
Boolean updateByBo(OaProcessCardBo bo);
/**
* 校验并批量删除工艺卡主信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -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<OaDeliveryOrderDetailVo> queryPageList(OaDeliveryOrderDetailBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<OaDeliveryOrderDetail> lqw = buildQueryWrapper(bo);
Page<OaDeliveryOrderDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询送货单明细列表
*/
@Override
public List<OaDeliveryOrderDetailVo> queryList(OaDeliveryOrderDetailBo bo) {
LambdaQueryWrapper<OaDeliveryOrderDetail> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<OaDeliveryOrderDetail> buildQueryWrapper(OaDeliveryOrderDetailBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<OaDeliveryOrderDetail> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -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<OaDeliveryOrderVo> queryPageList(OaDeliveryOrderBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<OaDeliveryOrder> lqw = buildQueryWrapper(bo);
Page<OaDeliveryOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询送货单主列表
*/
@Override
public List<OaDeliveryOrderVo> queryList(OaDeliveryOrderBo bo) {
LambdaQueryWrapper<OaDeliveryOrder> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<OaDeliveryOrder> buildQueryWrapper(OaDeliveryOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<OaDeliveryOrder> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -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<OaProcessCardDetailVo> queryPageList(OaProcessCardDetailBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<OaProcessCardDetail> lqw = buildQueryWrapper(bo);
Page<OaProcessCardDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询工艺卡明细列表
*/
@Override
public List<OaProcessCardDetailVo> queryList(OaProcessCardDetailBo bo) {
LambdaQueryWrapper<OaProcessCardDetail> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<OaProcessCardDetail> buildQueryWrapper(OaProcessCardDetailBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<OaProcessCardDetail> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -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<OaProcessCardVo> queryPageList(OaProcessCardBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<OaProcessCard> lqw = buildQueryWrapper(bo);
Page<OaProcessCardVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询工艺卡主列表
*/
@Override
public List<OaProcessCardVo> queryList(OaProcessCardBo bo) {
LambdaQueryWrapper<OaProcessCard> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<OaProcessCard> buildQueryWrapper(OaProcessCardBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<OaProcessCard> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.oa.mapper.OaDeliveryOrderDetailMapper">
<resultMap type="com.ruoyi.oa.domain.OaDeliveryOrderDetail" id="OaDeliveryOrderDetailResult">
<result property="detailId" column="detail_id"/>
<result property="orderId" column="order_id"/>
<result property="sequence" column="sequence"/>
<result property="boxNoTotal" column="box_no_total"/>
<result property="equipmentStationNo" column="equipment_station_no"/>
<result property="equipmentName" column="equipment_name"/>
<result property="modelSpec" column="model_spec"/>
<result property="quantity" column="quantity"/>
<result property="unit" column="unit"/>
<result property="packagingType" column="packaging_type"/>
<result property="netWeight" column="net_weight"/>
<result property="grossWeight" column="gross_weight"/>
<result property="volume" column="volume"/>
<result property="boxSize" column="box_size"/>
<result property="detailRemark" column="detail_remark"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.oa.mapper.OaDeliveryOrderMapper">
<resultMap type="com.ruoyi.oa.domain.OaDeliveryOrder" id="OaDeliveryOrderResult">
<result property="orderId" column="order_id"/>
<result property="deliveryOrderNo" column="delivery_order_no"/>
<result property="projectId" column="project_id"/>
<result property="contractNo" column="contract_no"/>
<result property="userContractNo" column="user_contract_no"/>
<result property="procurementNo" column="procurement_no"/>
<result property="deliveryDestination" column="delivery_destination"/>
<result property="deliveryAddress" column="delivery_address"/>
<result property="receiver" column="receiver"/>
<result property="receiverPhone" column="receiver_phone"/>
<result property="supplierFullname" column="supplier_fullname"/>
<result property="supplierContact" column="supplier_contact"/>
<result property="supplierPhone" column="supplier_phone"/>
<result property="receivingCompany" column="receiving_company"/>
<result property="actualReceiver" column="actual_receiver"/>
<result property="constructionCompany" column="construction_company"/>
<result property="deliveryRemark" column="delivery_remark"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.oa.mapper.OaProcessCardDetailMapper">
<resultMap type="com.ruoyi.oa.domain.OaProcessCardDetail" id="OaProcessCardDetailResult">
<result property="detailId" column="detail_id"/>
<result property="cardId" column="card_id"/>
<result property="sequence" column="sequence"/>
<result property="processName" column="process_name"/>
<result property="processDetail" column="process_detail"/>
<result property="workResponsiblePerson" column="work_responsible_person"/>
<result property="processStartTime" column="process_start_time"/>
<result property="processEndTime" column="process_end_time"/>
<result property="inspector" column="inspector"/>
<result property="unqualifiedContent" column="unqualified_content"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.oa.mapper.OaProcessCardMapper">
<resultMap type="com.ruoyi.oa.domain.OaProcessCard" id="OaProcessCardResult">
<result property="cardId" column="card_id"/>
<result property="projectId" column="project_id"/>
<result property="equipmentName" column="equipment_name"/>
<result property="equipmentQuantity" column="equipment_quantity"/>
<result property="manufacturingLeader" column="manufacturing_leader"/>
<result property="operationLeader" column="operation_leader"/>
<result property="plannedDeliveryDate" column="planned_delivery_date"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>