From 09718780a7d6922b8ca1085f073313b00715223f Mon Sep 17 00:00:00 2001 From: zch Date: Fri, 10 Jan 2025 09:38:34 +0800 Subject: [PATCH 01/69] =?UTF-8?q?add(hwmom-wms):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=8F=8A=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=89=A9=E6=96=99=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsPurchaseOrderController.java | 117 ++++++++++++++ .../WmsPurchaseOrderDetailController.java | 117 ++++++++++++++ .../dromara/wms/domain/WmsPurchaseOrder.java | 93 +++++++++++ .../wms/domain/WmsPurchaseOrderDetail.java | 71 +++++++++ .../wms/domain/bo/WmsPurchaseOrderBo.java | 92 +++++++++++ .../domain/bo/WmsPurchaseOrderDetailBo.java | 72 +++++++++ .../domain/vo/WmsPurchaseOrderDetailVo.java | 98 ++++++++++++ .../wms/domain/vo/WmsPurchaseOrderVo.java | 146 ++++++++++++++++++ .../mapper/WmsPurchaseOrderDetailMapper.java | 15 ++ .../wms/mapper/WmsPurchaseOrderMapper.java | 15 ++ .../IWmsPurchaseOrderDetailService.java | 69 +++++++++ .../wms/service/IWmsPurchaseOrderService.java | 69 +++++++++ .../WmsPurchaseOrderDetailServiceImpl.java | 139 +++++++++++++++++ .../impl/WmsPurchaseOrderServiceImpl.java | 142 +++++++++++++++++ .../wms/WmsPurchaseOrderDetailMapper.xml | 7 + .../mapper/wms/WmsPurchaseOrderMapper.xml | 7 + 16 files changed, 1269 insertions(+) create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java new file mode 100644 index 0000000..f8f6569 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.wms.service.IWmsPurchaseOrderService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购订单 + * 前端访问路由地址为:/wms/wmsPurchaseOrder + * + * @author ZangCH + * @date 2025-01-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wmsPurchaseOrder") +public class WmsPurchaseOrderController extends BaseController { + + private final IWmsPurchaseOrderService wmsPurchaseOrderService; + + /** + * 查询采购订单列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:list") + @GetMapping("/list") + public TableDataInfo list(WmsPurchaseOrderBo bo, PageQuery pageQuery) { + return wmsPurchaseOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购订单列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:export") + @Log(title = "采购订单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPurchaseOrderBo bo, HttpServletResponse response) { + List list = wmsPurchaseOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "采购订单", WmsPurchaseOrderVo.class, response); + } + + /** + * 获取采购订单详细信息 + * + * @param poId 主键 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:query") + @GetMapping("/{poId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long poId) { + return R.ok(wmsPurchaseOrderService.queryById(poId)); + } + + /** + * 新增采购订单 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:add") + @Log(title = "采购订单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsPurchaseOrderBo bo) { + return toAjax(wmsPurchaseOrderService.insertByBo(bo)); + } + + /** + * 修改采购订单 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:edit") + @Log(title = "采购订单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPurchaseOrderBo bo) { + return toAjax(wmsPurchaseOrderService.updateByBo(bo)); + } + + /** + * 删除采购订单 + * + * @param poIds 主键串 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:remove") + @Log(title = "采购订单", businessType = BusinessType.DELETE) + @DeleteMapping("/{poIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] poIds) { + return toAjax(wmsPurchaseOrderService.deleteWithValidByIds(List.of(poIds), true)); + } + + + /** + * 下拉框查询采购订单列表 + */ + + @GetMapping("getWmsPurchaseOrderList") + public R> getWmsPurchaseOrderlist(WmsPurchaseOrderBo bo) { + List list = wmsPurchaseOrderService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java new file mode 100644 index 0000000..b53d4ac --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; +import org.dromara.wms.service.IWmsPurchaseOrderDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购订单-物料 + * 前端访问路由地址为:/wms/wmsPurchaseOrderDetail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wmsPurchaseOrderDetail") +public class WmsPurchaseOrderDetailController extends BaseController { + + private final IWmsPurchaseOrderDetailService wmsPurchaseOrderDetailService; + + /** + * 查询采购订单-物料列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsPurchaseOrderDetailBo bo, PageQuery pageQuery) { + return wmsPurchaseOrderDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购订单-物料列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:export") + @Log(title = "采购订单-物料", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPurchaseOrderDetailBo bo, HttpServletResponse response) { + List list = wmsPurchaseOrderDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "采购订单-物料", WmsPurchaseOrderDetailVo.class, response); + } + + /** + * 获取采购订单-物料详细信息 + * + * @param poDId 主键 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:query") + @GetMapping("/{poDId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long poDId) { + return R.ok(wmsPurchaseOrderDetailService.queryById(poDId)); + } + + /** + * 新增采购订单-物料 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:add") + @Log(title = "采购订单-物料", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsPurchaseOrderDetailBo bo) { + return toAjax(wmsPurchaseOrderDetailService.insertByBo(bo)); + } + + /** + * 修改采购订单-物料 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:edit") + @Log(title = "采购订单-物料", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPurchaseOrderDetailBo bo) { + return toAjax(wmsPurchaseOrderDetailService.updateByBo(bo)); + } + + /** + * 删除采购订单-物料 + * + * @param poDIds 主键串 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:remove") + @Log(title = "采购订单-物料", businessType = BusinessType.DELETE) + @DeleteMapping("/{poDIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] poDIds) { + return toAjax(wmsPurchaseOrderDetailService.deleteWithValidByIds(List.of(poDIds), true)); + } + + + /** + * 下拉框查询采购订单-物料列表 + */ + + @GetMapping("getWmsPurchaseOrderDetailList") + public R> getWmsPurchaseOrderDetaillist(WmsPurchaseOrderDetailBo bo) { + List list = wmsPurchaseOrderDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java new file mode 100644 index 0000000..a308aa1 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java @@ -0,0 +1,93 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 采购订单对象 wms_purchase_order + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_purchase_order") +public class WmsPurchaseOrder extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(value = "po_id", type = IdType.AUTO) + private Long poId; + + /** + * 订单编号 + */ + private String poNo; + + /** + * 订单状态(1待采购2部分到货3订单完成) + */ + private String poStatus; + + /** + * 计划交货日期 + */ + private String planDeliveryDate; + + /** + * 供应商ID + */ + private Long supplierId; + + /** + * 订单类型(1人工创建,2ERP同步,3后台创建4) + */ + private String poType; + + /** + * 单据的ID,连表扩充 + */ + private Long erpId; + + /** + * 备注 + */ + private String remark; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java new file mode 100644 index 0000000..ec57ccb --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java @@ -0,0 +1,71 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 采购订单-物料对象 wms_purchase_order_detail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_purchase_order_detail") +public class WmsPurchaseOrderDetail extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 采购物料表主键 + */ + @TableId(value = "po_d_id", type = IdType.AUTO) + private Long poDId; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 采购订单编号 + */ + private String poNo; + + /** + * 含税单价 + */ + private Long taxPrice; + + /** + * 采购数量 + */ + private Long purchaseQty; + + /** + * 物料规格 + */ + private String materialSpe; + + /** + * 计量单位名称 + */ + private String unitName; + + /** + * 送货数量=送货单数量=总入库数量 + */ + private Long deliveryQty; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java new file mode 100644 index 0000000..3387cd7 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java @@ -0,0 +1,92 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 采购订单业务对象 wms_purchase_order + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPurchaseOrder.class, reverseConvertGenerate = false) +public class WmsPurchaseOrderBo extends BaseEntity { + + /** + * 表主键 + */ + private Long poId; + + /** + * 订单编号 + */ + @NotBlank(message = "订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String poNo; + + /** + * 订单状态(1待采购2部分到货3订单完成) + */ + private String poStatus; + + /** + * 计划交货日期 + */ + private String planDeliveryDate; + + /** + * 供应商ID + */ + private Long supplierId; + + /** + * 订单类型(1人工创建,2ERP同步,3后台创建4) + */ + private String poType; + + /** + * 单据的ID,连表扩充 + */ + private Long erpId; + + /** + * 备注 + */ + private String remark; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java new file mode 100644 index 0000000..4ce6f39 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java @@ -0,0 +1,72 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 采购订单-物料业务对象 wms_purchase_order_detail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPurchaseOrderDetail.class, reverseConvertGenerate = false) +public class WmsPurchaseOrderDetailBo extends BaseEntity { + + /** + * 采购物料表主键 + */ + private Long poDId; + + /** + * 物料编码 + */ + @NotBlank(message = "物料编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialCode; + + /** + * 物料名称 + */ + @NotBlank(message = "物料名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialName; + + /** + * 采购订单编号 + */ + @NotBlank(message = "采购订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String poNo; + + /** + * 含税单价 + */ + private Long taxPrice; + + /** + * 采购数量 + */ + private Long purchaseQty; + + /** + * 物料规格 + */ + private String materialSpe; + + /** + * 计量单位名称 + */ + private String unitName; + + /** + * 送货数量=送货单数量=总入库数量 + */ + private Long deliveryQty; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java new file mode 100644 index 0000000..2c073e1 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java @@ -0,0 +1,98 @@ +package org.dromara.wms.domain.vo; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 采购订单-物料视图对象 wms_purchase_order_detail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPurchaseOrderDetail.class) +public class WmsPurchaseOrderDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 采购物料表主键 + */ + @ExcelProperty(value = "采购物料表主键") + private Long poDId; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 物料编码 + */ + @ExcelProperty(value = "物料编码") + private String materialCode; + + /** + * 物料名称 + */ + @ExcelProperty(value = "物料名称") + private String materialName; + + /** + * 采购订单编号 + */ + @ExcelProperty(value = "采购订单编号") + private String poNo; + + /** + * 含税单价 + */ + @ExcelProperty(value = "含税单价") + private Long taxPrice; + + /** + * 采购数量 + */ + @ExcelProperty(value = "采购数量") + private Long purchaseQty; + + /** + * 物料规格 + */ + @ExcelProperty(value = "物料规格") + private String materialSpe; + + /** + * 计量单位名称 + */ + @ExcelProperty(value = "计量单位名称") + private String unitName; + + /** + * 送货数量=送货单数量=总入库数量 + */ + @ExcelProperty(value = "送货数量=送货单数量=总入库数量") + private Long deliveryQty; + + /** + * 租户号 + */ + @ExcelProperty(value = "租户号") + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java new file mode 100644 index 0000000..109f8d3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java @@ -0,0 +1,146 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsPurchaseOrder; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 采购订单视图对象 wms_purchase_order + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPurchaseOrder.class) +public class WmsPurchaseOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long poId; + + /** + * 订单编号 + */ + @ExcelProperty(value = "订单编号") + private String poNo; + + /** + * 订单状态(1待采购2部分到货3订单完成) + */ + @ExcelProperty(value = "订单状态(1待采购2部分到货3订单完成)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_po_status") + private String poStatus; + + /** + * 计划交货日期 + */ + @ExcelProperty(value = "计划交货日期") + private String planDeliveryDate; + + /** + * 供应商ID + */ + @ExcelProperty(value = "供应商ID") + private Long supplierId; + + /** + * 订单类型(1人工创建,2ERP同步,3后台创建4) + */ + @ExcelProperty(value = "订单类型(1人工创建,2ERP同步,3后台创建4)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_po_type") + private String poType; + + /** + * 单据的ID,连表扩充 + */ + @ExcelProperty(value = "单据的ID,连表扩充") + private Long erpId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 租户号 + */ + @ExcelProperty(value = "租户号") + private String tenantId; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private String updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "material_mategories") + private String materialCategories; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_audit_status") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java new file mode 100644 index 0000000..8caae49 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购订单-物料Mapper接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface WmsPurchaseOrderDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java new file mode 100644 index 0000000..03fe892 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购订单Mapper接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface WmsPurchaseOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java new file mode 100644 index 0000000..021daa4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 采购订单-物料Service接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface IWmsPurchaseOrderDetailService { + + /** + * 查询采购订单-物料 + * + * @param poDId 主键 + * @return 采购订单-物料 + */ + WmsPurchaseOrderDetailVo queryById(Long poDId); + + /** + * 分页查询采购订单-物料列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单-物料分页列表 + */ + TableDataInfo queryPageList(WmsPurchaseOrderDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购订单-物料列表 + * + * @param bo 查询条件 + * @return 采购订单-物料列表 + */ + List queryList(WmsPurchaseOrderDetailBo bo); + + /** + * 新增采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPurchaseOrderDetailBo bo); + + /** + * 修改采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPurchaseOrderDetailBo bo); + + /** + * 校验并批量删除采购订单-物料信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java new file mode 100644 index 0000000..3a0adeb --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 采购订单Service接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface IWmsPurchaseOrderService { + + /** + * 查询采购订单 + * + * @param poId 主键 + * @return 采购订单 + */ + WmsPurchaseOrderVo queryById(Long poId); + + /** + * 分页查询采购订单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单分页列表 + */ + TableDataInfo queryPageList(WmsPurchaseOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购订单列表 + * + * @param bo 查询条件 + * @return 采购订单列表 + */ + List queryList(WmsPurchaseOrderBo bo); + + /** + * 新增采购订单 + * + * @param bo 采购订单 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPurchaseOrderBo bo); + + /** + * 修改采购订单 + * + * @param bo 采购订单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPurchaseOrderBo bo); + + /** + * 校验并批量删除采购订单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java new file mode 100644 index 0000000..967a0af --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.wms.mapper.WmsPurchaseOrderDetailMapper; +import org.dromara.wms.service.IWmsPurchaseOrderDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购订单-物料Service业务层处理 + * + * @author ZangCH + * @date 2025-01-08 + */ +@RequiredArgsConstructor +@Service +public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetailService { + + private final WmsPurchaseOrderDetailMapper baseMapper; + + /** + * 查询采购订单-物料 + * + * @param poDId 主键 + * @return 采购订单-物料 + */ + @Override + public WmsPurchaseOrderDetailVo queryById(Long poDId){ + return baseMapper.selectVoById(poDId); + } + + /** + * 分页查询采购订单-物料列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单-物料分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPurchaseOrderDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的采购订单-物料列表 + * + * @param bo 查询条件 + * @return 采购订单-物料列表 + */ + @Override + public List queryList(WmsPurchaseOrderDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPurchaseOrderDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPurchaseOrderDetail.class) + .selectAll(WmsPurchaseOrderDetail.class) + .eq(StringUtils.isNotBlank(bo.getMaterialCode()), WmsPurchaseOrderDetail::getMaterialCode, bo.getMaterialCode()) + .like(StringUtils.isNotBlank(bo.getMaterialName()), WmsPurchaseOrderDetail::getMaterialName, bo.getMaterialName()) + .eq(StringUtils.isNotBlank(bo.getPoNo()), WmsPurchaseOrderDetail::getPoNo, bo.getPoNo()) + .eq(bo.getTaxPrice() != null, WmsPurchaseOrderDetail::getTaxPrice, bo.getTaxPrice()) + .eq(bo.getPurchaseQty() != null, WmsPurchaseOrderDetail::getPurchaseQty, bo.getPurchaseQty()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPurchaseOrderDetail::getMaterialSpe, bo.getMaterialSpe()) + .like(StringUtils.isNotBlank(bo.getUnitName()), WmsPurchaseOrderDetail::getUnitName, bo.getUnitName()) + .eq(bo.getDeliveryQty() != null, WmsPurchaseOrderDetail::getDeliveryQty, bo.getDeliveryQty()) + .orderByDesc(WmsPurchaseOrderDetail::getCreateTime); + return lqw; + } + + /** + * 新增采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPurchaseOrderDetailBo bo) { + WmsPurchaseOrderDetail add = MapstructUtils.convert(bo, WmsPurchaseOrderDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPoDId(add.getPoDId()); + } + return flag; + } + + /** + * 修改采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPurchaseOrderDetailBo bo) { + WmsPurchaseOrderDetail update = MapstructUtils.convert(bo, WmsPurchaseOrderDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPurchaseOrderDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除采购订单-物料信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java new file mode 100644 index 0000000..316ceb1 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java @@ -0,0 +1,142 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.mapper.WmsPurchaseOrderMapper; +import org.dromara.wms.service.IWmsPurchaseOrderService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购订单Service业务层处理 + * + * @author ZangCH + * @date 2025-01-08 + */ +@RequiredArgsConstructor +@Service +public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { + + private final WmsPurchaseOrderMapper baseMapper; + + /** + * 查询采购订单 + * + * @param poId 主键 + * @return 采购订单 + */ + @Override + public WmsPurchaseOrderVo queryById(Long poId){ + return baseMapper.selectVoById(poId); + } + + /** + * 分页查询采购订单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPurchaseOrderBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的采购订单列表 + * + * @param bo 查询条件 + * @return 采购订单列表 + */ + @Override + public List queryList(WmsPurchaseOrderBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPurchaseOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPurchaseOrder.class) + .selectAll(WmsPurchaseOrder.class) + .eq(StringUtils.isNotBlank(bo.getPoNo()), WmsPurchaseOrder::getPoNo, bo.getPoNo()) + .eq(StringUtils.isNotBlank(bo.getPoStatus()), WmsPurchaseOrder::getPoStatus, bo.getPoStatus()) + .eq(StringUtils.isNotBlank(bo.getPlanDeliveryDate()), WmsPurchaseOrder::getPlanDeliveryDate, bo.getPlanDeliveryDate()) + .eq(bo.getSupplierId() != null, WmsPurchaseOrder::getSupplierId, bo.getSupplierId()) + .eq(StringUtils.isNotBlank(bo.getPoType()), WmsPurchaseOrder::getPoType, bo.getPoType()) + .eq(bo.getErpId() != null, WmsPurchaseOrder::getErpId, bo.getErpId()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsPurchaseOrder::getMaterialCategories, bo.getMaterialCategories()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsPurchaseOrder::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsPurchaseOrder::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsPurchaseOrder::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsPurchaseOrder::getAuditComments, bo.getAuditComments()) + .orderByDesc(WmsPurchaseOrder::getCreateTime); + return lqw; + } + + /** + * 新增采购订单 + * + * @param bo 采购订单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPurchaseOrderBo bo) { + WmsPurchaseOrder add = MapstructUtils.convert(bo, WmsPurchaseOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPoId(add.getPoId()); + } + return flag; + } + + /** + * 修改采购订单 + * + * @param bo 采购订单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPurchaseOrderBo bo) { + WmsPurchaseOrder update = MapstructUtils.convert(bo, WmsPurchaseOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPurchaseOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除采购订单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml new file mode 100644 index 0000000..7e403c8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml new file mode 100644 index 0000000..0550bad --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + From 6b7f7c443f4e338f0a7858d59c2450083bf54bb8 Mon Sep 17 00:00:00 2001 From: xs Date: Fri, 10 Jan 2025 15:09:15 +0800 Subject: [PATCH 02/69] =?UTF-8?q?1.1.0=20=E5=A2=9E=E5=8A=A0mom=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=80=9A=E7=94=A8=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/hwmom-common-mom/pom.xml | 37 +++ .../common/annotation/DataSyncPublish.java | 43 ++++ .../common/aspect/DataSyncPublishAspect.java | 215 ++++++++++++++++++ .../dromara/common/enums/OperatorType.java | 23 ++ .../common/event/DataSyncPublishEvent.java | 34 +++ .../common/event/DataSyncPublishListener.java | 29 +++ ruoyi-common/pom.xml | 1 + 7 files changed, 382 insertions(+) create mode 100644 ruoyi-common/hwmom-common-mom/pom.xml create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java diff --git a/ruoyi-common/hwmom-common-mom/pom.xml b/ruoyi-common/hwmom-common-mom/pom.xml new file mode 100644 index 0000000..ca5a8a7 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/pom.xml @@ -0,0 +1,37 @@ + + + + org.dromara + ruoyi-common + ${revision} + + 4.0.0 + + hwmom-common-mom + + + hwmom-common-mom 通用功能 + + + + + org.dromara + ruoyi-common-satoken + + + + org.dromara + ruoyi-common-json + + + + org.apache.dubbo + dubbo-spring-boot-starter + provided + + + + + diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java new file mode 100644 index 0000000..c7f8cdc --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java @@ -0,0 +1,43 @@ +package org.dromara.common.annotation; + +import org.dromara.common.enums.OperatorType; + +import java.lang.annotation.*; + +/** + * 自定义数据同步记录注解 + * + * @author xins + */ +@Target({ElementType.PARAMETER, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataSyncPublish { + /** + * 数据库表名称 + */ + String tableName() default ""; + + + /** + * 操作类型 + */ + OperatorType operatorType() default OperatorType.INSERT; + +// /** +// * 是否保存请求的参数 +// */ +// boolean isSaveRequestData() default true; +// +// /** +// * 是否保存响应的参数 +// */ +// boolean isSaveResponseData() default true; +// +// +// /** +// * 排除指定的请求参数 +// */ +// String[] excludeParamNames() default {}; + +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java new file mode 100644 index 0000000..61a925e --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java @@ -0,0 +1,215 @@ +package org.dromara.common.aspect; + +import cn.hutool.core.lang.Dict; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.StopWatch; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.dromara.common.annotation.DataSyncPublish; +import org.dromara.common.json.utils.JsonUtils; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.validation.BindingResult; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Collection; +import java.util.Map; +import java.util.StringJoiner; + +/** + * 数据同步记录处理 + * + * @author xins + */ +@Slf4j +@Aspect +@AutoConfiguration +public class DataSyncPublishAspect { + + /** + * 排除敏感属性字段 + */ + public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; + + + /** + * 计时 key + */ + private static final ThreadLocal KEY_CACHE = new ThreadLocal<>(); + + /** + * 处理请求前执行 + */ + @Before(value = "@annotation(dataSyncPublish)") + public void doBefore(JoinPoint joinPoint, DataSyncPublish dataSyncPublish) { + StopWatch stopWatch = new StopWatch(); + KEY_CACHE.set(stopWatch); + stopWatch.start(); + } + + /** + * 处理完请求后执行 + * + * @param joinPoint 切点 + */ + @AfterReturning(pointcut = "@annotation(dataSyncPublish)", returning = "jsonResult") + public void doAfterReturning(JoinPoint joinPoint, DataSyncPublish dataSyncPublish, Object jsonResult) { + handleDataSyncPublish(joinPoint, dataSyncPublish, null, jsonResult); + } + + /** + * 拦截异常操作 + * + * @param joinPoint 切点 + * @param e 异常 + */ + @AfterThrowing(value = "@annotation(dataSyncPublish)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, DataSyncPublish dataSyncPublish, Exception e) { + handleDataSyncPublish(joinPoint, dataSyncPublish, e, null); + } + + protected void handleDataSyncPublish(final JoinPoint joinPoint, DataSyncPublish dataSyncPublish, final Exception e, Object jsonResult) { + try { + + System.out.println("dbname:"+dataSyncPublish.tableName()); + System.out.println("operationType:"+dataSyncPublish.operatorType().ordinal()); + String params = this.argsArrayToString(joinPoint.getArgs()); + System.out.println("params:"+params); +// // *========数据库日志=========*// +// OperLogEvent operLog = new OperLogEvent(); +// operLog.setTenantId(LoginHelper.getTenantId()); +// operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); +// // 请求的地址 +// String ip = ServletUtils.getClientIP(); +// operLog.setOperIp(ip); +// operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)); +// LoginUser loginUser = LoginHelper.getLoginUser(); +// operLog.setOperName(loginUser.getUsername()); +// operLog.setDeptName(loginUser.getDeptName()); +// +// if (e != null) { +// operLog.setStatus(BusinessStatus.FAIL.ordinal()); +// operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); +// } +// // 设置方法名称 +// String className = joinPoint.getTarget().getClass().getName(); +// String methodName = joinPoint.getSignature().getName(); +// operLog.setMethod(className + "." + methodName + "()"); +// // 设置请求方式 +// operLog.setRequestMethod(ServletUtils.getRequest().getMethod()); +// // 处理设置注解上的参数 +// getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); +// // 设置消耗时间 +// StopWatch stopWatch = KEY_CACHE.get(); +// stopWatch.stop(); +// operLog.setCostTime(stopWatch.getTime()); +// // 发布事件保存数据库 +// SpringUtils.context().publishEvent(operLog); + } catch (Exception exp) { + // 记录本地异常日志 + log.error("异常信息:{}", exp.getMessage()); + exp.printStackTrace(); + } finally { + KEY_CACHE.remove(); + } + } + + /** + * 获取注解中对方法的描述信息 用于Controller层注解 + * + * @param log 日志 + * @param operLog 操作日志 + * @throws Exception + */ +// public void getControllerMethodDescription(JoinPoint joinPoint, DataSyncPublish dataSyncPublish, Object jsonResult) throws Exception { +// // 设置action动作 +// operLog.setBusinessType(log.businessType().ordinal()); +// // 设置标题 +// operLog.setTitle(log.title()); +// // 设置操作人类别 +// operLog.setOperatorType(log.operatorType().ordinal()); +// // 是否需要保存request,参数和值 +// if (log.isSaveRequestData()) { +// // 获取参数的信息,传入到数据库中。 +// setRequestValue(joinPoint, operLog, log.excludeParamNames()); +// } +// // 是否需要保存response,参数和值 +// if (log.isSaveResponseData() && ObjectUtil.isNotNull(jsonResult)) { +// operLog.setJsonResult(StringUtils.substring(JsonUtils.toJsonString(jsonResult), 0, 2000)); +// } +// } + + /** + * 获取请求的参数,放到log中 + * + * @param operLog 操作日志 + * @throws Exception 异常 + */ +// private void setRequestValue(JoinPoint joinPoint, OperLogEvent operLog, String[] excludeParamNames) throws Exception { +// Map paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest()); +// String requestMethod = operLog.getRequestMethod(); +// if (MapUtil.isEmpty(paramsMap) && StringUtils.equalsAny(requestMethod, HttpMethod.PUT.name(), HttpMethod.POST.name(), HttpMethod.DELETE.name())) { +// String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); +// operLog.setOperParam(StringUtils.substring(params, 0, 2000)); +// } else { +// MapUtil.removeAny(paramsMap, EXCLUDE_PROPERTIES); +// MapUtil.removeAny(paramsMap, excludeParamNames); +// operLog.setOperParam(StringUtils.substring(JsonUtils.toJsonString(paramsMap), 0, 2000)); +// } +// } + + /** + * 参数拼装 + */ + private String argsArrayToString(Object[] paramsArray) { + StringJoiner params = new StringJoiner(" "); + if (ArrayUtil.isEmpty(paramsArray)) { + return params.toString(); + } + for (Object o : paramsArray) { + if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) { + String str = JsonUtils.toJsonString(o); + Dict dict = JsonUtils.parseMap(str); + if (MapUtil.isNotEmpty(dict)) { + MapUtil.removeAny(dict, EXCLUDE_PROPERTIES); + str = JsonUtils.toJsonString(dict); + } + params.add(str); + } + } + return params.toString(); + } + + /** + * 判断是否需要过滤的对象。 + * + * @param o 对象信息。 + * @return 如果是需要过滤的对象,则返回true;否则返回false。 + */ + @SuppressWarnings("rawtypes") + public boolean isFilterObject(final Object o) { + Class clazz = o.getClass(); + if (clazz.isArray()) { + return MultipartFile.class.isAssignableFrom(clazz.getComponentType()); + } else if (Collection.class.isAssignableFrom(clazz)) { + Collection collection = (Collection) o; + for (Object value : collection) { + return value instanceof MultipartFile; + } + } else if (Map.class.isAssignableFrom(clazz)) { + Map map = (Map) o; + for (Object value : map.values()) { + return value instanceof MultipartFile; + } + } + return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse + || o instanceof BindingResult; + } +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java new file mode 100644 index 0000000..c000f9a --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java @@ -0,0 +1,23 @@ +package org.dromara.common.enums; + +/** + * 操作类型 + * + * @author xins + */ +public enum OperatorType { + /** + * 插入 + */ + INSERT, + + /** + * 更新 + */ + UPDATE, + + /** + * 删除 + */ + DELETE +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java new file mode 100644 index 0000000..9246cf0 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java @@ -0,0 +1,34 @@ +package org.dromara.common.event; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 数据同步记录发布事件 + * + * @author xins + */ + +@Data +public class DataSyncPublishEvent implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 数据库表名称 + */ + private String tableName; + + /** + * 操作类型 + */ + private String operationType; + + /** + * 过滤时间(如果是创建,则createtime大于此时间,如果是更新,则updatetime大于此时间) + */ + private String filterTime; +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java new file mode 100644 index 0000000..f32cbbb --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java @@ -0,0 +1,29 @@ +package org.dromara.common.event; + +import cn.hutool.core.bean.BeanUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.system.api.RemoteLogService; +import org.dromara.system.api.domain.bo.RemoteOperLogBo; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class DataSyncPublishListener { + + @DubboReference + private RemoteLogService remoteLogService; + + /** + * 保存系统日志记录 + */ + @EventListener + public void dataSyncPublish(DataSyncPublishEvent dataSyncPublishEvent) { +// tableName,类型,时间,删除的id; + + } + + + +} diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 48e0095..0feb19b 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -45,6 +45,7 @@ ruoyi-common-nacos ruoyi-common-bus ruoyi-common-sse + hwmom-common-mom ruoyi-common From 680bb712bb5db4e896da21b727515b6e95d40779 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Fri, 10 Jan 2025 15:32:05 +0800 Subject: [PATCH 03/69] =?UTF-8?q?wms=E6=96=B0=E5=A2=9E=E7=9B=98=E7=82=B9?= =?UTF-8?q?=E5=8F=8A=E7=9B=98=E7=82=B9=E6=98=8E=E7=BB=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsAllocateOrderController.java | 106 +++++++++ .../WmsAllocateOrderDetailController.java | 111 +++++++++ .../dromara/wms/domain/WmsAllocateOrder.java | 130 +++++++++++ .../wms/domain/WmsAllocateOrderDetail.java | 79 +++++++ .../wms/domain/bo/WmsAllocateOrderBo.java | 119 ++++++++++ .../domain/bo/WmsAllocateOrderDetailBo.java | 61 +++++ .../domain/vo/WmsAllocateOrderDetailVo.java | 94 ++++++++ .../wms/domain/vo/WmsAllocateOrderVo.java | 153 ++++++++++++ .../mapper/WmsAllocateOrderDetailMapper.java | 15 ++ .../wms/mapper/WmsAllocateOrderMapper.java | 15 ++ .../IWmsAllocateOrderDetailService.java | 70 ++++++ .../wms/service/IWmsAllocateOrderService.java | 68 ++++++ .../WmsAllocateOrderDetailServiceImpl.java | 141 +++++++++++ .../impl/WmsAllocateOrderServiceImpl.java | 218 ++++++++++++++++++ .../wms/WmsAllocateOrderDetailMapper.xml | 7 + .../mapper/wms/WmsAllocateOrderMapper.xml | 7 + 16 files changed, 1394 insertions(+) create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java new file mode 100644 index 0000000..4c1682d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java @@ -0,0 +1,106 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; +import org.dromara.wms.service.IWmsAllocateOrderService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 调拨工单 + * 前端访问路由地址为:/system/allocateOrder + * + * @author LionLi + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/allocateOrder") +public class WmsAllocateOrderController extends BaseController { + + private final IWmsAllocateOrderService wmsAllocateOrderService; + + /** + * 查询调拨工单列表 + */ + @SaCheckPermission("system:allocateOrder:list") + @GetMapping("/list") + public TableDataInfo list(WmsAllocateOrderBo bo, PageQuery pageQuery) { + return wmsAllocateOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出调拨工单列表 + */ + @SaCheckPermission("system:allocateOrder:export") + @Log(title = "调拨工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsAllocateOrderBo bo, HttpServletResponse response) { + List list = wmsAllocateOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "调拨工单", WmsAllocateOrderVo.class, response); + } + + /** + * 获取调拨工单详细信息 + * + * @param aoId 主键 + */ + @SaCheckPermission("system:allocateOrder:query") + @GetMapping("/{aoId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long aoId) { + return R.ok(wmsAllocateOrderService.queryById(aoId)); + } + + /** + * 新增调拨工单 + */ + @SaCheckPermission("system:allocateOrder:add") + @Log(title = "调拨工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsAllocateOrderBo bo) { + return toAjax(wmsAllocateOrderService.insertByBo(bo)); + } + + /** + * 修改调拨工单 + */ + @SaCheckPermission("system:allocateOrder:edit") + @Log(title = "调拨工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsAllocateOrderBo bo) { + return toAjax(wmsAllocateOrderService.updateByBo(bo)); + } + + /** + * 删除调拨工单 + * + * @param aoIds 主键串 + */ + @SaCheckPermission("system:allocateOrder:remove") + @Log(title = "调拨工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{aoIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] aoIds) { + return toAjax(wmsAllocateOrderService.deleteWithValidByIds(List.of(aoIds), true)); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java new file mode 100644 index 0000000..72a0f2f --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java @@ -0,0 +1,111 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; +import org.dromara.wms.service.IWmsAllocateOrderDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 调拨子 + * 前端访问路由地址为:/system/allocateOrderDetail + * + * @author LionLi + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/allocateOrderDetail") +public class WmsAllocateOrderDetailController extends BaseController { + + private final IWmsAllocateOrderDetailService wmsAllocateOrderDetailService; + + /** + * 查询调拨子列表 + */ + @SaCheckPermission("system:allocateOrderDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsAllocateOrderDetailBo bo, PageQuery pageQuery) { + return wmsAllocateOrderDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出调拨子列表 + */ + @SaCheckPermission("system:allocateOrderDetail:export") + @Log(title = "调拨子", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsAllocateOrderDetailBo bo, HttpServletResponse response) { + List list = wmsAllocateOrderDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "调拨子", WmsAllocateOrderDetailVo.class, response); + } + + /** + * 获取调拨子详细信息 + * + * @param aoDId 主键 + */ + @SaCheckPermission("system:allocateOrderDetail:query") + @GetMapping("/{aoDId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long aoDId) { + return R.ok(wmsAllocateOrderDetailService.queryById(aoDId)); + } + + /** + * 新增调拨子 + */ + @SaCheckPermission("system:allocateOrderDetail:add") + @Log(title = "调拨子", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsAllocateOrderDetailBo bo) { + return toAjax(wmsAllocateOrderDetailService.insertByBo(bo)); + } + + /** + * 修改调拨子 + */ + @SaCheckPermission("system:allocateOrderDetail:edit") + @Log(title = "调拨子", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsAllocateOrderDetailBo bo) { + return toAjax(wmsAllocateOrderDetailService.updateByBo(bo)); + } + + /** + * 删除调拨子 + * + * @param aoDIds 主键串 + */ + @SaCheckPermission("system:allocateOrderDetail:remove") + @Log(title = "调拨子", businessType = BusinessType.DELETE) + @DeleteMapping("/{aoDIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] aoDIds) { + return toAjax(wmsAllocateOrderDetailService.deleteWithValidByIds(List.of(aoDIds), true)); + } + + @GetMapping("selectAllocateDetails") + public R> selectAllocateDetails(Long aoDId){ + return R.ok(wmsAllocateOrderDetailService.selectAllocateDetails()); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java new file mode 100644 index 0000000..2eadfef --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java @@ -0,0 +1,130 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 调拨工单对象 wms_allocate_order + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@TableName("wms_allocate_order") +public class WmsAllocateOrder{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO) + private Long aoId; + + /** + * 调拨单号 + */ + private String allocateOrderCode; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 出库仓库ID + */ + private Long planWarehouseId; + + /** + * 工单状态 + */ + private String orderStatus; + + /** + * 入库仓库ID + */ + private Long targetWarehouseId; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 是否创建出库单 + */ + private String createOut; + + /** + * 出库单号 + */ + private String outCode; + + /** + * 是否创建入库单 + */ + private String createIn; + + /** + * 入库单号 + */ + private String inCode; + + /** + * 入库方式 + */ + private String inMethod; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String planWarehouseCode; + @TableField(exist = false) + private String targetWarehouseCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java new file mode 100644 index 0000000..0189b32 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java @@ -0,0 +1,79 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 调拨子对象 wms_allocate_order_detail + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@TableName("wms_allocate_order_detail") +public class WmsAllocateOrderDetail { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 调拨子表主键 + */ + private Long aoDId; + + /** + * 调拨单号 + */ + private String allocateCode; + + /** + * 物料id + */ + private Long materialId; + + /** + * 调拨数量 + */ + private Long allocateOrderQty; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java new file mode 100644 index 0000000..f274d52 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java @@ -0,0 +1,119 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsAllocateOrder; + +/** + * 调拨工单业务对象 wms_allocate_order + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsAllocateOrder.class, reverseConvertGenerate = false) +public class WmsAllocateOrderBo extends BaseEntity { + + /** + * 表主键 + */ +// @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long aoId; + + /** + * 调拨单号 + */ +// @NotBlank(message = "调拨单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String allocateOrderCode; + + /** + * 物料大类 + */ +// @NotBlank(message = "物料大类不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialCategories; + + /** + * 出库仓库ID + */ +// @NotNull(message = "出库仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long planWarehouseId; + + /** + * 工单状态 + */ +// @NotBlank(message = "工单状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String orderStatus; + + /** + * 入库仓库ID + */ +// @NotNull(message = "入库仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long targetWarehouseId; + + /** + * 审核人 + */ +// @NotBlank(message = "审核人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditBy; + + /** + * 审核时间 + */ +// @NotNull(message = "审核时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ +// @NotBlank(message = "审核状态(0待审核,1审核通过,2审核未通过)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditStatus; + + /** + * 审核意见 + */ +// @NotBlank(message = "审核意见不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditComments; + + /** + * 是否创建出库单 + */ + @NotBlank(message = "是否创建出库单不能为空", groups = { AddGroup.class, EditGroup.class }) + private String createOut; + + /** + * 出库单号 + */ +// @NotBlank(message = "出库单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String outCode; + + /** + * 是否创建入库单 + */ +// @NotBlank(message = "是否创建入库单不能为空", groups = { AddGroup.class, EditGroup.class }) + private String createIn; + + /** + * 入库单号 + */ +// @NotBlank(message = "入库单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inCode; + + /** + * 入库方式 + */ +// @NotBlank(message = "入库方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inMethod; + private String tenantId; + private String planWarehouseCode; + private String targetWarehouseCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java new file mode 100644 index 0000000..a9154a9 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java @@ -0,0 +1,61 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsAllocateOrderDetail; + +/** + * 调拨子业务对象 wms_allocate_order_detail + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsAllocateOrderDetail.class, reverseConvertGenerate = false) +public class WmsAllocateOrderDetailBo extends BaseEntity { + + /** + * 调拨子表主键 + */ +// @NotNull(message = "调拨子表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long aoDId; + + /** + * 调拨单号 + */ +// @NotBlank(message = "调拨单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String allocateCode; + + /** + * 物料id + */ +// @NotNull(message = "物料id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 调拨数量 + */ +// @NotNull(message = "调拨数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long allocateOrderQty; + + /** + * erp同步状态 + */ +// @NotBlank(message = "erp同步状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ +// @NotNull(message = "erp同步数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long erpSynchronousQty; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java new file mode 100644 index 0000000..34e34ea --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java @@ -0,0 +1,94 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsAllocateOrderDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 调拨子视图对象 wms_allocate_order_detail + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsAllocateOrderDetail.class) +public class WmsAllocateOrderDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 调拨子表主键 + */ + @ExcelProperty(value = "调拨子表主键") + private Long aoDId; + + /** + * 调拨单号 + */ + @ExcelProperty(value = "调拨单号") + private String allocateCode; + + /** + * 物料id + */ + @ExcelProperty(value = "物料id") + private Long materialId; + + /** + * 调拨数量 + */ + @ExcelProperty(value = "调拨数量") + private Long allocateOrderQty; + + /** + * erp同步状态 + */ + @ExcelProperty(value = "erp同步状态") + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + @ExcelProperty(value = "erp同步数量") + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java new file mode 100644 index 0000000..c68903b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java @@ -0,0 +1,153 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsAllocateOrder; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 调拨工单视图对象 wms_allocate_order + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsAllocateOrder.class) +public class WmsAllocateOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long aoId; + + /** + * 调拨单号 + */ + @ExcelProperty(value = "调拨单号") + private String allocateOrderCode; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 出库仓库ID + */ + @ExcelProperty(value = "出库仓库ID") + private Long planWarehouseId; + + /** + * 工单状态 + */ + @ExcelProperty(value = "工单状态") + private String orderStatus; + + /** + * 入库仓库ID + */ + @ExcelProperty(value = "入库仓库ID") + private Long targetWarehouseId; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * 是否创建出库单 + */ + @ExcelProperty(value = "是否创建出库单") + private String createOut; + + /** + * 出库单号 + */ + @ExcelProperty(value = "出库单号") + private String outCode; + + /** + * 是否创建入库单 + */ + @ExcelProperty(value = "是否创建入库单") + private String createIn; + + /** + * 入库单号 + */ + @ExcelProperty(value = "入库单号") + private String inCode; + + /** + * 入库方式 + */ + @ExcelProperty(value = "入库方式") + private String inMethod; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String planWarehouseCode; + private String targetWarehouseCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java new file mode 100644 index 0000000..a9e50fd --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsAllocateOrderDetail; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; + +/** + * 调拨子Mapper接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface WmsAllocateOrderDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java new file mode 100644 index 0000000..de4dba3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsAllocateOrder; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; + +/** + * 调拨工单Mapper接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface WmsAllocateOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java new file mode 100644 index 0000000..f99f4b7 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java @@ -0,0 +1,70 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 调拨子Service接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface IWmsAllocateOrderDetailService { + + /** + * 查询调拨子 + * + * @param aoDId 主键 + * @return 调拨子 + */ + WmsAllocateOrderDetailVo queryById(Long aoDId); + + /** + * 分页查询调拨子列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨子分页列表 + */ + TableDataInfo queryPageList(WmsAllocateOrderDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的调拨子列表 + * + * @param bo 查询条件 + * @return 调拨子列表 + */ + List queryList(WmsAllocateOrderDetailBo bo); + + /** + * 新增调拨子 + * + * @param bo 调拨子 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsAllocateOrderDetailBo bo); + + /** + * 修改调拨子 + * + * @param bo 调拨子 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsAllocateOrderDetailBo bo); + + /** + * 校验并批量删除调拨子信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List selectAllocateDetails(); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java new file mode 100644 index 0000000..67071d1 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; + +import java.util.Collection; +import java.util.List; + +/** + * 调拨工单Service接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface IWmsAllocateOrderService { + + /** + * 查询调拨工单 + * + * @param aoId 主键 + * @return 调拨工单 + */ + WmsAllocateOrderVo queryById(Long aoId); + + /** + * 分页查询调拨工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨工单分页列表 + */ + TableDataInfo queryPageList(WmsAllocateOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的调拨工单列表 + * + * @param bo 查询条件 + * @return 调拨工单列表 + */ + List queryList(WmsAllocateOrderBo bo); + + /** + * 新增调拨工单 + * + * @param bo 调拨工单 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsAllocateOrderBo bo); + + /** + * 修改调拨工单 + * + * @param bo 调拨工单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsAllocateOrderBo bo); + + /** + * 校验并批量删除调拨工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java new file mode 100644 index 0000000..aef3bb3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.wms.domain.WmsAllocateOrderDetail; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; +import org.dromara.wms.mapper.WmsAllocateOrderDetailMapper; +import org.dromara.wms.service.IWmsAllocateOrderDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 调拨子Service业务层处理 + * + * @author LionLi + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetailService { + + private final WmsAllocateOrderDetailMapper baseMapper; + + /** + * 查询调拨子 + * + * @param aoDId 主键 + * @return 调拨子 + */ + @Override + public WmsAllocateOrderDetailVo queryById(Long aoDId){ + return baseMapper.selectVoById(aoDId); + } + + /** + * 分页查询调拨子列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨子分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsAllocateOrderDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + lqw.orderByDesc(WmsAllocateOrderDetail::getCreateTime); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的调拨子列表 + * + * @param bo 查询条件 + * @return 调拨子列表 + */ + @Override + public List queryList(WmsAllocateOrderDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsAllocateOrderDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); + lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()); + lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()); + lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()); + return lqw; + } + + /** + * 新增调拨子 + * + * @param bo 调拨子 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsAllocateOrderDetailBo bo) { + WmsAllocateOrderDetail add = MapstructUtils.convert(bo, WmsAllocateOrderDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setAoDId(add.getAoDId()); + } + return flag; + } + + /** + * 修改调拨子 + * + * @param bo 调拨子 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsAllocateOrderDetailBo bo) { + WmsAllocateOrderDetail update = MapstructUtils.convert(bo, WmsAllocateOrderDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsAllocateOrderDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除调拨子信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public List selectAllocateDetails() { + + return null; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java new file mode 100644 index 0000000..49a98d5 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -0,0 +1,218 @@ +package org.dromara.wms.service.impl; + +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsAllocateOrder; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsReturnOrder; +import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.bo.WmsReturnOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; +import org.dromara.wms.mapper.WmsAllocateOrderMapper; +import org.dromara.wms.mapper.WmsInstockOrderMapper; +import org.dromara.wms.service.IWmsAllocateOrderService; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 调拨工单Service业务层处理 + * + * @author LionLi + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { + + private final WmsAllocateOrderMapper baseMapper; + private static final AtomicInteger sequence = new AtomicInteger(1); + public static Integer nextSequence() { + return sequence.incrementAndGet(); + } + + + /** + * 查询调拨工单 + * + * @param aoId 主键 + * @return 调拨工单 + */ + @Override + public WmsAllocateOrderVo queryById(Long aoId){ + return baseMapper.selectVoById(aoId); + } + + /** + * 分页查询调拨工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨工单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsAllocateOrderBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + lqw.orderByDesc(WmsAllocateOrder::getCreateTime); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + private MPJLambdaWrapper buildJoinQueryWrapper(WmsAllocateOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrder.class) + .selectAll(WmsAllocateOrder.class) + .selectAs("a",WmsBaseWarehouse::getWarehouseCode,WmsAllocateOrderVo::getPlanWarehouseCode) + .selectAs("b",WmsBaseWarehouse::getWarehouseCode,WmsAllocateOrderVo::getTargetWarehouseCode) + .leftJoin(WmsBaseWarehouse.class,"a",WmsBaseWarehouse::getWarehouseId,WmsAllocateOrder::getPlanWarehouseId) + .leftJoin(WmsBaseWarehouse.class,"b",WmsBaseWarehouse::getWarehouseId,WmsAllocateOrder::getTargetWarehouseId); + lqw.eq(bo.getAoId() != null, WmsAllocateOrder::getAoId, bo.getAoId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateOrderCode()), WmsAllocateOrder::getAllocateOrderCode, bo.getAllocateOrderCode()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsAllocateOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(bo.getPlanWarehouseId() != null, WmsAllocateOrder::getPlanWarehouseId, bo.getPlanWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsAllocateOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(bo.getTargetWarehouseId() != null, WmsAllocateOrder::getTargetWarehouseId, bo.getTargetWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsAllocateOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsAllocateOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsAllocateOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsAllocateOrder::getAuditComments, bo.getAuditComments()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateOut()), WmsAllocateOrder::getCreateOut, bo.getCreateOut()); + lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), WmsAllocateOrder::getOutCode, bo.getOutCode()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateIn()), WmsAllocateOrder::getCreateIn, bo.getCreateIn()); + lqw.eq(StringUtils.isNotBlank(bo.getInCode()), WmsAllocateOrder::getInCode, bo.getInCode()); + lqw.eq(StringUtils.isNotBlank(bo.getInMethod()), WmsAllocateOrder::getInMethod, bo.getInMethod()); + return lqw; + } + /** + * 查询符合条件的调拨工单列表 + * + * @param bo 查询条件 + * @return 调拨工单列表 + */ + @Override + public List queryList(WmsAllocateOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsAllocateOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAoId() != null, WmsAllocateOrder::getAoId, bo.getAoId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateOrderCode()), WmsAllocateOrder::getAllocateOrderCode, bo.getAllocateOrderCode()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsAllocateOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(bo.getPlanWarehouseId() != null, WmsAllocateOrder::getPlanWarehouseId, bo.getPlanWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsAllocateOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(bo.getTargetWarehouseId() != null, WmsAllocateOrder::getTargetWarehouseId, bo.getTargetWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsAllocateOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsAllocateOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsAllocateOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsAllocateOrder::getAuditComments, bo.getAuditComments()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateOut()), WmsAllocateOrder::getCreateOut, bo.getCreateOut()); + lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), WmsAllocateOrder::getOutCode, bo.getOutCode()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateIn()), WmsAllocateOrder::getCreateIn, bo.getCreateIn()); + lqw.eq(StringUtils.isNotBlank(bo.getInCode()), WmsAllocateOrder::getInCode, bo.getInCode()); + lqw.eq(StringUtils.isNotBlank(bo.getInMethod()), WmsAllocateOrder::getInMethod, bo.getInMethod()); + return lqw; + } + + /** + * 新增调拨工单 + * + * @param bo 调拨工单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsAllocateOrderBo bo) { + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date).substring(2); + String allocate = "AL"; + String allocateIn = "ALIN"; + String allocateOut = "ALOU"; + String orderLast = ""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String allocateInOrder = ""; + String allocateOutOrder = ""; + String allocateOrder = allocate + orderDate + orderLast; + WmsAllocateOrder add = MapstructUtils.convert(bo, WmsAllocateOrder.class); + add.setAllocateOrderCode(allocateOrder); + if (bo.getCreateIn().equals("1")){ + allocateInOrder = allocateIn + orderDate + orderLast; + add.setInCode(allocateInOrder); + } + if (bo.getCreateOut().equals("1")){ + allocateOutOrder = allocateOut + orderDate + orderLast; + add.setOutCode(allocateOutOrder); + } + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setAoId(add.getAoId()); + } + return flag; + } + public String generateOrder(Integer value){ + if (value.toString().length()<3){ + String fixedLengthString = String.format("%03d", value); + return fixedLengthString; + }else if (value.toString().length()==3){ + return value.toString(); + } + return value.toString(); + } + /** + * 修改调拨工单 + * + * @param bo 调拨工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsAllocateOrderBo bo) { + WmsAllocateOrder update = MapstructUtils.convert(bo, WmsAllocateOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsAllocateOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除调拨工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml new file mode 100644 index 0000000..afe5ded --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml new file mode 100644 index 0000000..77b6703 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + From 943ce88340473697623f51ad80ee57ac81769db4 Mon Sep 17 00:00:00 2001 From: xs Date: Fri, 10 Jan 2025 16:41:25 +0800 Subject: [PATCH 04/69] =?UTF-8?q?1.1.1=20log=E6=B3=A8=E8=A7=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=95=B0=E6=8D=AE=E6=9B=B4=E6=96=B0=E6=97=B6=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/log/annotation/Log.java | 3 + .../dromara/common/log/aspect/LogAspect.java | 8 +- .../common/log/event/LogEventListener.java | 79 +++++++++++++++++++ .../common/log/event/OperLogEvent.java | 11 +++ 4 files changed, 100 insertions(+), 1 deletion(-) diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java index 2dced97..20da2c2 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java @@ -45,4 +45,7 @@ public @interface Log { */ String[] excludeParamNames() default {}; + String tableName() default ""; + + } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java index eb81dfe..22f727c 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java @@ -113,7 +113,13 @@ public class LogAspect { // 设置消耗时间 StopWatch stopWatch = KEY_CACHE.get(); stopWatch.stop(); - operLog.setCostTime(stopWatch.getTime()); + operLog.setCostTime(stopWatch.getTime());//毫秒(1毫秒=1000000纳秒nano) + + + operLog.setSimpleClassName(joinPoint.getTarget().getClass().getSimpleName()); + operLog.setTableName(controllerLog.tableName()); + + // 发布事件保存数据库 SpringUtils.context().publishEvent(operLog); } catch (Exception exp) { diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java index 3584e0c..7f6da25 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; +import com.alibaba.fastjson2.JSONObject; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -11,6 +12,9 @@ import org.dromara.common.core.constant.Constants; import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ip.AddressUtils; +import org.dromara.common.log.enums.BusinessStatus; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.RemoteClientService; import org.dromara.system.api.RemoteLogService; @@ -20,6 +24,10 @@ import org.dromara.system.api.domain.vo.RemoteClientVo; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + /** * 异步调用日志服务 * @@ -34,6 +42,11 @@ public class LogEventListener { @DubboReference private RemoteClientService remoteClientService; + public static final Map TABLE_ID_MAP = new HashMap<>(); + static { + TABLE_ID_MAP.put("base_class_team_info", "class_team_id"); + } + /** * 保存系统日志记录 */ @@ -41,6 +54,45 @@ public class LogEventListener { public void saveLog(OperLogEvent operLogEvent) { RemoteOperLogBo sysOperLog = BeanUtil.toBean(operLogEvent, RemoteOperLogBo.class); remoteLogService.saveLog(sysOperLog); + this.dataSyncPublish(operLogEvent); + } + + + private void dataSyncPublish(OperLogEvent operLogEvent) { + /** + * 默认所有表都需要同步到机台本地,如果有需要不同的话,可以配置在redis中、内存中或者数据库中 + */ + Integer status = operLogEvent.getStatus(); + Integer businessType = operLogEvent.getBusinessType(); + if (status.equals(BusinessStatus.SUCCESS.ordinal()) + && !businessType.equals(BusinessType.OTHER.ordinal()) && !businessType.equals(BusinessType.EXPORT.ordinal()) + && !businessType.equals(BusinessType.GENCODE.ordinal()) && !businessType.equals(BusinessType.FORCE.ordinal())) { + JSONObject daySyncPublishJson = new JSONObject(); + String tableName = operLogEvent.getTableName(); + + if (StringUtils.isEmpty(tableName)) { + String simpleClassName = operLogEvent.getSimpleClassName(); + simpleClassName = simpleClassName.replaceFirst("Controller", ""); + tableName = camelToSnake(simpleClassName); + } + + long costTime = operLogEvent.getCostTime(); + long filterTimeL = System.currentTimeMillis() - costTime - 60000;//多减1分钟 + + daySyncPublishJson.put("tableName", "["+tableName+"]"); + daySyncPublishJson.put("filterTime", filterTimeL); + daySyncPublishJson.put("businessType", operLogEvent.getBusinessType()); + if (businessType.equals(BusinessType.DELETE.ordinal())) { + String tableId = TABLE_ID_MAP.get(tableName); + if (StringUtils.isNotEmpty(tableId)) { + daySyncPublishJson.put(tableId, operLogEvent.getOperParam()); + } + } + + RedisUtils.setCacheObject("publish", daySyncPublishJson.toString()); + + } + } /** @@ -100,4 +152,31 @@ public class LogEventListener { return "[" + msg + "]"; } + + public static String camelToSnake(String str) { + if (str == null || str.isEmpty()) { + return str; + } + + StringBuilder result = new StringBuilder(); + char[] charArray = str.toCharArray(); + + for (int i = 0; i < charArray.length; i++) { + char ch = charArray[i]; + if (Character.isUpperCase(ch)) { + // 如果不是字符串的第一个字符,则在前面加上下划线 + if (i != 0) { + result.append("_"); + } + // 将大写字母转为小写并追加到结果中 + result.append(Character.toLowerCase(ch)); + } else { + // 直接追加非大写的字符 + result.append(ch); + } + } + + return result.toString(); + } + } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java index 0386192..f6f01e0 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java @@ -112,4 +112,15 @@ public class OperLogEvent implements Serializable { * 消耗时间 */ private Long costTime; + + /** + * 类名(不包含package) + */ + private String simpleClassName; + + /** + * 表名 + */ + private String tableName; + } From 4283e3f34c20baa14dc7d515de92920a6ba2d1fd Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 10 Jan 2025 18:40:26 +0800 Subject: [PATCH 05/69] =?UTF-8?q?update=20=E7=94=9F=E4=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E3=80=81=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseClassTeamInfoController.java | 10 +++++ .../mes/domain/vo/ProdOrderInfoVo.java | 38 +++++++++++++++++++ .../dromara/mes/domain/vo/ProdPlanInfoVo.java | 6 ++- .../mes/mapper/ProdOrderInfoMapper.java | 17 +++++++++ .../mes/mapper/ProdPlanInfoMapper.java | 15 ++++++++ .../mes/service/IProdOrderInfoService.java | 1 - .../impl/ProdOrderInfoServiceImpl.java | 3 +- .../service/impl/ProdPlanInfoServiceImpl.java | 3 +- .../mapper/mes/ProdOrderInfoMapper.xml | 18 ++++++++- .../mapper/mes/ProdPlanInfoMapper.xml | 22 +++++++++++ 10 files changed, 125 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java index 0be4424..9d57965 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java @@ -114,4 +114,14 @@ public class BaseClassTeamInfoController extends BaseController { public R>selectClassTeamList(BaseClassTeamInfoBo bo, PageQuery pageQuery) { return R.ok(baseClassTeamInfoService.queryList(bo)); } + + /** + * 下拉框查询班组信息列表 + */ + @GetMapping("getBaseClassTeamInfoList") + public R> getBaseClassTeamInfolist(BaseClassTeamInfoBo bo) { + List list = baseClassTeamInfoService.queryList(bo); + return R.ok(list); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java index 5ccc970..6f3e666 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java @@ -36,6 +36,13 @@ public class ProdOrderInfoVo implements Serializable { @ExcelProperty(value = "主键标识") private Long productOrderId; + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** * 订单编号 */ @@ -205,5 +212,36 @@ public class ProdOrderInfoVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + private String materialName; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java index c18eb44..6ba1fad 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java @@ -222,5 +222,9 @@ public class ProdPlanInfoVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - + private String materialCode; + private String materialName; + private String processName; + private String shiftName; + private String teamName; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java index f710e70..d3825f2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java @@ -1,9 +1,16 @@ package org.dromara.mes.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.dromara.mes.domain.ProdOrderInfo; +import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 生产订单信息Mapper接口 * @@ -12,4 +19,14 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdOrderInfoMapper extends BaseMapperPlus { + /** + * 查询生产订单信息;生产工单列表 + * @param page + * @param queryWrapper + * @return + */ + public Page selectProdOrderInfoList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java index 2e2b910..d8ca16f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java @@ -1,6 +1,12 @@ package org.dromara.mes.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.mes.domain.ProdOrderInfo; import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -12,4 +18,13 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdPlanInfoMapper extends BaseMapperPlus { + /** + * 生产工单列表 + * @param page + * @param queryWrapper + * @return + */ + public Page selectProdPlanInfoList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java index 9dfae04..31825bf 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java @@ -1,6 +1,5 @@ package org.dromara.mes.service; -import org.dromara.mes.domain.ProdOrderInfo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java index ae7f285..9b15614 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java @@ -7,7 +7,6 @@ import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdOrderInfoBo; @@ -53,7 +52,7 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { @Override public TableDataInfo queryPageList(ProdOrderInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectProdOrderInfoList(pageQuery.build(), lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index f14acd0..049a493 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -7,7 +7,6 @@ import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdPlanInfoBo; @@ -53,7 +52,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { @Override public TableDataInfo queryPageList(ProdPlanInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectProdPlanInfoList(pageQuery.build(), lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml index 48b3fda..01a495a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml @@ -1,7 +1,21 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index 1be78ee..c8cc529 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -4,4 +4,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + From 9f00cc9d9afcb0f7f1aaac10e66d6d35896c3d18 Mon Sep 17 00:00:00 2001 From: xs Date: Fri, 10 Jan 2025 19:16:13 +0800 Subject: [PATCH 06/69] =?UTF-8?q?1.1.2=20=E5=90=AF=E5=8A=A8=E9=80=9A?= =?UTF-8?q?=E7=94=A8=E6=9C=8D=E5=8A=A1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...springframework.boot.autoconfigure.AutoConfiguration.imports | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..dc8cb94 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +org.dromara.common.aspect.DataSyncPublishAspect +org.dromara.common.event.DataSyncPublishListener From cd18e05358fa58ded33af23fb8ffae1f05338b85 Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 10 Jan 2025 20:59:38 +0800 Subject: [PATCH 07/69] =?UTF-8?q?update=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E4=B8=BB=E6=95=B0=E6=8D=AE=E7=BB=B4=E6=8A=A4=E3=80=81=E4=B8=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysMasterDataController.java | 117 ++++++++++++++ .../SysMasterDataDetailController.java | 117 ++++++++++++++ .../dromara/system/domain/SysMasterData.java | 131 ++++++++++++++++ .../system/domain/SysMasterDataDetail.java | 110 +++++++++++++ .../system/domain/bo/SysMasterDataBo.java | 124 +++++++++++++++ .../domain/bo/SysMasterDataDetailBo.java | 97 ++++++++++++ .../domain/vo/SysMasterDataDetailVo.java | 117 ++++++++++++++ .../system/domain/vo/SysMasterDataVo.java | 148 ++++++++++++++++++ .../mapper/SysMasterDataDetailMapper.java | 15 ++ .../system/mapper/SysMasterDataMapper.java | 15 ++ .../service/ISysMasterDataDetailService.java | 69 ++++++++ .../system/service/ISysMasterDataService.java | 69 ++++++++ .../impl/SysMasterDataDetailServiceImpl.java | 144 +++++++++++++++++ .../impl/SysMasterDataServiceImpl.java | 148 ++++++++++++++++++ .../system/SysMasterDataDetailMapper.xml | 7 + .../mapper/system/SysMasterDataMapper.xml | 7 + 16 files changed, 1435 insertions(+) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java new file mode 100644 index 0000000..c1157c7 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java @@ -0,0 +1,117 @@ +package org.dromara.system.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.system.domain.bo.SysMasterDataBo; +import org.dromara.system.service.ISysMasterDataService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 主数据维护 + * 前端访问路由地址为:/system/masterData + * + * @author Yinq + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/masterData") +public class SysMasterDataController extends BaseController { + + private final ISysMasterDataService sysMasterDataService; + + /** + * 查询主数据维护列表 + */ + @SaCheckPermission("system:masterData:list") + @GetMapping("/list") + public TableDataInfo list(SysMasterDataBo bo, PageQuery pageQuery) { + return sysMasterDataService.queryPageList(bo, pageQuery); + } + + /** + * 导出主数据维护列表 + */ + @SaCheckPermission("system:masterData:export") + @Log(title = "主数据维护", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysMasterDataBo bo, HttpServletResponse response) { + List list = sysMasterDataService.queryList(bo); + ExcelUtil.exportExcel(list, "主数据维护", SysMasterDataVo.class, response); + } + + /** + * 获取主数据维护详细信息 + * + * @param masterDataId 主键 + */ + @SaCheckPermission("system:masterData:query") + @GetMapping("/{masterDataId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long masterDataId) { + return R.ok(sysMasterDataService.queryById(masterDataId)); + } + + /** + * 新增主数据维护 + */ + @SaCheckPermission("system:masterData:add") + @Log(title = "主数据维护", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysMasterDataBo bo) { + return toAjax(sysMasterDataService.insertByBo(bo)); + } + + /** + * 修改主数据维护 + */ + @SaCheckPermission("system:masterData:edit") + @Log(title = "主数据维护", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysMasterDataBo bo) { + return toAjax(sysMasterDataService.updateByBo(bo)); + } + + /** + * 删除主数据维护 + * + * @param masterDataIds 主键串 + */ + @SaCheckPermission("system:masterData:remove") + @Log(title = "主数据维护", businessType = BusinessType.DELETE) + @DeleteMapping("/{masterDataIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] masterDataIds) { + return toAjax(sysMasterDataService.deleteWithValidByIds(List.of(masterDataIds), true)); + } + + + /** + * 下拉框查询主数据维护列表 + */ + + @GetMapping("getSysMasterDataList") + public R> getSysMasterDatalist(SysMasterDataBo bo) { + List list = sysMasterDataService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java new file mode 100644 index 0000000..3a867de --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.system.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.system.domain.bo.SysMasterDataDetailBo; +import org.dromara.system.service.ISysMasterDataDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 主数据维护明细 + * 前端访问路由地址为:/system/masterDataDetail + * + * @author Yinq + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/masterDataDetail") +public class SysMasterDataDetailController extends BaseController { + + private final ISysMasterDataDetailService sysMasterDataDetailService; + + /** + * 查询主数据维护明细列表 + */ + @SaCheckPermission("system:masterDataDetail:list") + @GetMapping("/list") + public TableDataInfo list(SysMasterDataDetailBo bo, PageQuery pageQuery) { + return sysMasterDataDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出主数据维护明细列表 + */ + @SaCheckPermission("system:masterDataDetail:export") + @Log(title = "主数据维护明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysMasterDataDetailBo bo, HttpServletResponse response) { + List list = sysMasterDataDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "主数据维护明细", SysMasterDataDetailVo.class, response); + } + + /** + * 获取主数据维护明细详细信息 + * + * @param masterDataDetailId 主键 + */ + @SaCheckPermission("system:masterDataDetail:query") + @GetMapping("/{masterDataDetailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long masterDataDetailId) { + return R.ok(sysMasterDataDetailService.queryById(masterDataDetailId)); + } + + /** + * 新增主数据维护明细 + */ + @SaCheckPermission("system:masterDataDetail:add") + @Log(title = "主数据维护明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysMasterDataDetailBo bo) { + return toAjax(sysMasterDataDetailService.insertByBo(bo)); + } + + /** + * 修改主数据维护明细 + */ + @SaCheckPermission("system:masterDataDetail:edit") + @Log(title = "主数据维护明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysMasterDataDetailBo bo) { + return toAjax(sysMasterDataDetailService.updateByBo(bo)); + } + + /** + * 删除主数据维护明细 + * + * @param masterDataDetailIds 主键串 + */ + @SaCheckPermission("system:masterDataDetail:remove") + @Log(title = "主数据维护明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{masterDataDetailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] masterDataDetailIds) { + return toAjax(sysMasterDataDetailService.deleteWithValidByIds(List.of(masterDataDetailIds), true)); + } + + + /** + * 下拉框查询主数据维护明细列表 + */ + + @GetMapping("getSysMasterDataDetailList") + public R> getSysMasterDataDetaillist(SysMasterDataDetailBo bo) { + List list = sysMasterDataDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java new file mode 100644 index 0000000..c03a44c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java @@ -0,0 +1,131 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 主数据维护对象 sys_master_data + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_master_data") +public class SysMasterData extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "master_data_id", type = IdType.AUTO) + private Long masterDataId; + + /** + * 所属模块(1MES 2WMS 3DMS 4QMS 5EMS) + */ + @TableField("module_type") + private String moduleType; + + /** + * 父级标识;(1是 0否) + */ + @TableField("parent_flag") + private String parentFlag; + + /** + * 菜单ID + */ + @TableField("menu_id") + private Long menuId; + + /** + * 路由参数 + */ + @TableField("query_param") + private String queryParam; + + /** + * 主数据标题;例:品牌、层级、花纹 + */ + @TableField("master_data_title") + private String masterDataTitle; + + /** + * 预留字段1名称 + */ + @TableField("field_name_1") + private String fieldName1; + + /** + * 预留字段1显示标识;(1是 0否) + */ + @TableField("display_flag_1") + private String displayFlag1; + + /** + * 预留字段2名称 + */ + @TableField("field_name_2") + private String fieldName2; + + /** + * 预留字段2显示标识;(1是 0否) + */ + @TableField("display_flag_2") + private String displayFlag2; + + /** + * 预留字段3名称 + */ + @TableField("field_name_3") + private String fieldName3; + + /** + * 预留字段3显示标识;(1是 0否) + */ + @TableField("display_flag_3") + private String displayFlag3; + + /** + * 预留字段4名称 + */ + @TableField("field_name_4") + private String fieldName4; + + /** + * 预留字段4显示标识;(1是 0否) + */ + @TableField("display_flag_4") + private String displayFlag4; + + /** + * 预留字段5名称 + */ + @TableField("field_name_5") + private String fieldName5; + + /** + * 预留字段5显示标识;(1是 0否) + */ + @TableField("display_flag_5") + private String displayFlag5; + + /** + * 激活标识(1是 0否) + */ + @TableField("active_flag") + private String activeFlag; + + /** + * 备注 + */ + @TableField("remark") + private String remark; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java new file mode 100644 index 0000000..2a64173 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java @@ -0,0 +1,110 @@ +package org.dromara.system.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 主数据维护明细对象 sys_master_data_detail + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_master_data_detail") +public class SysMasterDataDetail extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "master_data_detail_id", type = IdType.AUTO) + private Long masterDataDetailId; + + /** + * 主数据ID + */ + @TableField("master_data_id") + private Long masterDataId; + + /** + * 父级标识 + */ + @TableField("parent_id") + private Long parentId; + + /** + * 祖级列表 + */ + @TableField("ancestors") + private String ancestors; + + /** + * 主数据明细编号 + */ + @TableField("data_detail_code") + private String dataDetailCode; + + /** + * 主数据明细名称 + */ + @TableField("data_detail_name") + private String dataDetailName; + + /** + * 预留字段1数据 + */ + @TableField("field_data_1") + private String fieldData1; + + /** + * 预留字段2数据 + */ + @TableField("field_data_2") + private String fieldData2; + + /** + * 预留字段3数据 + */ + @TableField("field_data_3") + private String fieldData3; + + /** + * 预留字段4数据 + */ + @TableField("field_data_4") + private String fieldData4; + + /** + * 预留字段5数据 + */ + @TableField("field_data_5") + private String fieldData5; + + /** + * 显示排序 + */ + @TableField("display_sort") + private Long displaySort; + + /** + * 备注 + */ + @TableField("remark") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @TableField("active_flag") + private String activeFlag; + + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java new file mode 100644 index 0000000..0dc5e4d --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java @@ -0,0 +1,124 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysMasterData; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 主数据维护业务对象 sys_master_data + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysMasterData.class, reverseConvertGenerate = false) +public class SysMasterDataBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long masterDataId; + + /** + * 所属模块(1MES 2WMS 3DMS 4QMS 5EMS) + */ + @NotBlank(message = "所属模块(1MES 2WMS 3DMS 4QMS 5EMS)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String moduleType; + + /** + * 父级标识;(1是 0否) + */ + @NotBlank(message = "父级标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String parentFlag; + + /** + * 菜单ID + */ + private Long menuId; + + /** + * 路由参数 + */ + @NotBlank(message = "路由参数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String queryParam; + + /** + * 主数据标题;例:品牌、层级、花纹 + */ + @NotBlank(message = "主数据标题;例:品牌、层级、花纹不能为空", groups = { AddGroup.class, EditGroup.class }) + private String masterDataTitle; + + /** + * 预留字段1名称 + */ + private String fieldName1; + + /** + * 预留字段1显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段1显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag1; + + /** + * 预留字段2名称 + */ + private String fieldName2; + + /** + * 预留字段2显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段2显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag2; + + /** + * 预留字段3名称 + */ + private String fieldName3; + + /** + * 预留字段3显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段3显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag3; + + /** + * 预留字段4名称 + */ + private String fieldName4; + + /** + * 预留字段4显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段4显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag4; + + /** + * 预留字段5名称 + */ + private String fieldName5; + + /** + * 预留字段5显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段5显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag5; + + /** + * 激活标识(1是 0否) + */ + @NotBlank(message = "激活标识(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java new file mode 100644 index 0000000..797b535 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java @@ -0,0 +1,97 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 主数据维护明细业务对象 sys_master_data_detail + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysMasterDataDetail.class, reverseConvertGenerate = false) +public class SysMasterDataDetailBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long masterDataDetailId; + + /** + * 主数据ID + */ + private Long masterDataId; + + /** + * 父级标识 + */ + private Long parentId; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 主数据明细编号 + */ + @NotBlank(message = "主数据明细编号不能为空", groups = {AddGroup.class, EditGroup.class}) + private String dataDetailCode; + + /** + * 主数据明细名称 + */ + @NotBlank(message = "主数据明细名称不能为空", groups = {AddGroup.class, EditGroup.class}) + private String dataDetailName; + + /** + * 预留字段1数据 + */ + private String fieldData1; + + /** + * 预留字段2数据 + */ + private String fieldData2; + + /** + * 预留字段3数据 + */ + private String fieldData3; + + /** + * 预留字段4数据 + */ + private String fieldData4; + + /** + * 预留字段5数据 + */ + private String fieldData5; + + /** + * 显示排序 + */ + private Long displaySort; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + @NotBlank(message = "激活标识(1是 0否)不能为空", groups = {AddGroup.class, EditGroup.class}) + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java new file mode 100644 index 0000000..084328d --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java @@ -0,0 +1,117 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysMasterDataDetail; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 主数据维护明细视图对象 sys_master_data_detail + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysMasterDataDetail.class) +public class SysMasterDataDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long masterDataDetailId; + + /** + * 主数据ID + */ + @ExcelProperty(value = "主数据ID") + private Long masterDataId; + + /** + * 父级标识 + */ + @ExcelProperty(value = "父级标识") + private Long parentId; + + /** + * 祖级列表 + */ + @ExcelProperty(value = "祖级列表") + private String ancestors; + + /** + * 主数据明细编号 + */ + @ExcelProperty(value = "主数据明细编号") + private String dataDetailCode; + + /** + * 主数据明细名称 + */ + @ExcelProperty(value = "主数据明细名称") + private String dataDetailName; + + /** + * 预留字段1数据 + */ + @ExcelProperty(value = "预留字段1数据") + private String fieldData1; + + /** + * 预留字段2数据 + */ + @ExcelProperty(value = "预留字段2数据") + private String fieldData2; + + /** + * 预留字段3数据 + */ + @ExcelProperty(value = "预留字段3数据") + private String fieldData3; + + /** + * 预留字段4数据 + */ + @ExcelProperty(value = "预留字段4数据") + private String fieldData4; + + /** + * 预留字段5数据 + */ + @ExcelProperty(value = "预留字段5数据") + private String fieldData5; + + /** + * 显示排序 + */ + @ExcelProperty(value = "显示排序") + private Long displaySort; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java new file mode 100644 index 0000000..94dd8c1 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java @@ -0,0 +1,148 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysMasterData; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 主数据维护视图对象 sys_master_data + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysMasterData.class) +public class SysMasterDataVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long masterDataId; + + /** + * 所属模块(1MES 2WMS 3DMS 4QMS 5EMS) + */ + @ExcelProperty(value = "所属模块", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_module_type") + private String moduleType; + + /** + * 父级标识;(1是 0否) + */ + @ExcelProperty(value = "父级标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String parentFlag; + + /** + * 菜单ID + */ + @ExcelProperty(value = "菜单ID") + private Long menuId; + + /** + * 路由参数 + */ + @ExcelProperty(value = "路由参数") + private String queryParam; + + /** + * 主数据标题;例:品牌、层级、花纹 + */ + @ExcelProperty(value = "主数据标题;例:品牌、层级、花纹") + private String masterDataTitle; + + /** + * 预留字段1名称 + */ + @ExcelProperty(value = "预留字段1名称") + private String fieldName1; + + /** + * 预留字段1显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段1显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag1; + + /** + * 预留字段2名称 + */ + @ExcelProperty(value = "预留字段2名称") + private String fieldName2; + + /** + * 预留字段2显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段2显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag2; + + /** + * 预留字段3名称 + */ + @ExcelProperty(value = "预留字段3名称") + private String fieldName3; + + /** + * 预留字段3显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段3显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag3; + + /** + * 预留字段4名称 + */ + @ExcelProperty(value = "预留字段4名称") + private String fieldName4; + + /** + * 预留字段4显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段4显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag4; + + /** + * 预留字段5名称 + */ + @ExcelProperty(value = "预留字段5名称") + private String fieldName5; + + /** + * 预留字段5显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段5显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag5; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java new file mode 100644 index 0000000..f506fa5 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 主数据维护明细Mapper接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface SysMasterDataDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java new file mode 100644 index 0000000..48033dc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysMasterData; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 主数据维护Mapper接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface SysMasterDataMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java new file mode 100644 index 0000000..2908f91 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.system.domain.bo.SysMasterDataDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 主数据维护明细Service接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface ISysMasterDataDetailService { + + /** + * 查询主数据维护明细 + * + * @param masterDataDetailId 主键 + * @return 主数据维护明细 + */ + SysMasterDataDetailVo queryById(Long masterDataDetailId); + + /** + * 分页查询主数据维护明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护明细分页列表 + */ + TableDataInfo queryPageList(SysMasterDataDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的主数据维护明细列表 + * + * @param bo 查询条件 + * @return 主数据维护明细列表 + */ + List queryList(SysMasterDataDetailBo bo); + + /** + * 新增主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否新增成功 + */ + Boolean insertByBo(SysMasterDataDetailBo bo); + + /** + * 修改主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否修改成功 + */ + Boolean updateByBo(SysMasterDataDetailBo bo); + + /** + * 校验并批量删除主数据维护明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java new file mode 100644 index 0000000..eb0b1b2 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java @@ -0,0 +1,69 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysMasterData; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.system.domain.bo.SysMasterDataBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 主数据维护Service接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface ISysMasterDataService { + + /** + * 查询主数据维护 + * + * @param masterDataId 主键 + * @return 主数据维护 + */ + SysMasterDataVo queryById(Long masterDataId); + + /** + * 分页查询主数据维护列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护分页列表 + */ + TableDataInfo queryPageList(SysMasterDataBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的主数据维护列表 + * + * @param bo 查询条件 + * @return 主数据维护列表 + */ + List queryList(SysMasterDataBo bo); + + /** + * 新增主数据维护 + * + * @param bo 主数据维护 + * @return 是否新增成功 + */ + Boolean insertByBo(SysMasterDataBo bo); + + /** + * 修改主数据维护 + * + * @param bo 主数据维护 + * @return 是否修改成功 + */ + Boolean updateByBo(SysMasterDataBo bo); + + /** + * 校验并批量删除主数据维护信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java new file mode 100644 index 0000000..17b2124 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java @@ -0,0 +1,144 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysMasterDataDetailBo; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.system.mapper.SysMasterDataDetailMapper; +import org.dromara.system.service.ISysMasterDataDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 主数据维护明细Service业务层处理 + * + * @author Yinq + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class SysMasterDataDetailServiceImpl implements ISysMasterDataDetailService { + + private final SysMasterDataDetailMapper baseMapper; + + /** + * 查询主数据维护明细 + * + * @param masterDataDetailId 主键 + * @return 主数据维护明细 + */ + @Override + public SysMasterDataDetailVo queryById(Long masterDataDetailId){ + return baseMapper.selectVoById(masterDataDetailId); + } + + /** + * 分页查询主数据维护明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护明细分页列表 + */ + @Override + public TableDataInfo queryPageList(SysMasterDataDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的主数据维护明细列表 + * + * @param bo 查询条件 + * @return 主数据维护明细列表 + */ + @Override + public List queryList(SysMasterDataDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(SysMasterDataDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysMasterDataDetail.class) + .selectAll(SysMasterDataDetail.class) + .eq(bo.getMasterDataDetailId() != null, SysMasterDataDetail::getMasterDataDetailId, bo.getMasterDataDetailId()) + .eq(bo.getMasterDataId() != null, SysMasterDataDetail::getMasterDataId, bo.getMasterDataId()) + .eq(bo.getParentId() != null, SysMasterDataDetail::getParentId, bo.getParentId()) + .eq(StringUtils.isNotBlank(bo.getAncestors()), SysMasterDataDetail::getAncestors, bo.getAncestors()) + .eq(StringUtils.isNotBlank(bo.getDataDetailCode()), SysMasterDataDetail::getDataDetailCode, bo.getDataDetailCode()) + .like(StringUtils.isNotBlank(bo.getDataDetailName()), SysMasterDataDetail::getDataDetailName, bo.getDataDetailName()) + .eq(StringUtils.isNotBlank(bo.getFieldData1()), SysMasterDataDetail::getFieldData1, bo.getFieldData1()) + .eq(StringUtils.isNotBlank(bo.getFieldData2()), SysMasterDataDetail::getFieldData2, bo.getFieldData2()) + .eq(StringUtils.isNotBlank(bo.getFieldData3()), SysMasterDataDetail::getFieldData3, bo.getFieldData3()) + .eq(StringUtils.isNotBlank(bo.getFieldData4()), SysMasterDataDetail::getFieldData4, bo.getFieldData4()) + .eq(StringUtils.isNotBlank(bo.getFieldData5()), SysMasterDataDetail::getFieldData5, bo.getFieldData5()) + .eq(bo.getDisplaySort() != null, SysMasterDataDetail::getDisplaySort, bo.getDisplaySort()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysMasterDataDetail::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(SysMasterDataDetail::getCreateTime); + return lqw; + } + + /** + * 新增主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysMasterDataDetailBo bo) { + SysMasterDataDetail add = MapstructUtils.convert(bo, SysMasterDataDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMasterDataDetailId(add.getMasterDataDetailId()); + } + return flag; + } + + /** + * 修改主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysMasterDataDetailBo bo) { + SysMasterDataDetail update = MapstructUtils.convert(bo, SysMasterDataDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysMasterDataDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除主数据维护明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java new file mode 100644 index 0000000..365643f --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java @@ -0,0 +1,148 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysMasterDataBo; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.system.domain.SysMasterData; +import org.dromara.system.mapper.SysMasterDataMapper; +import org.dromara.system.service.ISysMasterDataService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 主数据维护Service业务层处理 + * + * @author Yinq + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class SysMasterDataServiceImpl implements ISysMasterDataService { + + private final SysMasterDataMapper baseMapper; + + /** + * 查询主数据维护 + * + * @param masterDataId 主键 + * @return 主数据维护 + */ + @Override + public SysMasterDataVo queryById(Long masterDataId){ + return baseMapper.selectVoById(masterDataId); + } + + /** + * 分页查询主数据维护列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护分页列表 + */ + @Override + public TableDataInfo queryPageList(SysMasterDataBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的主数据维护列表 + * + * @param bo 查询条件 + * @return 主数据维护列表 + */ + @Override + public List queryList(SysMasterDataBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(SysMasterDataBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysMasterData.class) + .selectAll(SysMasterData.class) + .eq(bo.getMasterDataId() != null, SysMasterData::getMasterDataId, bo.getMasterDataId()) + .eq(StringUtils.isNotBlank(bo.getModuleType()), SysMasterData::getModuleType, bo.getModuleType()) + .eq(StringUtils.isNotBlank(bo.getParentFlag()), SysMasterData::getParentFlag, bo.getParentFlag()) + .eq(bo.getMenuId() != null, SysMasterData::getMenuId, bo.getMenuId()) + .eq(StringUtils.isNotBlank(bo.getQueryParam()), SysMasterData::getQueryParam, bo.getQueryParam()) + .eq(StringUtils.isNotBlank(bo.getMasterDataTitle()), SysMasterData::getMasterDataTitle, bo.getMasterDataTitle()) + .eq(StringUtils.isNotBlank(bo.getFieldName1()), SysMasterData::getFieldName1, bo.getFieldName1()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag1()), SysMasterData::getDisplayFlag1, bo.getDisplayFlag1()) + .eq(StringUtils.isNotBlank(bo.getFieldName2()), SysMasterData::getFieldName2, bo.getFieldName2()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag2()), SysMasterData::getDisplayFlag2, bo.getDisplayFlag2()) + .eq(StringUtils.isNotBlank(bo.getFieldName3()), SysMasterData::getFieldName3, bo.getFieldName3()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag3()), SysMasterData::getDisplayFlag3, bo.getDisplayFlag3()) + .eq(StringUtils.isNotBlank(bo.getFieldName4()), SysMasterData::getFieldName4, bo.getFieldName4()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag4()), SysMasterData::getDisplayFlag4, bo.getDisplayFlag4()) + .eq(StringUtils.isNotBlank(bo.getFieldName5()), SysMasterData::getFieldName5, bo.getFieldName5()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag5()), SysMasterData::getDisplayFlag5, bo.getDisplayFlag5()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysMasterData::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(SysMasterData::getCreateTime); + return lqw; + } + + /** + * 新增主数据维护 + * + * @param bo 主数据维护 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysMasterDataBo bo) { + SysMasterData add = MapstructUtils.convert(bo, SysMasterData.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMasterDataId(add.getMasterDataId()); + } + return flag; + } + + /** + * 修改主数据维护 + * + * @param bo 主数据维护 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysMasterDataBo bo) { + SysMasterData update = MapstructUtils.convert(bo, SysMasterData.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysMasterData entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除主数据维护信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml new file mode 100644 index 0000000..c5a736c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml new file mode 100644 index 0000000..9b2b1dc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml @@ -0,0 +1,7 @@ + + + + + From b3bc1227418fa20c530b8e0c601a6eb1a95d9ea5 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 13 Jan 2025 09:42:44 +0800 Subject: [PATCH 08/69] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=89=A9=E6=96=99?= =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=92=8C=E7=A7=BB=E5=BA=93=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsBaseLocationController.java | 6 + .../WmsInventoryCheckController.java | 117 +++++++++++ .../WmsInventoryCheckRecordController.java | 117 +++++++++++ .../controller/WmsInventoryController.java | 5 + .../controller/WmsMoveOrderController.java | 117 +++++++++++ .../WmsOutstockRecordController.java | 2 +- .../org/dromara/wms/domain/WmsInventory.java | 2 + .../dromara/wms/domain/WmsInventoryCheck.java | 112 ++++++++++ .../wms/domain/WmsInventoryCheckRecord.java | 150 +++++++++++++ .../org/dromara/wms/domain/WmsMoveOrder.java | 119 +++++++++++ .../dromara/wms/domain/WmsOutstockRecord.java | 12 +- .../dromara/wms/domain/WmsReturnOrder.java | 9 +- .../wms/domain/bo/WmsInventoryCheckBo.java | 92 ++++++++ .../domain/bo/WmsInventoryCheckRecordBo.java | 132 ++++++++++++ .../dromara/wms/domain/bo/WmsMoveOrderBo.java | 94 +++++++++ .../wms/domain/bo/WmsOutstockRecordBo.java | 7 +- .../wms/domain/bo/WmsReturnOrderBo.java | 9 +- .../domain/vo/WmsInventoryCheckRecordVo.java | 184 ++++++++++++++++ .../wms/domain/vo/WmsInventoryCheckVo.java | 135 ++++++++++++ .../dromara/wms/domain/vo/WmsInventoryVo.java | 1 + .../dromara/wms/domain/vo/WmsMoveOrderVo.java | 142 +++++++++++++ .../wms/domain/vo/WmsOutstockRecordVo.java | 6 +- .../wms/domain/vo/WmsReturnOrderVo.java | 8 +- .../wms/mapper/WmsInventoryCheckMapper.java | 15 ++ .../mapper/WmsInventoryCheckRecordMapper.java | 15 ++ .../wms/mapper/WmsMoveOrderMapper.java | 15 ++ .../wms/service/IWmsBaseLocationService.java | 1 + .../IWmsInventoryCheckRecordService.java | 68 ++++++ .../service/IWmsInventoryCheckService.java | 68 ++++++ .../wms/service/IWmsInventoryService.java | 10 + .../wms/service/IWmsMoveOrderService.java | 68 ++++++ .../impl/WmsBaseLocationServiceImpl.java | 7 + .../impl/WmsInstockOrderServiceImpl.java | 1 - .../WmsInventoryCheckRecordServiceImpl.java | 151 +++++++++++++ .../impl/WmsInventoryCheckServiceImpl.java | 198 ++++++++++++++++++ .../service/impl/WmsInventoryServiceImpl.java | 42 +++- .../service/impl/WmsMoveOrderServiceImpl.java | 185 ++++++++++++++++ .../impl/WmsOutstockRecordServiceImpl.java | 29 ++- .../impl/WmsReturnOrderServiceImpl.java | 39 +++- .../mapper/wms/WmsInventoryCheckMapper.xml | 7 + .../mapper/wms/WmsMoveOrderMapper.xml | 7 + 41 files changed, 2481 insertions(+), 23 deletions(-) create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java index 62412e4..148e455 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java @@ -114,4 +114,10 @@ public class WmsBaseLocationController extends BaseController { List list = wmsBaseLocationService.queryList(bo); return R.ok(list); } + + @GetMapping("getWmsBaseLocationVoList") + public R> getWmsBaseLocationVoList(WmsBaseLocationBo bo) { + List list = wmsBaseLocationService.queryVoList(bo); + return R.ok(list); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java new file mode 100644 index 0000000..bdad3fe --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsInventoryCheckBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; +import org.dromara.wms.service.IWmsInventoryCheckService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 库存盘点 + * 前端访问路由地址为:/system/inventoryCheck + * + * @author LionLi + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/inventoryCheck") +public class WmsInventoryCheckController extends BaseController { + + private final IWmsInventoryCheckService wmsInventoryCheckService; + + /** + * 查询库存盘点列表 + */ + @SaCheckPermission("system:inventoryCheck:list") + @GetMapping("/list") + public TableDataInfo list(WmsInventoryCheckBo bo, PageQuery pageQuery) { + return wmsInventoryCheckService.queryPageList(bo, pageQuery); + } + + /** + * 导出库存盘点列表 + */ + @SaCheckPermission("system:inventoryCheck:export") + @Log(title = "库存盘点", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsInventoryCheckBo bo, HttpServletResponse response) { + List list = wmsInventoryCheckService.queryList(bo); + ExcelUtil.exportExcel(list, "库存盘点", WmsInventoryCheckVo.class, response); + } + + /** + * 获取库存盘点详细信息 + * + * @param inventoryCheckId 主键 + */ + @SaCheckPermission("system:inventoryCheck:query") + @GetMapping("/{inventoryCheckId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long inventoryCheckId) { + return R.ok(wmsInventoryCheckService.queryById(inventoryCheckId)); + } + + /** + * 新增库存盘点 + */ + @SaCheckPermission("system:inventoryCheck:add") + @Log(title = "库存盘点", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsInventoryCheckBo bo) { + return toAjax(wmsInventoryCheckService.insertByBo(bo)); + } + + /** + * 修改库存盘点 + */ + @SaCheckPermission("system:inventoryCheck:edit") + @Log(title = "库存盘点", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsInventoryCheckBo bo) { + return toAjax(wmsInventoryCheckService.updateByBo(bo)); + } + + /** + * 删除库存盘点 + * + * @param inventoryCheckIds 主键串 + */ + @SaCheckPermission("system:inventoryCheck:remove") + @Log(title = "库存盘点", businessType = BusinessType.DELETE) + @DeleteMapping("/{inventoryCheckIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] inventoryCheckIds) { + return toAjax(wmsInventoryCheckService.deleteWithValidByIds(List.of(inventoryCheckIds), true)); + } + + + /** + * 下拉框查询库存盘点列表 + */ + + @GetMapping("getWmsInventoryCheckList") + public R> getWmsInventoryChecklist(WmsInventoryCheckBo bo) { + List list = wmsInventoryCheckService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java new file mode 100644 index 0000000..2adce77 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; +import org.dromara.wms.service.IWmsInventoryCheckRecordService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 盘点记录和调整工单 + * 前端访问路由地址为:/system/inventoryCheckRecord + * + * @author LionLi + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/inventoryCheckRecord") +public class WmsInventoryCheckRecordController extends BaseController { + + private final IWmsInventoryCheckRecordService wmsInventoryCheckRecordService; + + /** + * 查询盘点记录和调整工单列表 + */ + @SaCheckPermission("system:inventoryCheckRecord:list") + @GetMapping("/list") + public TableDataInfo list(WmsInventoryCheckRecordBo bo, PageQuery pageQuery) { + return wmsInventoryCheckRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出盘点记录和调整工单列表 + */ + @SaCheckPermission("system:inventoryCheckRecord:export") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsInventoryCheckRecordBo bo, HttpServletResponse response) { + List list = wmsInventoryCheckRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "盘点记录和调整工单", WmsInventoryCheckRecordVo.class, response); + } + + /** + * 获取盘点记录和调整工单详细信息 + * + * @param icRecordId 主键 + */ + @SaCheckPermission("system:inventoryCheckRecord:query") + @GetMapping("/{icRecordId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long icRecordId) { + return R.ok(wmsInventoryCheckRecordService.queryById(icRecordId)); + } + + /** + * 新增盘点记录和调整工单 + */ + @SaCheckPermission("system:inventoryCheckRecord:add") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsInventoryCheckRecordBo bo) { + return toAjax(wmsInventoryCheckRecordService.insertByBo(bo)); + } + + /** + * 修改盘点记录和调整工单 + */ + @SaCheckPermission("system:inventoryCheckRecord:edit") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsInventoryCheckRecordBo bo) { + return toAjax(wmsInventoryCheckRecordService.updateByBo(bo)); + } + + /** + * 删除盘点记录和调整工单 + * + * @param icRecordIds 主键串 + */ + @SaCheckPermission("system:inventoryCheckRecord:remove") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{icRecordIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] icRecordIds) { + return toAjax(wmsInventoryCheckRecordService.deleteWithValidByIds(List.of(icRecordIds), true)); + } + + + /** + * 下拉框查询盘点记录和调整工单列表 + */ + + @GetMapping("getWmsInventoryCheckRecordList") + public R> getWmsInventoryCheckRecordlist(WmsInventoryCheckRecordBo bo) { + List list = wmsInventoryCheckRecordService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java index b4074ca..606b1da 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java @@ -113,4 +113,9 @@ public class WmsInventoryController extends BaseController { BigDecimal bigDecimal = wmsInventoryService.materailCount(materialId); return R.ok(wmsInventoryService.materailCount(materialId)); } + + @GetMapping("/getMaterialInfoList") + public R> getMaterialInfoList(WmsInventoryBo bo) { + return R.ok(wmsInventoryService.getMaterialInfoList(bo)); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java new file mode 100644 index 0000000..5848147 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; +import org.dromara.wms.service.IWmsMoveOrderService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 移库工单 + * 前端访问路由地址为:/system/moveOrder + * + * @author LionLi + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/moveOrder") +public class WmsMoveOrderController extends BaseController { + + private final IWmsMoveOrderService wmsMoveOrderService; + + /** + * 查询移库工单列表 + */ + @SaCheckPermission("system:moveOrder:list") + @GetMapping("/list") + public TableDataInfo list(WmsMoveOrderBo bo, PageQuery pageQuery) { + return wmsMoveOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出移库工单列表 + */ + @SaCheckPermission("system:moveOrder:export") + @Log(title = "移库工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsMoveOrderBo bo, HttpServletResponse response) { + List list = wmsMoveOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "移库工单", WmsMoveOrderVo.class, response); + } + + /** + * 获取移库工单详细信息 + * + * @param moveId 主键 + */ + @SaCheckPermission("system:moveOrder:query") + @GetMapping("/{moveId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long moveId) { + return R.ok(wmsMoveOrderService.queryById(moveId)); + } + + /** + * 新增移库工单 + */ + @SaCheckPermission("system:moveOrder:add") + @Log(title = "移库工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsMoveOrderBo bo) { + return toAjax(wmsMoveOrderService.insertByBo(bo)); + } + + /** + * 修改移库工单 + */ + @SaCheckPermission("system:moveOrder:edit") + @Log(title = "移库工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsMoveOrderBo bo) { + return toAjax(wmsMoveOrderService.updateByBo(bo)); + } + + /** + * 删除移库工单 + * + * @param moveIds 主键串 + */ + @SaCheckPermission("system:moveOrder:remove") + @Log(title = "移库工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{moveIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] moveIds) { + return toAjax(wmsMoveOrderService.deleteWithValidByIds(List.of(moveIds), true)); + } + + + /** + * 下拉框查询移库工单列表 + */ + + @GetMapping("getWmsMoveOrderList") + public R> getWmsMoveOrderlist(WmsMoveOrderBo bo) { + List list = wmsMoveOrderService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java index 656bcae..6ca1a0b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java @@ -87,7 +87,7 @@ public class WmsOutstockRecordController extends BaseController { @Log(title = "出库记录", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsOutstockRecordBo bo) { + public R edit(@RequestBody WmsOutstockRecordBo bo) { return toAjax(wmsOutstockRecordService.updateByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java index 0fc0d25..b519b36 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java @@ -93,6 +93,8 @@ public class WmsInventory{ private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 + @TableField(exist = false) + private String materialCode;//字段映射 } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java new file mode 100644 index 0000000..5e357bf --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java @@ -0,0 +1,112 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 库存盘点对象 wms_inventory_check + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@TableName("wms_inventory_check") +public class WmsInventoryCheck { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + private Long inventoryCheckId; + + /** + * 盘点单号 + */ + private String checkCode; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 计划仓库ID + */ + private Long planWarehouseId; + + /** + * 盘点类型(1全部,2货架,3物料)) + */ + private String checkType; + + /** + * 盘点状态(0计划,2盘点中,3盘点完成) + */ + private String checkStatus; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 开始时间 + */ + private Date beginTime; + + /** + * 结束时间 + */ + private Date endTime; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String warehouseCode;//字段映射 + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java new file mode 100644 index 0000000..29a3db9 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java @@ -0,0 +1,150 @@ +package org.dromara.wms.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 盘点记录和调整工单对象 wms_inventory_check_record + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@TableName("wms_inventory_check_record") +public class WmsInventoryCheckRecord { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 盘点记录主键 + */ + private Long icRecordId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 盘点单号 + */ + private String checkCode; + + /** + * 批次码 + */ + private String batchCode; + + /** + * 物料id + */ + private Long materialId; + + /** + * 库位编码 + */ + private String locationCode; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 库存数量 + */ + private String inventoryQty; + + /** + * 盘点数量 + */ + private Long checkQty; + + /** + * 盘点状态(0异常,1正常) + */ + private String checkStatus; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + + /** + * 是否发起调整(0否,1是) + */ + private String isAdjust; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 调整状态(0待执行,1完成) + */ + private String adjustStatus; + + /** + * 调整类型(1库存调整) + */ + private String adjustType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java new file mode 100644 index 0000000..4001f25 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java @@ -0,0 +1,119 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 移库工单对象 wms_move_order + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@TableName("wms_move_order") +public class WmsMoveOrder{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + private Long moveId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 仓库ID + */ + private Long warehouseId; + + /** + * 计划库位 + */ + private String planLocationCode; + + /** + * 工单状态(0执行中,1完成,2关闭) + */ + private String orderStatus; + + /** + * 目标库位 + */ + private String targetLocationCode; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String warehouseCode; + @TableField(exist = false) + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java index ee7c1da..d2af59a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java @@ -1,5 +1,7 @@ package org.dromara.wms.domain; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import com.ibm.icu.math.BigDecimal; import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -55,7 +57,8 @@ public class WmsOutstockRecord extends TenantEntity { /** * 出库数量 */ - private Long outstockQty; + @TableField(typeHandler = JacksonTypeHandler.class) + private java.math.BigDecimal outstockQty; /** * 物料大类 @@ -70,7 +73,8 @@ public class WmsOutstockRecord extends TenantEntity { /** * erp同步数量 */ - private Long erpSynchronousQty; + @TableField(typeHandler = JacksonTypeHandler.class) + private java.math.BigDecimal erpSynchronousQty; /** @@ -84,4 +88,8 @@ public class WmsOutstockRecord extends TenantEntity { private String materialUnit; @TableField(exist = false) private String materialSpec; + + @TableField(exist = false) + private java.math.BigDecimal returnQty; + private String returnFlag; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java index 7c24b1e..3b0e085 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java @@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -45,7 +47,7 @@ public class WmsReturnOrder { /** * 计划数量 */ - private Long planAmount; + private BigDecimal planAmount; /** * 仓库ID @@ -65,7 +67,7 @@ public class WmsReturnOrder { /** * 实际数量 */ - private Long returnAmount; + private BigDecimal returnAmount; /** * 实际退库库位 @@ -127,5 +129,8 @@ public class WmsReturnOrder { private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 + @TableField(exist = false) + private String materialCode; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java new file mode 100644 index 0000000..efe492d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java @@ -0,0 +1,92 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsInventoryCheck; + +/** + * 库存盘点业务对象 wms_inventory_check + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsInventoryCheck.class, reverseConvertGenerate = false) +public class WmsInventoryCheckBo extends BaseEntity { + + /** + * 表主键 + */ + + private Long inventoryCheckId; + + /** + * 盘点单号 + */ + + private String checkCode; + + /** + * 物料大类 + */ + + private String materialCategories; + + /** + * 计划仓库ID + */ + + private Long planWarehouseId; + + /** + * 盘点类型(1全部,2货架,3物料)) + */ + private String checkType; + + /** + * 盘点状态(0计划,2盘点中,3盘点完成) + */ + private String checkStatus; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 开始时间 + */ + private Date beginTime; + + /** + * 结束时间 + */ + private Date endTime; + private String tenantId; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java new file mode 100644 index 0000000..1146dc2 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java @@ -0,0 +1,132 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsInventoryCheckRecord; + +/** + * 盘点记录和调整工单业务对象 wms_inventory_check_record + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsInventoryCheckRecord.class, reverseConvertGenerate = false) +public class WmsInventoryCheckRecordBo extends BaseEntity { + + /** + * 盘点记录主键 + */ + private Long icRecordId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 盘点单号 + */ + private String checkCode; + + /** + * 批次码 + */ + private String batchCode; + + /** + * 物料id + */ + private Long materialId; + + /** + * 库位编码 + */ + private String locationCode; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 库存数量 + */ + private String inventoryQty; + + /** + * 盘点数量 + */ + private Long checkQty; + + /** + * 盘点状态(0异常,1正常) + */ + private String checkStatus; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + + /** + * 是否发起调整(0否,1是) + */ + private String isAdjust; + + /** + * 审核人 + */ + + private String auditBy; + + /** + * 审核时间 + */ + + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + + private String auditStatus; + + /** + * 审核意见 + */ + + private String auditComments; + + /** + * 调整状态(0待执行,1完成) + */ + + private String adjustStatus; + + /** + * 调整类型(1库存调整) + */ + + private String adjustType; + private String tenantId; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java new file mode 100644 index 0000000..bbb5774 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java @@ -0,0 +1,94 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsMoveOrder; + +/** + * 移库工单业务对象 wms_move_order + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsMoveOrder.class, reverseConvertGenerate = false) +public class WmsMoveOrderBo extends BaseEntity { + + /** + * 表主键 + */ + private Long moveId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 仓库ID + */ + private Long warehouseId; + + /** + * 计划库位 + */ + private String planLocationCode; + + /** + * 工单状态(0执行中,1完成,2关闭) + */ + private String orderStatus; + + /** + * 目标库位 + */ + private String targetLocationCode; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + private String tenantId; + private String warehouseCode; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java index ff945cf..91b4a7f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.bo; +import com.ibm.icu.math.BigDecimal; import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -53,7 +54,7 @@ public class WmsOutstockRecordBo extends BaseEntity { /** * 出库数量 */ - private Long outstockQty; + private java.math.BigDecimal outstockQty; /** * 物料大类 @@ -68,7 +69,9 @@ public class WmsOutstockRecordBo extends BaseEntity { /** * erp同步数量 */ - private Long erpSynchronousQty; + private java.math.BigDecimal erpSynchronousQty; + private java.math.BigDecimal returnQty; + private String returnFlag; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java index 3bb0946..11991a3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.bo; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; @@ -7,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.wms.domain.WmsReturnOrder; @@ -49,7 +52,7 @@ public class WmsReturnOrderBo extends BaseEntity{ * 计划数量 */ // @NotNull(message = "计划数量不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long planAmount; + private BigDecimal planAmount; /** * 仓库ID @@ -73,7 +76,7 @@ public class WmsReturnOrderBo extends BaseEntity{ * 实际数量 */ // @NotNull(message = "实际数量不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long returnAmount; + private BigDecimal returnAmount; /** * 实际退库库位 @@ -117,6 +120,8 @@ public class WmsReturnOrderBo extends BaseEntity{ // @NotNull(message = "erp同步数量不能为空", groups = { AddGroup.class, EditGroup.class }) private Long erpSynchronousQty; private String tenantId; + private String materialCode; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java new file mode 100644 index 0000000..e5b7c1e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java @@ -0,0 +1,184 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsInventoryCheckRecord; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 盘点记录和调整工单视图对象 wms_inventory_check_record + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsInventoryCheckRecord.class) +public class WmsInventoryCheckRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 盘点记录主键 + */ + @ExcelProperty(value = "盘点记录主键") + private Long icRecordId; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 盘点单号 + */ + @ExcelProperty(value = "盘点单号") + private String checkCode; + + /** + * 批次码 + */ + @ExcelProperty(value = "批次码") + private String batchCode; + + /** + * 物料id + */ + @ExcelProperty(value = "物料id") + private Long materialId; + + /** + * 库位编码 + */ + @ExcelProperty(value = "库位编码") + private String locationCode; + + /** + * 物料编码 + */ + @ExcelProperty(value = "物料编码") + private String materialCode; + + /** + * 物料名称 + */ + @ExcelProperty(value = "物料名称") + private String materialName; + + /** + * 库存数量 + */ + @ExcelProperty(value = "库存数量") + private String inventoryQty; + + /** + * 盘点数量 + */ + @ExcelProperty(value = "盘点数量") + private Long checkQty; + + /** + * 盘点状态(0异常,1正常) + */ + @ExcelProperty(value = "盘点状态(0异常,1正常)") + private String checkStatus; + + /** + * erp同步状态 + */ + @ExcelProperty(value = "erp同步状态") + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + @ExcelProperty(value = "erp同步数量") + private Long erpSynchronousQty; + + /** + * 是否发起调整(0否,1是) + */ + @ExcelProperty(value = "是否发起调整", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=否,1是") + private String isAdjust; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * 调整状态(0待执行,1完成) + */ + @ExcelProperty(value = "调整状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=待执行,1完成") + private String adjustStatus; + + /** + * 调整类型(1库存调整) + */ + @ExcelProperty(value = "调整类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=库存调整") + private String adjustType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java new file mode 100644 index 0000000..a0e3576 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java @@ -0,0 +1,135 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsInventoryCheck; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 库存盘点视图对象 wms_inventory_check + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsInventoryCheck.class) +public class WmsInventoryCheckVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long inventoryCheckId; + + /** + * 盘点单号 + */ + @ExcelProperty(value = "盘点单号") + private String checkCode; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 计划仓库ID + */ + @ExcelProperty(value = "计划仓库ID") + private Long planWarehouseId; + + /** + * 盘点类型(1全部,2货架,3物料)) + */ + @ExcelProperty(value = "盘点类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=全部,2货架,3物料") + private String checkType; + + /** + * 盘点状态(0计划,2盘点中,3盘点完成) + */ + @ExcelProperty(value = "盘点状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=计划,2盘点中,3盘点完成") + private String checkStatus; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * 开始时间 + */ + @ExcelProperty(value = "开始时间") + private Date beginTime; + + /** + * 结束时间 + */ + @ExcelProperty(value = "结束时间") + private Date endTime; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + private String warehouseCode;//字段映射 +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java index 8abbeba..4c52d62 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java @@ -112,6 +112,7 @@ public class WmsInventoryVo implements Serializable { private Date updateTime; private String warehouseCode;//字段映射 + private String materialCode;//字段映射 } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java new file mode 100644 index 0000000..15e9506 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java @@ -0,0 +1,142 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsMoveOrder; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 移库工单视图对象 wms_move_order + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsMoveOrder.class) +public class WmsMoveOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long moveId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 仓库ID + */ + @ExcelProperty(value = "仓库ID") + private Long warehouseId; + + /** + * 计划库位 + */ + @ExcelProperty(value = "计划库位") + private String planLocationCode; + + /** + * 工单状态(0执行中,1完成,2关闭) + */ + @ExcelProperty(value = "工单状态(0执行中,1完成,2关闭)") + private String orderStatus; + + /** + * 目标库位 + */ + @ExcelProperty(value = "目标库位") + private String targetLocationCode; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * erp同步状态 + */ + @ExcelProperty(value = "erp同步状态") + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + @ExcelProperty(value = "erp同步数量") + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String warehouseCode; + @TableField(exist = false) + private String materialCode; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java index f25241e..9075c6e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java @@ -10,6 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @@ -68,7 +69,7 @@ public class WmsOutstockRecordVo implements Serializable { * 出库数量 */ @ExcelProperty(value = "出库数量") - private Long outstockQty; + private BigDecimal outstockQty; /** * 物料大类 @@ -100,7 +101,7 @@ public class WmsOutstockRecordVo implements Serializable { * erp同步数量 */ @ExcelProperty(value = "erp同步数量") - private Long erpSynchronousQty; + private BigDecimal erpSynchronousQty; /** * 物料信息 */ @@ -108,4 +109,5 @@ public class WmsOutstockRecordVo implements Serializable { private String materialName; private String materialUnit; private String materialSpec; + private String returnFlag; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java index eed0f0d..fa9e579 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.FieldFill; @@ -61,7 +62,7 @@ public class WmsReturnOrderVo implements Serializable { * 计划数量 */ @ExcelProperty(value = "计划数量") - private Long planAmount; + private BigDecimal planAmount; /** * 仓库ID @@ -85,7 +86,7 @@ public class WmsReturnOrderVo implements Serializable { * 实际数量 */ @ExcelProperty(value = "实际数量") - private Long returnAmount; + private BigDecimal returnAmount; /** * 实际退库库位 @@ -154,4 +155,7 @@ public class WmsReturnOrderVo implements Serializable { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; private String warehouseCode;//字段映射 + + private String materialCode; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java new file mode 100644 index 0000000..3bc4ad6 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsInventoryCheck; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; + +/** + * 库存盘点Mapper接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface WmsInventoryCheckMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java new file mode 100644 index 0000000..7ae6f70 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsInventoryCheckRecord; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; + +/** + * 盘点记录和调整工单Mapper接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface WmsInventoryCheckRecordMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java new file mode 100644 index 0000000..d1f1e4a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsMoveOrder; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; + +/** + * 移库工单Mapper接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface WmsMoveOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java index 57d9218..68fee42 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java @@ -41,6 +41,7 @@ public interface IWmsBaseLocationService { * @return 库位基础信息列表 */ List queryList(WmsBaseLocationBo bo); + List queryVoList(WmsBaseLocationBo bo); /** * 新增库位基础信息 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java new file mode 100644 index 0000000..edfa244 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; + +import java.util.Collection; +import java.util.List; + +/** + * 盘点记录和调整工单Service接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface IWmsInventoryCheckRecordService { + + /** + * 查询盘点记录和调整工单 + * + * @param icRecordId 主键 + * @return 盘点记录和调整工单 + */ + WmsInventoryCheckRecordVo queryById(Long icRecordId); + + /** + * 分页查询盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 盘点记录和调整工单分页列表 + */ + TableDataInfo queryPageList(WmsInventoryCheckRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @return 盘点记录和调整工单列表 + */ + List queryList(WmsInventoryCheckRecordBo bo); + + /** + * 新增盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsInventoryCheckRecordBo bo); + + /** + * 修改盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsInventoryCheckRecordBo bo); + + /** + * 校验并批量删除盘点记录和调整工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java new file mode 100644 index 0000000..2f6834d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsInventoryCheckBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; + +import java.util.Collection; +import java.util.List; + +/** + * 库存盘点Service接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface IWmsInventoryCheckService { + + /** + * 查询库存盘点 + * + * @param inventoryCheckId 主键 + * @return 库存盘点 + */ + WmsInventoryCheckVo queryById(Long inventoryCheckId); + + /** + * 分页查询库存盘点列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 库存盘点分页列表 + */ + TableDataInfo queryPageList(WmsInventoryCheckBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的库存盘点列表 + * + * @param bo 查询条件 + * @return 库存盘点列表 + */ + List queryList(WmsInventoryCheckBo bo); + + /** + * 新增库存盘点 + * + * @param bo 库存盘点 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsInventoryCheckBo bo); + + /** + * 修改库存盘点 + * + * @param bo 库存盘点 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsInventoryCheckBo bo); + + /** + * 校验并批量删除库存盘点信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java index 62a4013..b7bc75f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java @@ -4,10 +4,13 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.wms.domain.WmsInventory; import org.dromara.wms.domain.bo.WmsInventoryBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; /** @@ -69,4 +72,11 @@ public interface IWmsInventoryService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); BigDecimal materailCount(WmsInventory materialId); + HashMap> selectInventorys(WmsMoveOrderBo bo); + + List getMaterialInfoList(WmsInventoryBo bo); + + int updateWmsInventorys(ArrayList updateList); + + int deletePlanList(ArrayList ids); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java new file mode 100644 index 0000000..e3c8df4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; + +import java.util.Collection; +import java.util.List; + +/** + * 移库工单Service接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface IWmsMoveOrderService { + + /** + * 查询移库工单 + * + * @param moveId 主键 + * @return 移库工单 + */ + WmsMoveOrderVo queryById(Long moveId); + + /** + * 分页查询移库工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 移库工单分页列表 + */ + TableDataInfo queryPageList(WmsMoveOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的移库工单列表 + * + * @param bo 查询条件 + * @return 移库工单列表 + */ + List queryList(WmsMoveOrderBo bo); + + /** + * 新增移库工单 + * + * @param bo 移库工单 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsMoveOrderBo bo); + + /** + * 修改移库工单 + * + * @param bo 移库工单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsMoveOrderBo bo); + + /** + * 校验并批量删除移库工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java index 0cfbaa9..cecad89 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.wms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -69,6 +70,12 @@ public class WmsBaseLocationServiceImpl implements IWmsBaseLocationService { MPJLambdaWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } + @Override + public List queryVoList(WmsBaseLocationBo bo) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(WmsBaseLocation::getWarehouseId,bo.getWarehouseId()); + return baseMapper.selectVoList(lqw); + } private MPJLambdaWrapper buildQueryWrapper(WmsBaseLocationBo bo) { Map params = bo.getParams(); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java index 2915c95..72fa8d2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java @@ -150,7 +150,6 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { } return flag; } - public String generateOrder(Integer value){ if (value.toString().length()<3){ String fixedLengthString = String.format("%03d", value); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java new file mode 100644 index 0000000..dd3632c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java @@ -0,0 +1,151 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.wms.domain.WmsInventoryCheckRecord; +import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; +import org.dromara.wms.mapper.WmsInventoryCheckRecordMapper; +import org.dromara.wms.service.IWmsInventoryCheckRecordService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 盘点记录和调整工单Service业务层处理 + * + * @author LionLi + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class WmsInventoryCheckRecordServiceImpl implements IWmsInventoryCheckRecordService { + + private final WmsInventoryCheckRecordMapper baseMapper; + + /** + * 查询盘点记录和调整工单 + * + * @param icRecordId 主键 + * @return 盘点记录和调整工单 + */ + @Override + public WmsInventoryCheckRecordVo queryById(Long icRecordId){ + return baseMapper.selectVoById(icRecordId); + } + + /** + * 分页查询盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 盘点记录和调整工单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsInventoryCheckRecordBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @return 盘点记录和调整工单列表 + */ + @Override + public List queryList(WmsInventoryCheckRecordBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsInventoryCheckRecordBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryCheckRecord.class) + .selectAll(WmsInventoryCheckRecord.class) + .eq(bo.getIcRecordId() != null, WmsInventoryCheckRecord::getIcRecordId, bo.getIcRecordId()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsInventoryCheckRecord::getMaterialCategories, bo.getMaterialCategories()) + .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheckRecord::getCheckCode, bo.getCheckCode()) + .eq(StringUtils.isNotBlank(bo.getBatchCode()), WmsInventoryCheckRecord::getBatchCode, bo.getBatchCode()) + .eq(bo.getMaterialId() != null, WmsInventoryCheckRecord::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryCheckRecord::getLocationCode, bo.getLocationCode()) + .eq(StringUtils.isNotBlank(bo.getMaterialCode()), WmsInventoryCheckRecord::getMaterialCode, bo.getMaterialCode()) + .like(StringUtils.isNotBlank(bo.getMaterialName()), WmsInventoryCheckRecord::getMaterialName, bo.getMaterialName()) + .eq(StringUtils.isNotBlank(bo.getInventoryQty()), WmsInventoryCheckRecord::getInventoryQty, bo.getInventoryQty()) + .eq(bo.getCheckQty() != null, WmsInventoryCheckRecord::getCheckQty, bo.getCheckQty()) + .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheckRecord::getCheckStatus, bo.getCheckStatus()) + .eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsInventoryCheckRecord::getErpSynchronousStatus, bo.getErpSynchronousStatus()) + .eq(bo.getErpSynchronousQty() != null, WmsInventoryCheckRecord::getErpSynchronousQty, bo.getErpSynchronousQty()) + .eq(StringUtils.isNotBlank(bo.getIsAdjust()), WmsInventoryCheckRecord::getIsAdjust, bo.getIsAdjust()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInventoryCheckRecord::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInventoryCheckRecord::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInventoryCheckRecord::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInventoryCheckRecord::getAuditComments, bo.getAuditComments()) + .eq(StringUtils.isNotBlank(bo.getAdjustStatus()), WmsInventoryCheckRecord::getAdjustStatus, bo.getAdjustStatus()) + .eq(StringUtils.isNotBlank(bo.getAdjustType()), WmsInventoryCheckRecord::getAdjustType, bo.getAdjustType()) + .orderByDesc(WmsInventoryCheckRecord::getCreateTime); + return lqw; + } + + /** + * 新增盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsInventoryCheckRecordBo bo) { + WmsInventoryCheckRecord add = MapstructUtils.convert(bo, WmsInventoryCheckRecord.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setIcRecordId(add.getIcRecordId()); + } + return flag; + } + + /** + * 修改盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsInventoryCheckRecordBo bo) { + WmsInventoryCheckRecord update = MapstructUtils.convert(bo, WmsInventoryCheckRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsInventoryCheckRecord entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除盘点记录和调整工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java new file mode 100644 index 0000000..9e80db6 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java @@ -0,0 +1,198 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsInstockOrder; +import org.dromara.wms.domain.WmsInventoryCheck; +import org.dromara.wms.domain.bo.WmsInstockOrderBo; +import org.dromara.wms.domain.bo.WmsInventoryCheckBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; +import org.dromara.wms.mapper.WmsInventoryCheckMapper; +import org.dromara.wms.service.IWmsInventoryCheckService; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 库存盘点Service业务层处理 + * + * @author LionLi + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { + + private final WmsInventoryCheckMapper baseMapper; + private static final AtomicInteger sequence = new AtomicInteger(999); + public static Integer nextSequence() { + return sequence.incrementAndGet(); + } + + /** + * 查询库存盘点 + * + * @param inventoryCheckId 主键 + * @return 库存盘点 + */ + @Override + public WmsInventoryCheckVo queryById(Long inventoryCheckId){ + return baseMapper.selectVoById(inventoryCheckId); + } + + /** + * 分页查询库存盘点列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 库存盘点分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsInventoryCheckBo bo, PageQuery pageQuery) { +// MPJLambdaWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的库存盘点列表 + * + * @param bo 查询条件 + * @return 库存盘点列表 + */ + @Override + public List queryList(WmsInventoryCheckBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsInventoryCheckBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryCheck.class) + .selectAll(WmsInventoryCheck.class) + .eq(bo.getInventoryCheckId() != null, WmsInventoryCheck::getInventoryCheckId, bo.getInventoryCheckId()) + .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheck::getCheckCode, bo.getCheckCode()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsInventoryCheck::getMaterialCategories, bo.getMaterialCategories()) + .eq(bo.getPlanWarehouseId() != null, WmsInventoryCheck::getPlanWarehouseId, bo.getPlanWarehouseId()) + .eq(StringUtils.isNotBlank(bo.getCheckType()), WmsInventoryCheck::getCheckType, bo.getCheckType()) + .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheck::getCheckStatus, bo.getCheckStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInventoryCheck::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInventoryCheck::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInventoryCheck::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInventoryCheck::getAuditComments, bo.getAuditComments()) + .eq(bo.getBeginTime() != null, WmsInventoryCheck::getBeginTime, bo.getBeginTime()) + .eq(bo.getEndTime() != null, WmsInventoryCheck::getEndTime, bo.getEndTime()) + .orderByDesc(WmsInventoryCheck::getCreateTime); + return lqw; + } + private MPJLambdaWrapper buildJoinQueryWrapper(WmsInventoryCheckBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryCheck.class) + .selectAll(WmsInventoryCheck.class) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsInventoryCheck::getPlanWarehouseId); + lqw.eq(bo.getInventoryCheckId() != null, WmsInventoryCheck::getInventoryCheckId, bo.getInventoryCheckId()) + .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheck::getCheckCode, bo.getCheckCode()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsInventoryCheck::getMaterialCategories, bo.getMaterialCategories()) + .eq(bo.getPlanWarehouseId() != null, WmsInventoryCheck::getPlanWarehouseId, bo.getPlanWarehouseId()) + .eq(StringUtils.isNotBlank(bo.getCheckType()), WmsInventoryCheck::getCheckType, bo.getCheckType()) + .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheck::getCheckStatus, bo.getCheckStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInventoryCheck::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInventoryCheck::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInventoryCheck::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInventoryCheck::getAuditComments, bo.getAuditComments()) + .eq(bo.getBeginTime() != null, WmsInventoryCheck::getBeginTime, bo.getBeginTime()) + .eq(bo.getEndTime() != null, WmsInventoryCheck::getEndTime, bo.getEndTime()) + .orderByDesc(WmsInventoryCheck::getCreateTime); + return lqw; + } + + /** + * 新增库存盘点 + * + * @param bo 库存盘点 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsInventoryCheckBo bo) { + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date).substring(2); + String order = "ST"; + String orderLast=""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String stockingOrder = order + orderDate + orderLast; + WmsInventoryCheck add = MapstructUtils.convert(bo, WmsInventoryCheck.class); + add.setCheckCode(stockingOrder); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setInventoryCheckId(add.getInventoryCheckId()); + } + return flag; + } + public String generateOrder(Integer value){ + if (value.toString().length()<3){ + String fixedLengthString = String.format("%03d", value); + return fixedLengthString; + }else if (value.toString().length()==3){ + return value.toString(); + } + return value.toString(); + } + + /** + * 修改库存盘点 + * + * @param bo 库存盘点 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsInventoryCheckBo bo) { + WmsInventoryCheck update = MapstructUtils.convert(bo, WmsInventoryCheck.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsInventoryCheck entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除库存盘点信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java index 67d8c7a..c859133 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java @@ -10,20 +10,20 @@ 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.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsConfiguration; import org.dromara.wms.domain.WmsInventory; import org.dromara.wms.domain.bo.WmsConfigurationBo; import org.dromara.wms.domain.bo.WmsInventoryBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import org.dromara.wms.mapper.WmsInventoryMapper; import org.dromara.wms.service.IWmsInventoryService; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import java.util.stream.Collectors; /** @@ -146,6 +146,42 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int updateWmsInventorys(ArrayList updateList) { + return baseMapper.updateById(updateList).size(); + + } + + @Override + public int deletePlanList(ArrayList ids) { + return baseMapper.deleteByIds(ids); + } + + @Override + public List getMaterialInfoList(WmsInventoryBo bo) { + MPJLambdaWrapper lqw = new MPJLambdaWrapper<>(); + lqw.selectAll(WmsInventory.class).select(BaseMaterialInfo::getMaterialCode) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsInventory::getMaterialId); + lqw.eq(WmsInventory::getLocationCode,bo.getLocationCode()); + return baseMapper.selectVoList(lqw); + } + + @Override + public HashMap> selectInventorys(WmsMoveOrderBo bo) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(WmsInventory::getLocationCode,bo.getPlanLocationCode()) + .eq(WmsInventory::getMaterialId,bo.getMaterialId()); + List planList = baseMapper.selectVoList(lqw); + LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>(); + lqw1.eq(WmsInventory::getLocationCode,bo.getTargetLocationCode()) + .eq(WmsInventory::getMaterialId,bo.getMaterialId()); + List targetList = baseMapper.selectVoList(lqw1); + HashMap> result = new HashMap<>(); + result.put("planList",planList); + result.put("targetList",targetList); + return result; + } + @Override public BigDecimal materailCount(WmsInventory wmsInventory) { return baseMapper.materailCount(wmsInventory); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java new file mode 100644 index 0000000..73488fd --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java @@ -0,0 +1,185 @@ +package org.dromara.wms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.WmsMoveOrder; +import org.dromara.wms.domain.bo.WmsInventoryBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsInventoryVo; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; +import org.dromara.wms.mapper.WmsMoveOrderMapper; +import org.dromara.wms.service.IWmsInventoryService; +import org.dromara.wms.service.IWmsMoveOrderService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 移库工单Service业务层处理 + * + * @author LionLi + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { + + private final WmsMoveOrderMapper baseMapper; + @Autowired + private IWmsInventoryService wmsInventoryService; + + /** + * 查询移库工单 + * + * @param moveId 主键 + * @return 移库工单 + */ + @Override + public WmsMoveOrderVo queryById(Long moveId){ + return baseMapper.selectVoById(moveId); + } + + /** + * 分页查询移库工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 移库工单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsMoveOrderBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的移库工单列表 + * + * @param bo 查询条件 + * @return 移库工单列表 + */ + @Override + public List queryList(WmsMoveOrderBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsMoveOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsMoveOrder.class) + .selectAll(WmsMoveOrder.class).select(WmsBaseWarehouse::getWarehouseCode).select(BaseMaterialInfo::getMaterialCode) + .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsMoveOrder::getWarehouseId) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsMoveOrder::getMaterialId) + .eq(bo.getMoveId() != null, WmsMoveOrder::getMoveId, bo.getMoveId()) + .eq(bo.getMaterialId() != null, WmsMoveOrder::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsMoveOrder::getMaterialCategories, bo.getMaterialCategories()) + .eq(bo.getWarehouseId() != null, WmsMoveOrder::getWarehouseId, bo.getWarehouseId()) + .eq(bo.getPlanLocationCode() != null, WmsMoveOrder::getPlanLocationCode, bo.getPlanLocationCode()) + .eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsMoveOrder::getOrderStatus, bo.getOrderStatus()) + .eq(bo.getTargetLocationCode() != null, WmsMoveOrder::getTargetLocationCode, bo.getTargetLocationCode()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsMoveOrder::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsMoveOrder::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsMoveOrder::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsMoveOrder::getAuditComments, bo.getAuditComments()) + .eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsMoveOrder::getErpSynchronousStatus, bo.getErpSynchronousStatus()) + .eq(bo.getErpSynchronousQty() != null, WmsMoveOrder::getErpSynchronousQty, bo.getErpSynchronousQty()) + .orderByDesc(WmsMoveOrder::getCreateTime); + return lqw; + } + + /** + * 新增移库工单 + * + * @param bo 移库工单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsMoveOrderBo bo) { + //查询仓库现有的物料数量 + HashMap> list = wmsInventoryService.selectInventorys(bo); + List planList = list.get("planList");//计划库位数据 + if (CollectionUtils.isEmpty(planList)){ + return false; + } + ArrayList updateList = new ArrayList<>(); + ArrayList ids = new ArrayList<>(); + List targetList = list.get("targetList");//目标库位数据 + Map> resultList = targetList.stream().collect(Collectors.groupingBy(WmsInventoryVo::getBatchCode)); + for (WmsInventoryVo vo : planList) { + WmsInventory wmsInventory = new WmsInventory(); + if (CollectionUtils.isEmpty(resultList.get(vo.getBatchCode()))){ + vo.setLocationCode(bo.getTargetLocationCode()); + BeanUtils.copyProperties(vo,wmsInventory); + updateList.add(wmsInventory); + }else { + WmsInventoryVo target = resultList.get(vo.getBatchCode()).get(0); + BigDecimal add = target.getInventoryQty().add(vo.getInventoryQty()); + target.setInventoryQty(add); + BeanUtils.copyProperties(target,wmsInventory); + updateList.add(wmsInventory); + ids.add(vo.getInventoryId()); + } + } + int removeRows = wmsInventoryService.deletePlanList(ids); + int rows = wmsInventoryService.updateWmsInventorys(updateList); + WmsMoveOrder add = MapstructUtils.convert(bo, WmsMoveOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMoveId(add.getMoveId()); + } + return flag; + } + + /** + * 修改移库工单 + * + * @param bo 移库工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsMoveOrderBo bo) { + WmsMoveOrder update = MapstructUtils.convert(bo, WmsMoveOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsMoveOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除移库工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java index 235c0b4..02029e1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java @@ -10,6 +10,11 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsReturnOrder; +import org.dromara.wms.domain.bo.WmsReturnOrderBo; +import org.dromara.wms.service.IWmsReturnOrderService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.dromara.wms.domain.bo.WmsOutstockRecordBo; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; @@ -17,6 +22,7 @@ import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.mapper.WmsOutstockRecordMapper; import org.dromara.wms.service.IWmsOutstockRecordService; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Collection; @@ -32,6 +38,10 @@ import java.util.Collection; public class WmsOutstockRecordServiceImpl implements IWmsOutstockRecordService { private final WmsOutstockRecordMapper baseMapper; + @Autowired + private IWmsReturnOrderService wmsReturnOrderService; + + private static String NO_RETURN = "1"; //禁用回退 /** * 查询出库记录 @@ -109,9 +119,22 @@ public class WmsOutstockRecordServiceImpl implements IWmsOutstockRecordService { */ @Override public Boolean updateByBo(WmsOutstockRecordBo bo) { - WmsOutstockRecord update = MapstructUtils.convert(bo, WmsOutstockRecord.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + if (bo.getReturnQty()==null){ + WmsOutstockRecord update = MapstructUtils.convert(bo, WmsOutstockRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + if (bo.getReturnQty().compareTo(bo.getOutstockQty())>0){ + return false; + } + if (bo.getReturnFlag().equals(NO_RETURN)){ + return false; + } + WmsReturnOrderBo wmsReturnOrder = new WmsReturnOrderBo(); + BeanUtils.copyProperties(bo,wmsReturnOrder); + wmsReturnOrder.setPlanAmount(bo.getReturnQty()); + return wmsReturnOrderService.insertByBo(wmsReturnOrder); + } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java index 0a76dd1..fecc37f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.wms.service.impl; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,7 +10,11 @@ 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.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.WmsReturnOrder; +import org.dromara.wms.domain.bo.WmsOutstockRecordBo; import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.WmsReturnOrderVo; import org.dromara.wms.mapper.WmsReturnOrderMapper; @@ -51,8 +57,9 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { */ @Override public TableDataInfo queryPageList(WmsReturnOrderBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.orderByDesc(WmsReturnOrder::getCreateTime); +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); +// lqw.orderByDesc(WmsReturnOrder::getCreateTime); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -68,7 +75,33 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - + private MPJLambdaWrapper buildJoinQueryWrapper(WmsReturnOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsReturnOrder.class) + .selectAll(WmsReturnOrder.class) + .select(BaseMaterialInfo::getMaterialCode) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsReturnOrder::getMaterialId) + .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsReturnOrder::getWarehouseId); + lqw.eq(bo.getRoId() != null, WmsReturnOrder::getRoId, bo.getRoId()); + lqw.eq(bo.getMaterialId() != null, WmsReturnOrder::getMaterialId, bo.getMaterialId()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsReturnOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(StringUtils.isNotBlank(bo.getBatchCode()), WmsReturnOrder::getBatchCode, bo.getBatchCode()); + lqw.eq(bo.getPlanAmount() != null, WmsReturnOrder::getPlanAmount, bo.getPlanAmount()); + lqw.eq(bo.getWarehouseId() != null, WmsReturnOrder::getWarehouseId, bo.getWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getPlanLocationCode()), WmsReturnOrder::getPlanLocationCode, bo.getPlanLocationCode()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsReturnOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(bo.getReturnAmount() != null, WmsReturnOrder::getReturnAmount, bo.getReturnAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getReturnLocationCode()), WmsReturnOrder::getReturnLocationCode, bo.getReturnLocationCode()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsReturnOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsReturnOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsReturnOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsReturnOrder::getAuditComments, bo.getAuditComments()); + lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsReturnOrder::getErpSynchronousStatus, bo.getErpSynchronousStatus()); + lqw.eq(bo.getErpSynchronousQty() != null, WmsReturnOrder::getErpSynchronousQty, bo.getErpSynchronousQty()); + lqw.orderByDesc(WmsReturnOrder::getCreateTime); + return lqw; + } private LambdaQueryWrapper buildQueryWrapper(WmsReturnOrderBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml new file mode 100644 index 0000000..f92133c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml new file mode 100644 index 0000000..5264b40 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + From 7fd415def96e2bc3963f2231535bf9150c4bee68 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 13 Jan 2025 11:12:29 +0800 Subject: [PATCH 09/69] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B0=83=E6=8B=A8?= =?UTF-8?q?=E5=8D=95=E8=BF=94=E5=9B=9E=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsAllocateOrderController.java | 4 ++-- .../wms/domain/bo/WmsAllocateOrderBo.java | 2 +- .../wms/service/IWmsAllocateOrderService.java | 2 +- .../impl/WmsAllocateOrderServiceImpl.java | 20 +++++++++---------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java index 4c1682d..135ed10 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java @@ -76,8 +76,8 @@ public class WmsAllocateOrderController extends BaseController { @Log(title = "调拨工单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsAllocateOrderBo bo) { - return toAjax(wmsAllocateOrderService.insertByBo(bo)); + public R add(@RequestBody WmsAllocateOrderBo bo) { + return R.ok(wmsAllocateOrderService.insertByBo(bo)); } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java index f274d52..a843393 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java @@ -85,7 +85,7 @@ public class WmsAllocateOrderBo extends BaseEntity { /** * 是否创建出库单 */ - @NotBlank(message = "是否创建出库单不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotBlank(message = "是否创建出库单不能为空", groups = { AddGroup.class, EditGroup.class }) private String createOut; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java index 67071d1..258f8b3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java @@ -47,7 +47,7 @@ public interface IWmsAllocateOrderService { * @param bo 调拨工单 * @return 是否新增成功 */ - Boolean insertByBo(WmsAllocateOrderBo bo); + String insertByBo(WmsAllocateOrderBo bo); /** * 修改调拨工单 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java index 49a98d5..4aceeaf 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -137,7 +137,7 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsAllocateOrderBo bo) { + public String insertByBo(WmsAllocateOrderBo bo) { Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date).substring(2); @@ -157,20 +157,20 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { String allocateOrder = allocate + orderDate + orderLast; WmsAllocateOrder add = MapstructUtils.convert(bo, WmsAllocateOrder.class); add.setAllocateOrderCode(allocateOrder); - if (bo.getCreateIn().equals("1")){ - allocateInOrder = allocateIn + orderDate + orderLast; - add.setInCode(allocateInOrder); - } - if (bo.getCreateOut().equals("1")){ - allocateOutOrder = allocateOut + orderDate + orderLast; - add.setOutCode(allocateOutOrder); - } +// if (bo.getCreateIn().equals("1")){ +// allocateInOrder = allocateIn + orderDate + orderLast; +// add.setInCode(allocateInOrder); +// } +// if (bo.getCreateOut().equals("1")){ +// allocateOutOrder = allocateOut + orderDate + orderLast; +// add.setOutCode(allocateOutOrder); +// } validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setAoId(add.getAoId()); } - return flag; + return allocateOrder; } public String generateOrder(Integer value){ if (value.toString().length()<3){ From 73aa06584385f1119d08be95f2d0dafdd2f4fe95 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 13 Jan 2025 11:20:18 +0800 Subject: [PATCH 10/69] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B0=83=E6=8B=A8?= =?UTF-8?q?=E5=8D=95=E6=89=B9=E9=87=8F=E6=B7=BB=E5=8A=A0=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsAllocateOrderDetailController.java | 2 +- .../IWmsAllocateOrderDetailService.java | 2 +- .../WmsAllocateOrderDetailServiceImpl.java | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java index 72a0f2f..b836a5e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java @@ -76,7 +76,7 @@ public class WmsAllocateOrderDetailController extends BaseController { @Log(title = "调拨子", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsAllocateOrderDetailBo bo) { + public R add( @RequestBody List bo) { return toAjax(wmsAllocateOrderDetailService.insertByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java index f99f4b7..5317ae6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java @@ -47,7 +47,7 @@ public interface IWmsAllocateOrderDetailService { * @param bo 调拨子 * @return 是否新增成功 */ - Boolean insertByBo(WmsAllocateOrderDetailBo bo); + Boolean insertByBo(List bo); /** * 修改调拨子 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java index aef3bb3..0e3a563 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -15,9 +15,7 @@ import org.dromara.wms.mapper.WmsAllocateOrderDetailMapper; import org.dromara.wms.service.IWmsAllocateOrderDetailService; import org.springframework.stereotype.Service; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 调拨子Service业务层处理 @@ -88,13 +86,17 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsAllocateOrderDetailBo bo) { - WmsAllocateOrderDetail add = MapstructUtils.convert(bo, WmsAllocateOrderDetail.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setAoDId(add.getAoDId()); + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + for (WmsAllocateOrderDetailBo detailBo : bo) { + WmsAllocateOrderDetail add = MapstructUtils.convert(detailBo, WmsAllocateOrderDetail.class); + list.add(add); } + + boolean flag = baseMapper.insertBatch(list); +// if (flag) { +// bo.setAoDId(add.getAoDId()); +// } return flag; } From 383e22cefeedfcdf610c4bf32248a89e92c57f40 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 13 Jan 2025 11:22:51 +0800 Subject: [PATCH 11/69] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=91=8A=E8=AD=A6=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsInventoryController.java | 11 +++++++ .../dromara/wms/domain/BaseMaterialInfo.java | 6 ++-- .../org/dromara/wms/domain/WmsInventory.java | 1 + .../wms/domain/bo/BaseMaterialInfoBo.java | 6 ++-- .../dromara/wms/domain/bo/WmsInventoryBo.java | 1 + .../wms/domain/vo/BaseMaterialInfoVo.java | 5 +-- .../dromara/wms/domain/vo/WmsInventoryVo.java | 3 ++ .../wms/mapper/WmsInventoryMapper.java | 4 +++ .../wms/service/IWmsInventoryService.java | 2 ++ .../service/impl/WmsInventoryServiceImpl.java | 11 +++++++ .../mapper/wms/WmsInventoryMapper.xml | 33 +++++++++++++++++++ 11 files changed, 77 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java index 606b1da..56cf06d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java @@ -48,6 +48,17 @@ public class WmsInventoryController extends BaseController { return wmsInventoryService.queryPageList(bo, pageQuery); } + /** + * 查询物料报警 + * @param bo + * @param pageQuery + * @return + */ + @GetMapping("/listInventoryAlarm") + public TableDataInfo listInventoryAlarm(WmsInventoryBo bo, PageQuery pageQuery) { + return wmsInventoryService.listInventoryAlarm(bo, pageQuery); + } + /** * 导出物料库存列表 */ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java index 4197cbd..ef3ed84 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java @@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import java.io.Serial; @@ -156,12 +158,12 @@ public class BaseMaterialInfo extends TenantEntity { /** * 最大库存数量 */ - private Long maxStockAmount; + private BigDecimal maxStockAmount; /** * 最小库存数量 */ - private Long minStockAmount; + private BigDecimal minStockAmount; /** * 安全库存数量 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java index b519b36..c582aa9 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java @@ -95,6 +95,7 @@ public class WmsInventory{ private String warehouseCode;//字段映射 @TableField(exist = false) private String materialCode;//字段映射 + private String warehouseId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java index a28ef9d..7705c84 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java @@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -158,12 +160,12 @@ public class BaseMaterialInfoBo extends BaseEntity { /** * 最大库存数量 */ - private Long maxStockAmount; + private BigDecimal maxStockAmount; /** * 最小库存数量 */ - private Long minStockAmount; + private BigDecimal minStockAmount; /** * 安全库存数量 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java index 4bb13e1..f71fb54 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java @@ -76,5 +76,6 @@ public class WmsInventoryBo extends BaseEntity { @NotNull(message = "仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long storeId; private String tenantId; + private String warehouseId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java index 0ea8c6f..5e8383b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.wms.domain.BaseMaterialInfo; @@ -201,13 +202,13 @@ public class BaseMaterialInfoVo implements Serializable { * 最大库存数量 */ @ExcelProperty(value = "最大库存数量") - private Long maxStockAmount; + private BigDecimal maxStockAmount; /** * 最小库存数量 */ @ExcelProperty(value = "最小库存数量") - private Long minStockAmount; + private BigDecimal minStockAmount; /** * 安全库存数量 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java index 4c52d62..5ea7c58 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java @@ -113,6 +113,9 @@ public class WmsInventoryVo implements Serializable { private String warehouseCode;//字段映射 private String materialCode;//字段映射 + private String warehouseId; + private BigDecimal maxStockAmount; + private BigDecimal minStockAmount; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java index 6dbeab7..2567d15 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java @@ -3,10 +3,12 @@ package org.dromara.wms.mapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.bo.WmsInventoryBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import org.springframework.web.bind.annotation.PostMapping; import java.math.BigDecimal; +import java.util.List; /** * 物料库存Mapper接口 @@ -17,4 +19,6 @@ import java.math.BigDecimal; public interface WmsInventoryMapper extends BaseMapperPlus { BigDecimal materailCount(@Param("entity") WmsInventory wmsInventory); + + List listInventoryAlarm(@Param("entity")WmsInventoryBo bo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java index b7bc75f..dc80521 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java @@ -79,4 +79,6 @@ public interface IWmsInventoryService { int updateWmsInventorys(ArrayList updateList); int deletePlanList(ArrayList ids); + + TableDataInfo listInventoryAlarm(WmsInventoryBo bo, PageQuery pageQuery); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java index c859133..13160a2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java @@ -152,6 +152,17 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { } + @Override + public TableDataInfo listInventoryAlarm(WmsInventoryBo bo, PageQuery pageQuery) { + List wmsInventoryVos = baseMapper.listInventoryAlarm(bo); + Page page = new Page<>(); + page.setRecords(wmsInventoryVos); + page.setTotal(wmsInventoryVos.size()); + page.setCurrent(pageQuery.getPageNum()); + page.setSize(pageQuery.getPageSize()); + return TableDataInfo.build(page); + } + @Override public int deletePlanList(ArrayList ids) { return baseMapper.deleteByIds(ids); diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml index 31f7b5f..6ac278d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml @@ -13,4 +13,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where x.material_id = #{entity.materialId} + + From 46d3875884d74ea78673f61ba788fcd800662196 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 13 Jan 2025 14:32:32 +0800 Subject: [PATCH 12/69] =?UTF-8?q?=E8=B0=83=E6=8B=A8=E5=8D=95=E6=98=8E?= =?UTF-8?q?=E7=BB=86=E5=88=A0=E9=99=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsAllocateOrderDetailController.java | 8 ++++++++ .../wms/service/IWmsAllocateOrderDetailService.java | 2 ++ .../service/impl/WmsAllocateOrderDetailServiceImpl.java | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java index b836a5e..42b4313 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java @@ -104,6 +104,14 @@ public class WmsAllocateOrderDetailController extends BaseController { return toAjax(wmsAllocateOrderDetailService.deleteWithValidByIds(List.of(aoDIds), true)); } + @SaCheckPermission("system:allocateOrderDetail:remove") + @Log(title = "调拨子", businessType = BusinessType.DELETE) + @DeleteMapping("removeDetail/{aoDId}") + public R removeDetail(@NotEmpty(message = "主键不能为空") + @PathVariable Long aoDId) { + return toAjax(wmsAllocateOrderDetailService.deleteById(aoDId)); + } + @GetMapping("selectAllocateDetails") public R> selectAllocateDetails(Long aoDId){ return R.ok(wmsAllocateOrderDetailService.selectAllocateDetails()); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java index 5317ae6..5eed61f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java @@ -67,4 +67,6 @@ public interface IWmsAllocateOrderDetailService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); List selectAllocateDetails(); + + int deleteById(Long aoDId); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java index 0e3a563..9279a46 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -135,6 +135,11 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai return baseMapper.deleteByIds(ids) > 0; } + @Override + public int deleteById(Long aoDId) { + return baseMapper.deleteById(aoDId); + } + @Override public List selectAllocateDetails() { From 1b6bb08d91153570410a21edae73d09b7767c3d7 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Tue, 14 Jan 2025 08:50:17 +0800 Subject: [PATCH 13/69] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E4=B8=BB=E5=AD=90=E8=A1=A8=E9=A1=B5=E9=9D=A2=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsAllocateOrderDetailController.java | 2 +- .../WmsInstockDetailController.java | 9 ++++- .../controller/WmsInstockOrderController.java | 6 +-- .../WmsOutstockDetailController.java | 14 ++++++- .../WmsOutstockOrderController.java | 5 ++- .../wms/domain/WmsAllocateOrderDetail.java | 3 ++ .../dromara/wms/domain/WmsInstockDetail.java | 1 + .../dromara/wms/domain/WmsOutstockDetail.java | 3 +- .../wms/domain/bo/WmsOutstockDetailBo.java | 3 ++ .../domain/vo/WmsAllocateOrderDetailVo.java | 2 + .../wms/domain/vo/WmsOutstockDetailVo.java | 2 + .../wms/service/IWmsInstockDetailService.java | 4 +- .../wms/service/IWmsInstockOrderService.java | 2 +- .../service/IWmsOutstockDetailService.java | 5 ++- .../wms/service/IWmsOutstockOrderService.java | 3 +- .../WmsAllocateOrderDetailServiceImpl.java | 24 ++++++++++-- .../impl/WmsInstockDetailServiceImpl.java | 33 ++++++++++------ .../impl/WmsInstockOrderServiceImpl.java | 12 ++++-- .../impl/WmsOutstockDetailServiceImpl.java | 35 +++++++++++++---- .../impl/WmsOutstockOrderServiceImpl.java | 38 ++++++++++++++++--- 20 files changed, 162 insertions(+), 44 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java index 42b4313..61ad983 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java @@ -107,7 +107,7 @@ public class WmsAllocateOrderDetailController extends BaseController { @SaCheckPermission("system:allocateOrderDetail:remove") @Log(title = "调拨子", businessType = BusinessType.DELETE) @DeleteMapping("removeDetail/{aoDId}") - public R removeDetail(@NotEmpty(message = "主键不能为空") + public R removeDetail( @PathVariable Long aoDId) { return toAjax(wmsAllocateOrderDetailService.deleteById(aoDId)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java index b06435f..43559c6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java @@ -77,7 +77,7 @@ public class WmsInstockDetailController extends BaseController { @Log(title = "入库单-物料", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@RequestBody WmsInstockDetailBo bo) { + public R add(@RequestBody List bo) { return toAjax(wmsInstockDetailService.insertByBo(bo)); } @@ -104,4 +104,11 @@ public class WmsInstockDetailController extends BaseController { @PathVariable Long[] instockDetailIds) { return toAjax(wmsInstockDetailService.deleteWithValidByIds(List.of(instockDetailIds), true)); } + + @SaCheckPermission("system:instockDetail:remove") + @Log(title = "入库单-物料", businessType = BusinessType.DELETE) + @DeleteMapping("/removeInstockDetail/{instockDetailId}") + public R removeInstockDetail( @PathVariable Long instockDetailId) { + return toAjax(wmsInstockDetailService.deleteById(instockDetailId)>0); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java index a8b5e8c..5fc6bc2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java @@ -77,8 +77,8 @@ public class WmsInstockOrderController extends BaseController { @Log(title = "入库单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add( @RequestBody WmsInstockOrderBo bo) { - return toAjax(wmsInstockOrderService.insertByBo(bo)); + public R add( @RequestBody WmsInstockOrderBo bo) { + return R.ok(wmsInstockOrderService.insertByBo(bo)); } /** @@ -88,7 +88,7 @@ public class WmsInstockOrderController extends BaseController { @Log(title = "入库单", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsInstockOrderBo bo) { + public R edit(@RequestBody WmsInstockOrderBo bo) { return toAjax(wmsInstockOrderService.updateByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java index c3b4bd5..141567d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.WmsInstockDetail; +import org.dromara.wms.domain.WmsOutstockDetail; +import org.dromara.wms.domain.bo.WmsInstockDetailBo; import org.dromara.wms.domain.bo.WmsOutstockDetailBo; import org.dromara.wms.domain.vo.WmsOutstockDetailVo; import org.dromara.wms.service.IWmsOutstockDetailService; @@ -77,7 +80,7 @@ public class WmsOutstockDetailController extends BaseController { @Log(title = "出库单-物料", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@RequestBody WmsOutstockDetailBo bo) { + public R add(@RequestBody List bo) { return toAjax(wmsOutstockDetailService.insertByBo(bo)); } @@ -101,7 +104,14 @@ public class WmsOutstockDetailController extends BaseController { @Log(title = "出库单-物料", businessType = BusinessType.DELETE) @DeleteMapping("/{outstockDetailIds}") public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] outstockDetailIds) { + @PathVariable Long outstockDetailIds) { return toAjax(wmsOutstockDetailService.deleteWithValidByIds(List.of(outstockDetailIds), true)); } + + @SaCheckPermission("system:outstockDetail:remove") + @Log(title = "出库单-物料", businessType = BusinessType.DELETE) + @DeleteMapping("detailRemove/{outstockDetailId}") + public R removeOutstockDetailId(@PathVariable Long outstockDetailId) { + return toAjax(wmsOutstockDetailService.deleteById(outstockDetailId)>0); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java index 51950e4..d215c32 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.WmsOutstockOrder; import org.dromara.wms.domain.bo.WmsOutstockOrderBo; import org.dromara.wms.domain.vo.WmsOutstockOrderVo; import org.dromara.wms.service.IWmsOutstockOrderService; @@ -76,8 +77,8 @@ public class WmsOutstockOrderController extends BaseController { @Log(title = "出库单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsOutstockOrderBo bo) { - return toAjax(wmsOutstockOrderService.insertByBo(bo)); + public R add(@RequestBody WmsOutstockOrderBo bo) { + return R.ok(wmsOutstockOrderService.insertByBo(bo)); } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java index 0189b32..1629289 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java @@ -24,6 +24,7 @@ public class WmsAllocateOrderDetail { /** * 调拨子表主键 */ + @TableId(type = IdType.AUTO) private Long aoDId; /** @@ -74,6 +75,8 @@ public class WmsAllocateOrderDetail { */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + @TableField(exist = false) + private String materialCode; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java index cd36cd4..8611ff8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java @@ -25,6 +25,7 @@ public class WmsInstockDetail{ /** * 入库单子表主键 */ + @TableId(type = IdType.AUTO) private Long instockDetailId; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java index bbb1c76..0fdc394 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java @@ -79,8 +79,9 @@ public class WmsOutstockDetail { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; - @TableField(exist = false) + private String materialCode; + private String materialName; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java index 19e97c0..0509a14 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java @@ -57,6 +57,9 @@ public class WmsOutstockDetailBo extends BaseEntity { // @NotBlank(message = "物料大类不能为空", groups = { AddGroup.class, EditGroup.class }) private String materialCategories; private String tenantId; + private String materialCode; + + private String materialName; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java index 34e34ea..1cdb450 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java @@ -90,5 +90,7 @@ public class WmsAllocateOrderDetailVo implements Serializable { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + private String materialCode; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java index 40a7f72..aa099b1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java @@ -93,5 +93,7 @@ public class WmsOutstockDetailVo implements Serializable { private String materialCode; + private String materialName; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java index b1b1c04..80a200d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java @@ -47,7 +47,7 @@ public interface IWmsInstockDetailService { * @param bo 入库单-物料 * @return 是否新增成功 */ - Boolean insertByBo(WmsInstockDetailBo bo); + Boolean insertByBo(List bo); /** * 修改入库单-物料 @@ -65,4 +65,6 @@ public interface IWmsInstockDetailService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + int deleteById(Long instockDetailId); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java index b000ceb..747db8f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java @@ -47,7 +47,7 @@ public interface IWmsInstockOrderService { * @param bo 入库单 * @return 是否新增成功 */ - Boolean insertByBo(WmsInstockOrderBo bo); + WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo); /** * 修改入库单 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java index 645d3a2..c68f39e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java @@ -1,5 +1,6 @@ package org.dromara.wms.service; +import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.wms.domain.bo.WmsOutstockDetailBo; @@ -47,7 +48,7 @@ public interface IWmsOutstockDetailService { * @param bo 出库单-物料 * @return 是否新增成功 */ - Boolean insertByBo(WmsOutstockDetailBo bo); + Boolean insertByBo(List bo); /** * 修改出库单-物料 @@ -65,4 +66,6 @@ public interface IWmsOutstockDetailService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + int deleteById(Long outstockDetailId); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java index 8900c56..f6e99ef 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java @@ -2,6 +2,7 @@ package org.dromara.wms.service; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.WmsOutstockOrder; import org.dromara.wms.domain.bo.WmsOutstockOrderBo; import org.dromara.wms.domain.vo.WmsOutstockOrderVo; @@ -47,7 +48,7 @@ public interface IWmsOutstockOrderService { * @param bo 出库单 * @return 是否新增成功 */ - Boolean insertByBo(WmsOutstockOrderBo bo); + WmsOutstockOrderVo insertByBo(WmsOutstockOrderBo bo); /** * 修改出库单 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java index 9279a46..4c3b0c2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.wms.service.impl; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,8 +10,12 @@ 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.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsAllocateOrderDetail; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsMoveOrder; import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; import org.dromara.wms.mapper.WmsAllocateOrderDetailMapper; import org.dromara.wms.service.IWmsAllocateOrderDetailService; @@ -49,8 +55,8 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai */ @Override public TableDataInfo queryPageList(WmsAllocateOrderDetailBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.orderByDesc(WmsAllocateOrderDetail::getCreateTime); +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -78,6 +84,19 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()); return lqw; } + private MPJLambdaWrapper buildJoinQueryWrapper(WmsAllocateOrderDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrderDetail.class) + .selectAll(WmsAllocateOrderDetail.class).select(BaseMaterialInfo::getMaterialCode) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsAllocateOrderDetail::getMaterialId); + lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); + lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()); + lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()); + lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()).orderByDesc(WmsAllocateOrderDetail::getCreateTime); + return lqw; + } /** * 新增调拨子 @@ -142,7 +161,6 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai @Override public List selectAllocateDetails() { - return null; } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java index 5813ed2..4b68976 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java @@ -9,9 +9,9 @@ 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.dromara.wms.domain.WmsInstockDetail; -import org.dromara.wms.domain.WmsInstockOrder; -import org.dromara.wms.domain.WmsInstockPrint; +import org.dromara.wms.domain.*; +import org.dromara.wms.domain.bo.BaseMaterialInfoBo; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; import org.dromara.wms.domain.bo.WmsInstockDetailBo; import org.dromara.wms.domain.vo.BaseMaterialInfoVo; import org.dromara.wms.domain.vo.WmsInstockDetailVo; @@ -23,6 +23,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -109,16 +110,19 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsInstockDetailBo bo) { - WmsInstockDetail add = MapstructUtils.convert(bo, WmsInstockDetail.class); - BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoService.queryById(bo.getMaterialId()); - BeanUtils.copyProperties(baseMaterialInfoVo,add); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setInstockDetailId(add.getInstockDetailId()); + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + int a = 0; + for (WmsInstockDetailBo detailBo : bo) { + BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); + baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); + List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); + WmsInstockDetail add = MapstructUtils.convert(detailBo, WmsInstockDetail.class); + add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); + add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + a += baseMapper.insert(add); } - return flag; + return a>0; } /** @@ -173,6 +177,11 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int deleteById(Long instockDetailId) { + return baseMapper.deleteById(instockDetailId); + } + /** * 校验并批量删除入库单-物料信息 * diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java index 72fa8d2..e37b31c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java @@ -54,7 +54,10 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { @Override public WmsInstockOrderVo queryById(Long instockId){ - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(WmsInstockOrder.class).select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsInstockOrder::getWarehouseId); wrapper.eq(WmsInstockOrder::getInstockId,instockId); return baseMapper.selectVoOne(wrapper); } @@ -127,7 +130,7 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsInstockOrderBo bo) { + public WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo) { Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date); @@ -148,7 +151,10 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { if (flag) { bo.setInstockId(add.getInstockId()); } - return flag; + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WmsInstockOrder::getInstockCode,inStockOrder); + WmsInstockOrderVo instockOrderVo = baseMapper.selectVoOne(wrapper); + return instockOrderVo; } public String generateOrder(Integer value){ if (value.toString().length()<3){ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java index 8e26d9d..1850ef4 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java @@ -11,14 +11,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsInstockDetail; import org.dromara.wms.domain.WmsInventory; import org.dromara.wms.domain.WmsOutstockDetail; +import org.dromara.wms.domain.bo.BaseMaterialInfoBo; +import org.dromara.wms.domain.bo.WmsInstockDetailBo; import org.dromara.wms.domain.bo.WmsOutstockDetailBo; +import org.dromara.wms.domain.vo.BaseMaterialInfoVo; import org.dromara.wms.domain.vo.WmsOutstockDetailVo; import org.dromara.wms.mapper.WmsOutstockDetailMapper; +import org.dromara.wms.service.IBaseMaterialInfoService; import org.dromara.wms.service.IWmsOutstockDetailService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -35,6 +42,9 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { private final WmsOutstockDetailMapper baseMapper; + @Autowired + private IBaseMaterialInfoService baseMaterialInfoService; + /** * 查询出库单-物料 * @@ -107,14 +117,20 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsOutstockDetailBo bo) { - WmsOutstockDetail add = MapstructUtils.convert(bo, WmsOutstockDetail.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setOutstockDetailId(add.getOutstockDetailId()); + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + int rows = 0; + for (WmsOutstockDetailBo detailBo : bo) { + BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); + baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); + List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); + WmsOutstockDetail add = MapstructUtils.convert(detailBo, WmsOutstockDetail.class); + add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); + add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + rows += baseMapper.insert(add); } - return flag; + + return rows>0; } /** @@ -137,6 +153,11 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int deleteById(Long outstockDetailId) { + return baseMapper.deleteById(outstockDetailId); + } + /** * 校验并批量删除出库单-物料信息 * diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java index f27af78..6768e3f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.wms.service.impl; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,7 +10,11 @@ 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.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsOutstockDetail; import org.dromara.wms.domain.WmsOutstockOrder; +import org.dromara.wms.domain.bo.WmsOutstockDetailBo; import org.dromara.wms.domain.bo.WmsOutstockOrderBo; import org.dromara.wms.domain.vo.WmsOutstockOrderVo; import org.dromara.wms.mapper.WmsInstockOrderMapper; @@ -59,12 +65,30 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { */ @Override public TableDataInfo queryPageList(WmsOutstockOrderBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.orderByDesc(WmsOutstockOrder::getCreateTime); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } - + private MPJLambdaWrapper buildJoinQueryWrapper(WmsOutstockOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutstockOrder.class) + .selectAll(WmsOutstockOrder.class) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsOutstockOrder::getWarehouseId); + lqw.eq(bo.getOutstockId() != null, WmsOutstockOrder::getOutstockId, bo.getOutstockId()); + lqw.eq(bo.getWarehouseId() != null, WmsOutstockOrder::getWarehouseId, bo.getWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getOutstockCode()), WmsOutstockOrder::getOutstockCode, bo.getOutstockCode()); + lqw.eq(StringUtils.isNotBlank(bo.getOutstockType()), WmsOutstockOrder::getOutstockType, bo.getOutstockType()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsOutstockOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderType()), WmsOutstockOrder::getOrderType, bo.getOrderType()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), WmsOutstockOrder::getOrderNo, bo.getOrderNo()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsOutstockOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsOutstockOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsOutstockOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsOutstockOrder::getAuditComments, bo.getAuditComments()) + .orderByAsc(WmsOutstockOrder::getCreateTime); + return lqw; + } /** * 查询符合条件的出库单列表 * @@ -101,7 +125,7 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsOutstockOrderBo bo) { + public WmsOutstockOrderVo insertByBo(WmsOutstockOrderBo bo) { Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date); @@ -122,7 +146,11 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { if (flag) { bo.setOutstockId(add.getOutstockId()); } - return flag; + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WmsOutstockOrder::getOutstockCode,outStockOrder); + List vos = baseMapper.selectVoList(wrapper); + + return vos.get(0); } public String generateOrder(Integer value){ if (value.toString().length()<3){ From f0013b7c6e1467e1b7057d8cc6bb949cf4d35a56 Mon Sep 17 00:00:00 2001 From: zch Date: Tue, 14 Jan 2025 15:08:53 +0800 Subject: [PATCH 14/69] =?UTF-8?q?add(hwmom-mes):=20=E5=B7=A5=E5=BA=8F?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=85=B3=E8=81=94=E7=94=A8=E6=88=B7=E5=92=8C?= =?UTF-8?q?=E4=BA=A7=E7=BA=BF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增工序信息关联用户和产线的接口和实现 - 在工序信息中添加关联用户和产线的列表字段 - 实现工序信息关联用户和产线的增删改查功能 - 优化工序信息查询接口,支持查询关联的用户和产线信息 --- .../ProdBaseProcessInfoController.java | 13 +- .../ProdBaseProcessProdLineController.java | 117 +++++++++ .../ProdBaseProcessUserController.java | 117 +++++++++ .../mes/domain/ProdBaseProcessInfo.java | 14 ++ .../mes/domain/ProdBaseProcessProdLine.java | 69 ++++++ .../mes/domain/ProdBaseProcessUser.java | 73 ++++++ .../mes/domain/bo/ProdBaseProcessInfoBo.java | 15 ++ .../domain/bo/ProdBaseProcessProdLineBo.java | 83 +++++++ .../mes/domain/bo/ProdBaseProcessUserBo.java | 81 +++++++ .../mes/domain/vo/ProdBaseProcessInfoVo.java | 17 +- .../domain/vo/ProdBaseProcessProdLineVo.java | 62 +++++ .../mes/domain/vo/ProdBaseProcessUserVo.java | 68 ++++++ .../mes/mapper/ProdBaseProcessInfoMapper.java | 111 +++++++++ .../mapper/ProdBaseProcessProdLineMapper.java | 15 ++ .../mes/mapper/ProdBaseProcessUserMapper.java | 15 ++ .../service/IProdBaseProcessInfoService.java | 8 + .../IProdBaseProcessProdLineService.java | 69 ++++++ .../service/IProdBaseProcessUserService.java | 69 ++++++ .../impl/ProdBaseProcessInfoServiceImpl.java | 171 ++++++++++++- .../ProdBaseProcessProdLineServiceImpl.java | 133 ++++++++++ .../impl/ProdBaseProcessUserServiceImpl.java | 134 +++++++++++ .../mapper/mes/ProdBaseProcessInfoMapper.xml | 227 ++++++++++++++++++ .../mes/ProdBaseProcessProdLineMapper.xml | 7 + .../mapper/mes/ProdBaseProcessUserMapper.xml | 7 + 24 files changed, 1692 insertions(+), 3 deletions(-) create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java index 47dbd87..18be5f6 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java @@ -95,11 +95,22 @@ public class ProdBaseProcessInfoController extends BaseController { @SaCheckPermission("mes:baseProcessInfo:edit") @Log(title = "工序信息", businessType = BusinessType.UPDATE) @RepeatSubmit() - @PutMapping() + @PutMapping("/edit") public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessInfoBo bo) { return toAjax(prodBaseProcessInfoService.updateByBo(bo)); } + /** + * 修改工序信息 + */ + @SaCheckPermission("mes:baseProcessInfo:edit") + @Log(title = "工序信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/editUser") + public R editUser(@Validated(EditGroup.class) @RequestBody ProdBaseProcessInfoBo bo) { + return toAjax(prodBaseProcessInfoService.updateByBoUser(bo)); + } + /** * 删除工序信息 * diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java new file mode 100644 index 0000000..2db606d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.service.IProdBaseProcessProdLineService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工序关联产线 + * 前端访问路由地址为:/mes/prodBaseProcessProdLine + * + * @author LionLi + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/prodBaseProcessProdLine") +public class ProdBaseProcessProdLineController extends BaseController { + + private final IProdBaseProcessProdLineService prodBaseProcessProdLineService; + + /** + * 查询工序关联产线列表 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:list") + @GetMapping("/list") + public TableDataInfo list(ProdBaseProcessProdLineBo bo, PageQuery pageQuery) { + return prodBaseProcessProdLineService.queryPageList(bo, pageQuery); + } + + /** + * 导出工序关联产线列表 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:export") + @Log(title = "工序关联产线", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdBaseProcessProdLineBo bo, HttpServletResponse response) { + List list = prodBaseProcessProdLineService.queryList(bo); + ExcelUtil.exportExcel(list, "工序关联产线", ProdBaseProcessProdLineVo.class, response); + } + + /** + * 获取工序关联产线详细信息 + * + * @param processId 主键 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:query") + @GetMapping("/{processId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long processId) { + return R.ok(prodBaseProcessProdLineService.queryById(processId)); + } + + /** + * 新增工序关联产线 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:add") + @Log(title = "工序关联产线", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdBaseProcessProdLineBo bo) { + return toAjax(prodBaseProcessProdLineService.insertByBo(bo)); + } + + /** + * 修改工序关联产线 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:edit") + @Log(title = "工序关联产线", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessProdLineBo bo) { + return toAjax(prodBaseProcessProdLineService.updateByBo(bo)); + } + + /** + * 删除工序关联产线 + * + * @param processIds 主键串 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:remove") + @Log(title = "工序关联产线", businessType = BusinessType.DELETE) + @DeleteMapping("/{processIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] processIds) { + return toAjax(prodBaseProcessProdLineService.deleteWithValidByIds(List.of(processIds), true)); + } + + + /** + * 下拉框查询工序关联产线列表 + */ + + @GetMapping("getProdBaseProcessProdLineList") + public R> getProdBaseProcessProdLinelist(ProdBaseProcessProdLineBo bo) { + List list = prodBaseProcessProdLineService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java new file mode 100644 index 0000000..2c4e3ae --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.mes.service.IProdBaseProcessUserService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工序关联人员 + * 前端访问路由地址为:/mes/prodBaseProcessUser + * + * @author zangch + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/prodBaseProcessUser") +public class ProdBaseProcessUserController extends BaseController { + + private final IProdBaseProcessUserService prodBaseProcessUserService; + + /** + * 查询工序关联人员列表 + */ + @SaCheckPermission("mes:prodBaseProcessUser:list") + @GetMapping("/list") + public TableDataInfo list(ProdBaseProcessUserBo bo, PageQuery pageQuery) { + return prodBaseProcessUserService.queryPageList(bo, pageQuery); + } + + /** + * 导出工序关联人员列表 + */ + @SaCheckPermission("mes:prodBaseProcessUser:export") + @Log(title = "工序关联人员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdBaseProcessUserBo bo, HttpServletResponse response) { + List list = prodBaseProcessUserService.queryList(bo); + ExcelUtil.exportExcel(list, "工序关联人员", ProdBaseProcessUserVo.class, response); + } + + /** + * 获取工序关联人员详细信息 + * + * @param processId 主键 + */ + @SaCheckPermission("mes:prodBaseProcessUser:query") + @GetMapping("/{processId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long processId) { + return R.ok(prodBaseProcessUserService.queryById(processId)); + } + + /** + * 新增工序关联人员 + */ + @SaCheckPermission("mes:prodBaseProcessUser:add") + @Log(title = "工序关联人员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdBaseProcessUserBo bo) { + return toAjax(prodBaseProcessUserService.insertByBo(bo)); + } + + /** + * 修改工序关联人员 + */ + @SaCheckPermission("mes:prodBaseProcessUser:edit") + @Log(title = "工序关联人员", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessUserBo bo) { + return toAjax(prodBaseProcessUserService.updateByBo(bo)); + } + + /** + * 删除工序关联人员 + * + * @param processIds 主键串 + */ + @SaCheckPermission("mes:prodBaseProcessUser:remove") + @Log(title = "工序关联人员", businessType = BusinessType.DELETE) + @DeleteMapping("/{processIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] processIds) { + return toAjax(prodBaseProcessUserService.deleteWithValidByIds(List.of(processIds), true)); + } + + + /** + * 下拉框查询工序关联人员列表 + */ + + @GetMapping("getProdBaseProcessUserList") + public R> getProdBaseProcessUserlist(ProdBaseProcessUserBo bo) { + List list = prodBaseProcessUserService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java index 01c9eca..9b9c10c 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.util.List; /** * 工序信息对象 prod_base_process_info @@ -62,5 +63,18 @@ public class ProdBaseProcessInfo extends TenantEntity { */ private String remark; + /** + * 工序关联产线信息 + */ + @TableField(exist = false) + private List prodBaseProcessProdlineList;//工序关联产线信息,映射字段 + + /** 工序关联人员信息 */ + @TableField(exist = false) + private List prodBaseProcessUserList;//工序关联人员信息,映射字段 + + @TableField(exist = false) + private String processPercentage;//映射字段 + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java new file mode 100644 index 0000000..1a6a60b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java @@ -0,0 +1,69 @@ +package org.dromara.mes.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联产线对象 prod_base_process_prod_line + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@TableName("prod_base_process_prod_line") +public class ProdBaseProcessProdLine { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + private Long processId; + + /** + * 所属产线ID + */ + private Long prodLineId; + + + + /*删除继承BaseEntity*/ + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 租户编号 + */ + private String tenantId; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java new file mode 100644 index 0000000..4576ea1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java @@ -0,0 +1,73 @@ +package org.dromara.mes.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联人员对象 prod_base_process_user + * + * @author zangch + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@TableName("prod_base_process_user") +public class ProdBaseProcessUser { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + private Long processId; + + /** + * 用户ID + */ + private Long userId; + + /** + * 用户名称 + */ + private String userName; + + + /*删除继承BaseEntity*/ + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 租户编号 + */ + private String tenantId; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java index 8e4daea..d9ff840 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java @@ -1,5 +1,6 @@ package org.dromara.mes.domain.bo; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.mes.domain.ProdBaseProcessInfo; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -8,6 +9,10 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; + +import java.util.List; /** * 工序信息业务对象 prod_base_process_info @@ -65,4 +70,14 @@ public class ProdBaseProcessInfoBo extends BaseEntity { private String remark; + /** + * 工序关联产线信息 + */ + private List prodBaseProcessProdlineBoList;//工序关联产线信息,映射字段 + + /** 工序关联人员信息 */ + private List prodBaseProcessUserBoList;//工序关联人员信息,映射字段 + + private String processPercentageBo;//映射字段 + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java new file mode 100644 index 0000000..f1e4d15 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java @@ -0,0 +1,83 @@ +package org.dromara.mes.domain.bo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联产线业务对象 prod_base_process_prod_line + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@AutoMapper(target = ProdBaseProcessProdLine.class, reverseConvertGenerate = false) +public class ProdBaseProcessProdLineBo { + + /** + * 工序ID + */ + @NotNull(message = "工序ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long processId; + + /** + * 所属产线ID + */ + @NotNull(message = "所属产线ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long prodLineId; + + + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + + /** + * 租户编号 + */ + @TableField(exist = false) + private String tenantId; + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java new file mode 100644 index 0000000..d3a1eb6 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java @@ -0,0 +1,81 @@ +package org.dromara.mes.domain.bo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联人员业务对象 prod_base_process_user + * + * @author zangch + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@AutoMapper(target = ProdBaseProcessUser.class, reverseConvertGenerate = false) +public class ProdBaseProcessUserBo { + + /** + * 工序ID + */ + @NotNull(message = "工序ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long processId; + + /** + * 用户ID + */ + @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 用户名称 + */ + private String userName; + + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java index 638cacc..d8bc63d 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java @@ -1,5 +1,6 @@ package org.dromara.mes.domain.vo; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.mes.domain.ProdBaseProcessInfo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -7,11 +8,13 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -115,5 +118,17 @@ public class ProdBaseProcessInfoVo implements Serializable { @ExcelProperty(value = "更新时间") private Date updateTime; + /** + * 工序关联产线信息 + */ + + private List prodBaseProcessProdlineVoList;//工序关联产线信息,映射字段 + + /** 工序关联人员信息 */ + + private List prodBaseProcessUserVoList;//工序关联人员信息,映射字段 + + + private String processPercentageVo;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java new file mode 100644 index 0000000..ff80acf --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java @@ -0,0 +1,62 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工序关联产线视图对象 prod_base_process_prod_line + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdBaseProcessProdLine.class) +public class ProdBaseProcessProdLineVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + @ExcelProperty(value = "工序ID") + private Long processId; + + /** + * 所属产线ID + */ + @ExcelProperty(value = "所属产线ID") + private Long prodLineId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java new file mode 100644 index 0000000..3e3aca5 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java @@ -0,0 +1,68 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdBaseProcessUser; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工序关联人员视图对象 prod_base_process_user + * + * @author zangch + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdBaseProcessUser.class) +public class ProdBaseProcessUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + @ExcelProperty(value = "工序ID") + private Long processId; + + /** + * 用户ID + */ + @ExcelProperty(value = "用户ID") + private Long userId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 用户名称 + */ + @ExcelProperty(value = "用户名称") + private String userName; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java index 266f79b..a4b4990 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java @@ -1,9 +1,16 @@ package org.dromara.mes.mapper; import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.bo.ProdBaseProcessInfoBo; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; import org.dromara.mes.domain.vo.ProdBaseProcessInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 工序信息Mapper接口 * @@ -12,4 +19,108 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdBaseProcessInfoMapper extends BaseMapperPlus { + /** + * 查询工序信息 + * + * @param processId 工序信息主键 + * @return 工序信息 + */ + public ProdBaseProcessInfo selectProdBaseProcessInfoByProcessId(Long processId); + + /** + * 获取工序用户信息详细信息 + * @param processId 工序信息主键 + * @return 工序信息 + */ + public ProdBaseProcessInfo selectProdBaseProcessInfoUserByProcessId(Long processId); + + /** + * 查询工序信息列表 + * + * @param prodBaseProcessInfo 工序信息 + * @return 工序信息集合 + */ + public List selectProdBaseProcessInfoList(ProdBaseProcessInfoBo prodBaseProcessInfo); + + /** + * 新增工序信息 + * + * @param prodBaseProcessInfo 工序信息 + * @return 结果 + */ + public int insertProdBaseProcessInfo(ProdBaseProcessInfoBo prodBaseProcessInfo); + + /** + * 修改工序信息 + * + * @param prodBaseProcessInfo 工序信息 + * @return 结果 + */ + public int updateProdBaseProcessInfo(ProdBaseProcessInfoBo prodBaseProcessInfo); + + /** + * 删除工序信息 + * + * @param processId 工序信息主键 + * @return 结果 + */ + public int deleteProdBaseProcessInfoByProcessId(Long processId); + + /** + * 批量删除工序信息 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProdBaseProcessInfoByProcessIds(Long[] processIds); + + /** + * 批量删除工序关联产线 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProdBaseProcessProdlineByProcessIds(Long[] processIds); + + /** + * 批量新增工序关联产线 + * + * @param prodBaseProcessProdlineList 工序关联产线列表 + * @return 结果 + */ + public int batchProdBaseProcessProdline(List prodBaseProcessProdlineList); + + + /** + * 通过工序信息主键删除工序关联产线信息 + * + * @param processId 工序信息ID + * @return 结果 + */ + public int deleteProdBaseProcessProdlineByProcessId(Long processId); + + /** + * 批量删除工序关联人员 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProdBaseProcessUserByProcessIds(Long[] processIds); + + /** + * 批量新增工序关联人员 + * + * @param prodBaseProcessUserList 工序关联人员列表 + * @return 结果 + */ + public int batchProdBaseProcessUser(List prodBaseProcessUserList); + + + /** + * 通过工序信息主键删除工序关联人员信息 + * + * @param processId 工序信息ID + * @return 结果 + */ + public int deleteProdBaseProcessUserByProcessId(Long processId); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java new file mode 100644 index 0000000..4210a21 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工序关联产线Mapper接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface ProdBaseProcessProdLineMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java new file mode 100644 index 0000000..b402f29 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工序关联人员Mapper接口 + * + * @author zangch + * @date 2025-01-09 + */ +public interface ProdBaseProcessUserMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java index ff84298..b2910c0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java @@ -57,6 +57,14 @@ public interface IProdBaseProcessInfoService { */ Boolean updateByBo(ProdBaseProcessInfoBo bo); + /** + * 修改工序信息关联用户 + * + * @param bo 工序信息 + * @return 是否修改成功 + */ + Boolean updateByBoUser(ProdBaseProcessInfoBo bo); + /** * 校验并批量删除工序信息信息 * diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java new file mode 100644 index 0000000..df81b3d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工序关联产线Service接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface IProdBaseProcessProdLineService { + + /** + * 查询工序关联产线 + * + * @param processId 主键 + * @return 工序关联产线 + */ + ProdBaseProcessProdLineVo queryById(Long processId); + + /** + * 分页查询工序关联产线列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联产线分页列表 + */ + TableDataInfo queryPageList(ProdBaseProcessProdLineBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工序关联产线列表 + * + * @param bo 查询条件 + * @return 工序关联产线列表 + */ + List queryList(ProdBaseProcessProdLineBo bo); + + /** + * 新增工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdBaseProcessProdLineBo bo); + + /** + * 修改工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdBaseProcessProdLineBo bo); + + /** + * 校验并批量删除工序关联产线信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java new file mode 100644 index 0000000..d5a454b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工序关联人员Service接口 + * + * @author zangch + * @date 2025-01-09 + */ +public interface IProdBaseProcessUserService { + + /** + * 查询工序关联人员 + * + * @param processId 主键 + * @return 工序关联人员 + */ + ProdBaseProcessUserVo queryById(Long processId); + + /** + * 分页查询工序关联人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联人员分页列表 + */ + TableDataInfo queryPageList(ProdBaseProcessUserBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工序关联人员列表 + * + * @param bo 查询条件 + * @return 工序关联人员列表 + */ + List queryList(ProdBaseProcessUserBo bo); + + /** + * 新增工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdBaseProcessUserBo bo); + + /** + * 修改工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdBaseProcessUserBo bo); + + /** + * 校验并批量删除工序关联人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java index d231564..0c784a4 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java @@ -1,5 +1,9 @@ package org.dromara.mes.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,13 +12,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.mapper.ProdBaseProcessProdLineMapper; +import org.dromara.mes.mapper.ProdBaseProcessUserMapper; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdBaseProcessInfoBo; import org.dromara.mes.domain.vo.ProdBaseProcessInfoVo; import org.dromara.mes.domain.ProdBaseProcessInfo; import org.dromara.mes.mapper.ProdBaseProcessInfoMapper; import org.dromara.mes.service.IProdBaseProcessInfoService; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -31,6 +46,16 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi private final ProdBaseProcessInfoMapper baseMapper; + private final ProdBaseProcessUserServiceImpl prodBaseProcessUserService; + + private final ProdBaseProcessProdLineServiceImpl prodBaseProcessProdlineService; + + private final ProdBaseProcessUserMapper prodBaseProcessUserMapper; + private final ProdBaseProcessProdLineMapper prodBaseProcessProdlineMapper; + + + + /** * 查询工序信息 * @@ -39,7 +64,23 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi */ @Override public ProdBaseProcessInfoVo queryById(Long processId){ - return baseMapper.selectVoById(processId); + ProdBaseProcessInfoVo prodBaseProcessInfoVo = baseMapper.selectVoById(processId); + if (ObjectUtil.isNotEmpty(prodBaseProcessInfoVo)) { + // 关联人员 + ProdBaseProcessUserBo prodBaseProcessUserBo = new ProdBaseProcessUserBo(); + prodBaseProcessUserBo.setProcessId(processId); + List prodBaseProcessUserVoList = prodBaseProcessUserService.queryList(prodBaseProcessUserBo); + // 关联人员若有数据,则赋值给prodBaseProcessInfoVo + if(ObjectUtil.isNotEmpty(prodBaseProcessUserVoList)) prodBaseProcessInfoVo.setProdBaseProcessUserVoList(prodBaseProcessUserVoList); + + // 关联产线 + ProdBaseProcessProdLineBo prodBaseProcessProdlineBo = new ProdBaseProcessProdLineBo(); + prodBaseProcessProdlineBo.setProcessId(processId); + List prodBaseProcessProdlineVoList = prodBaseProcessProdlineService.queryList(prodBaseProcessProdlineBo); + // 关联产线若有数据,则赋值给prodBaseProcessInfoVo + if(ObjectUtil.isNotEmpty(prodBaseProcessProdlineVoList)) prodBaseProcessInfoVo.setProdBaseProcessProdlineVoList(prodBaseProcessProdlineVoList); + } + return prodBaseProcessInfoVo; } /** @@ -72,6 +113,17 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseProcessInfo.class) .selectAll(ProdBaseProcessInfo.class) + +/* // 关联人员 + .select(ProdBaseProcessUser::getUserId) + .select(ProdBaseProcessUser::getUserName) + .leftJoin(ProdBaseProcessUser.class, ProdBaseProcessUser::getProcessId, ProdBaseProcessInfo::getProcessId) + + // 关联产线 + .select(ProdBaseProcessProdLine::getProdLineId) + .leftJoin(ProdBaseProcessProdLine.class, ProdBaseProcessProdLine::getProcessId, ProdBaseProcessInfo::getProcessId)*/ + + .eq(bo.getProcessId() != null, ProdBaseProcessInfo::getProcessId, bo.getProcessId()) .eq(StringUtils.isNotBlank(bo.getProcessCode()), ProdBaseProcessInfo::getProcessCode, bo.getProcessCode()) .like(StringUtils.isNotBlank(bo.getProcessName()), ProdBaseProcessInfo::getProcessName, bo.getProcessName()) @@ -106,13 +158,76 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi * @param bo 工序信息 * @return 是否修改成功 */ + @Transactional @Override public Boolean updateByBo(ProdBaseProcessInfoBo bo) { ProdBaseProcessInfo update = MapstructUtils.convert(bo, ProdBaseProcessInfo.class); + + String tenantId = LoginHelper.getTenantId(); + Long deptId = LoginHelper.getDeptId(); + Long userId = LoginHelper.getUserId(); + if (ObjectUtil.isNotEmpty(tenantId)) update.setTenantId(tenantId); + if (ObjectUtil.isNotEmpty(deptId)) update.setCreateDept(deptId); + if (ObjectUtil.isNotEmpty(userId)) update.setCreateBy(userId); + update.setCreateTime(DateUtils.getNowDate()); + + validEntityBeforeSave(update); + + List prodBaseProcessProdlineList = new ArrayList<>(); + List prodBaseProcessProdlineBoList = bo.getProdBaseProcessProdlineBoList(); + if(ObjectUtil.isNotEmpty(prodBaseProcessProdlineBoList)){ + prodBaseProcessProdlineList = MapstructUtils.convert(prodBaseProcessProdlineBoList, ProdBaseProcessProdLine.class); + update.setProdBaseProcessProdlineList(prodBaseProcessProdlineList); + } + baseMapper.deleteProdBaseProcessProdlineByProcessId(update.getProcessId()); + try { + insertProdBaseProcessProdline(update); + }catch (Exception e){ + throw new ServiceException("该工序已关联产线!"); + } return baseMapper.updateById(update) > 0; } + /** + * 修改工序信息关联人员 + * + * @param bo 工序信息 + * @return 是否修改成功 + */ + @Transactional + @Override + public Boolean updateByBoUser(ProdBaseProcessInfoBo bo) { + ProdBaseProcessInfo update = MapstructUtils.convert(bo, ProdBaseProcessInfo.class); + + String tenantId = LoginHelper.getTenantId();// 获取当前租户ID + Long deptId = LoginHelper.getDeptId();// 获取当前部门ID + Long userId = LoginHelper.getUserId();// 获取当前用户ID + if (ObjectUtil.isNotEmpty(tenantId)) update.setTenantId(tenantId);// 设置当前租户ID + if (ObjectUtil.isNotEmpty(deptId)) update.setCreateDept(deptId);// 设置当前部门ID + if (ObjectUtil.isNotEmpty(userId)) update.setCreateBy(userId);// 设置当前用户ID + update.setCreateTime(DateUtils.getNowDate());// 设置当前时间 + + validEntityBeforeSave(update); + + List prodBaseProcessUserList = new ArrayList<>(); + List prodBaseProcessUserBoList = bo.getProdBaseProcessUserBoList(); + if(ObjectUtil.isNotEmpty(prodBaseProcessUserBoList)){ + prodBaseProcessUserList = MapstructUtils.convert(prodBaseProcessUserBoList, ProdBaseProcessUser.class); + } + baseMapper.deleteProdBaseProcessUserByProcessId(update.getProcessId()); + update.setProdBaseProcessUserList(prodBaseProcessUserList); + try { + insertProdBaseProcessUser(update); + }catch (Exception e){ + System.out.println(e.getMessage()); + throw new ServiceException("该工序已关联用户!"); + } + return baseMapper.updateById(update) > 0; + } + + + /** * 保存前的数据校验 */ @@ -134,4 +249,58 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 新增工序关联产线信息 + * + * @param prodBaseProcessInfo 工序信息对象 + */ + public void insertProdBaseProcessProdline(ProdBaseProcessInfo prodBaseProcessInfo) { + List prodBaseProcessProdlineList = prodBaseProcessInfo.getProdBaseProcessProdlineList(); + Long processId = prodBaseProcessInfo.getProcessId(); + if (ObjectUtil.isNotNull(prodBaseProcessProdlineList)) { + List list = new ArrayList(); + for (ProdBaseProcessProdLine prodBaseProcessProdline : prodBaseProcessProdlineList) { + prodBaseProcessProdline.setCreateBy(prodBaseProcessInfo.getCreateBy()); + prodBaseProcessProdline.setCreateTime(prodBaseProcessInfo.getCreateTime()); + prodBaseProcessProdline.setCreateDept(prodBaseProcessInfo.getCreateDept()); + prodBaseProcessProdline.setTenantId(prodBaseProcessInfo.getTenantId()); + list.add(prodBaseProcessProdline); + } + if (!list.isEmpty()) { + prodBaseProcessProdlineMapper.insertBatch(list); + } + } + } + /** + * 新增工序关联用户信息 + * + * @param prodBaseProcessInfo 工序信息对象 + */ + public void insertProdBaseProcessUser(ProdBaseProcessInfo prodBaseProcessInfo) { + List prodBaseProcessUserList = prodBaseProcessInfo.getProdBaseProcessUserList(); + Long processId = prodBaseProcessInfo.getProcessId(); + if (ObjectUtil.isNotNull(prodBaseProcessUserList)) { + List list = new ArrayList(); + for (ProdBaseProcessUser prodBaseProcessUser : prodBaseProcessUserList) { + prodBaseProcessUser.setCreateBy(prodBaseProcessInfo.getCreateBy()); + prodBaseProcessUser.setCreateTime(prodBaseProcessInfo.getCreateTime()); + prodBaseProcessUser.setCreateDept(prodBaseProcessInfo.getCreateDept()); + prodBaseProcessUser.setTenantId(prodBaseProcessInfo.getTenantId()); + + Long userId = prodBaseProcessUser.getUserId(); + + + + + list.add(prodBaseProcessUser); + } + if (!list.isEmpty()) { + prodBaseProcessUserMapper.insertBatch(list); + } + } + } + + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java new file mode 100644 index 0000000..f2e8520 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.mapper.ProdBaseProcessProdLineMapper; +import org.dromara.mes.service.IProdBaseProcessProdLineService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工序关联产线Service业务层处理 + * + * @author LionLi + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class ProdBaseProcessProdLineServiceImpl implements IProdBaseProcessProdLineService { + + private final ProdBaseProcessProdLineMapper baseMapper; + + /** + * 查询工序关联产线 + * + * @param processId 主键 + * @return 工序关联产线 + */ + @Override + public ProdBaseProcessProdLineVo queryById(Long processId){ + return baseMapper.selectVoById(processId); + } + + /** + * 分页查询工序关联产线列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联产线分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdBaseProcessProdLineBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工序关联产线列表 + * + * @param bo 查询条件 + * @return 工序关联产线列表 + */ + @Override + public List queryList(ProdBaseProcessProdLineBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdBaseProcessProdLineBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseProcessProdLine.class) + .selectAll(ProdBaseProcessProdLine.class) + .eq(bo.getProcessId() != null, ProdBaseProcessProdLine::getProcessId, bo.getProcessId()) + .eq(bo.getProdLineId() != null, ProdBaseProcessProdLine::getProdLineId, bo.getProdLineId()) + .orderByDesc(ProdBaseProcessProdLine::getCreateTime); + return lqw; + } + + /** + * 新增工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdBaseProcessProdLineBo bo) { + ProdBaseProcessProdLine add = MapstructUtils.convert(bo, ProdBaseProcessProdLine.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProcessId(add.getProcessId()); + } + return flag; + } + + /** + * 修改工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdBaseProcessProdLineBo bo) { + ProdBaseProcessProdLine update = MapstructUtils.convert(bo, ProdBaseProcessProdLine.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdBaseProcessProdLine entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工序关联产线信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java new file mode 100644 index 0000000..5f48228 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.mapper.ProdBaseProcessUserMapper; +import org.dromara.mes.service.IProdBaseProcessUserService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工序关联人员Service业务层处理 + * + * @author zangch + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class ProdBaseProcessUserServiceImpl implements IProdBaseProcessUserService { + + private final ProdBaseProcessUserMapper baseMapper; + + /** + * 查询工序关联人员 + * + * @param processId 主键 + * @return 工序关联人员 + */ + @Override + public ProdBaseProcessUserVo queryById(Long processId){ + return baseMapper.selectVoById(processId); + } + + /** + * 分页查询工序关联人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联人员分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdBaseProcessUserBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工序关联人员列表 + * + * @param bo 查询条件 + * @return 工序关联人员列表 + */ + @Override + public List queryList(ProdBaseProcessUserBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdBaseProcessUserBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseProcessUser.class) + .selectAll(ProdBaseProcessUser.class) + .eq(bo.getProcessId() != null, ProdBaseProcessUser::getProcessId, bo.getProcessId()) + .eq(bo.getUserId() != null, ProdBaseProcessUser::getUserId, bo.getUserId()) + .like(StringUtils.isNotBlank(bo.getUserName()), ProdBaseProcessUser::getUserName, bo.getUserName()) + .orderByDesc(ProdBaseProcessUser::getCreateTime); + return lqw; + } + + /** + * 新增工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdBaseProcessUserBo bo) { + ProdBaseProcessUser add = MapstructUtils.convert(bo, ProdBaseProcessUser.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProcessId(add.getProcessId()); + } + return flag; + } + + /** + * 修改工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdBaseProcessUserBo bo) { + ProdBaseProcessUser update = MapstructUtils.convert(bo, ProdBaseProcessUser.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdBaseProcessUser entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工序关联人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml index 18d5793..4a07d0f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml @@ -4,4 +4,231 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select process_id, + process_code, + process_name, + process_type, + process_floor, + production_time, + active_flag, + remark, + create_by, + create_time, + update_by, + update_time, + tenant_id + from prod_base_process_info + + + + + + + + + + insert into prod_base_process_info + + process_code, + process_name, + process_type, + process_floor, + production_time, + active_flag, + remark, + create_by, + create_time, + update_by, + update_time, + tenant_id, + + + #{processCode}, + #{processName}, + #{processType}, + #{processFloor}, + #{productionTime}, + #{activeFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{tenantId}, + + + + + update prod_base_process_info + + process_code = #{processCode}, + process_name = #{processName}, + process_type = #{processType}, + process_floor = #{processFloor}, + production_time = #{productionTime}, + active_flag = #{activeFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + tenant_id = #{tenantId}, + + where process_id = #{processId} + + + + delete + from prod_base_process_info + where process_id = #{processId} + + + + delete from prod_base_process_info where process_id in + + #{processId} + + + + + delete from prod_base_process_prod_line where process_id in + + #{processId} + + + + + delete + from prod_base_process_prod_line + where process_id = #{processId} + + + + insert into prod_base_process_prod_line( process_id, prod_line_id) values + + ( #{item.processId}, #{item.prodlineId}) + + + + + delete from prod_base_process_user where process_id in + + #{processId} + + + + + delete from prod_base_process_user where process_id = #{processId} + + + + insert into prod_base_process_user( process_id, user_id, user_name, create_by, create_time,tenant_id) values + + ( #{item.processId}, #{item.userId}, #{item.userName}, #{item.createBy}, #{item.createTime}, #{item.tenantId}) + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml new file mode 100644 index 0000000..8ec747e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml new file mode 100644 index 0000000..f5dfb37 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml @@ -0,0 +1,7 @@ + + + + + From f5a9bcd174d7af3465cf8091f87fb32eea0934f0 Mon Sep 17 00:00:00 2001 From: zch Date: Tue, 14 Jan 2025 15:13:26 +0800 Subject: [PATCH 15/69] =?UTF-8?q?add(system):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=8B=E6=8B=89=E6=A1=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getUList接口,用于获取用户列表 --- .../dromara/system/controller/system/SysUserController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java index f773cc0..4f6de00 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -298,4 +298,10 @@ public class SysUserController extends BaseController { return R.ok(userService.selectUserListByDept(deptId)); } + @PostMapping("/getUList") + public R> getUList(SysUserBo user) { + List list = userService.selectUserExportList(user); + return R.ok(list); + } + } From c6abb3aa7bb910f80d08d8dae34c153a3eb8b43c Mon Sep 17 00:00:00 2001 From: zch Date: Tue, 14 Jan 2025 15:15:29 +0800 Subject: [PATCH 16/69] =?UTF-8?q?change(hwmom-mes):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 BaseMaterialInfoController 中的方法名 getBaseMaterialInfolist 为 getBaseMaterialInfoList - 更新 IProdBaseRouteService 中的方法名 selectMesBaseRouteByRouteId 为 selectProdBaseRouteByRouteId - 调整 ProdBaseRouteMapper 中的方法命名,将 mesBaseRoute 改为 prodBaseRoute - 更新 XML 映射文件中的表名引用,从 mes_base_process_info 改为 prod_base_process_info - 修正 ProdBaseRouteServiceImpl 中的变量命名,提高代码可读性 --- .../controller/BaseMaterialInfoController.java | 2 +- .../dromara/mes/mapper/ProdBaseRouteMapper.java | 16 ++++++++-------- .../mes/service/IProdBaseRouteService.java | 2 +- .../service/impl/ProdBaseRouteServiceImpl.java | 12 ++++++------ .../resources/mapper/mes/ProdBaseRouteMapper.xml | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java index e738804..9c55bac 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java @@ -110,7 +110,7 @@ public class BaseMaterialInfoController extends BaseController { */ @GetMapping("getBaseMaterialInfoList") - public R> getBaseMaterialInfolist(BaseMaterialInfoBo bo) { + public R> getBaseMaterialInfoList(BaseMaterialInfoBo bo) { List list = baseMaterialInfoService.queryList(bo); return R.ok(list); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java index f1d55ab..ba4a97a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java @@ -30,26 +30,26 @@ public interface ProdBaseRouteMapper extends BaseMapperPlus selectProdBaseRouteList(ProdBaseRoute mesBaseRoute); + public List selectProdBaseRouteList(ProdBaseRoute prodBaseRoute); /** * 新增工艺路线 * - * @param mesBaseRoute 工艺路线 + * @param prodBaseRoute 工艺路线 * @return 结果 */ - public int insertProdBaseRoute(ProdBaseRoute mesBaseRoute); + public int insertProdBaseRoute(ProdBaseRoute prodBaseRoute); /** * 修改工艺路线 * - * @param mesBaseRoute 工艺路线 + * @param prodBaseRoute 工艺路线 * @return 结果 */ - public int updateProdBaseRoute(ProdBaseRoute mesBaseRoute); + public int updateProdBaseRoute(ProdBaseRoute prodBaseRoute); /** * 删除工艺路线 @@ -78,10 +78,10 @@ public interface ProdBaseRouteMapper extends BaseMapperPlus mesBaseRouteProcessList); + public int batchProdBaseRouteProcess(List prodBaseRouteProcessList); /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java index b1cc094..9818db0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java @@ -76,5 +76,5 @@ public interface IProdBaseRouteService { * @param routeId 工艺路线主键 * @return 工艺路线 */ - public ProdBaseRouteVo selectMesBaseRouteByRouteId(Long routeId); + public ProdBaseRouteVo selectProdBaseRouteByRouteId(Long routeId); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java index 359c4fa..530dec0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java @@ -166,22 +166,22 @@ public class ProdBaseRouteServiceImpl implements IProdBaseRouteService { public void insertProdBaseRouteProcess(ProdBaseRouteBo bo) { // 获取工艺路线中的工艺步骤列表 - List mesBaseRouteProcessList = bo.getRouteProcessBoList(); + List prodBaseRouteProcessList = bo.getRouteProcessBoList(); // 获取工艺路线ID Long routeId = bo.getRouteId(); // 如果工艺步骤列表不为空 - if (ObjectUtil.isNotNull(mesBaseRouteProcessList)) + if (ObjectUtil.isNotNull(prodBaseRouteProcessList)) { // 创建一个新的工艺步骤列表 List list = new ArrayList(); // 遍历每一个工艺步骤 - for (ProdBaseRouteProcessBo mesBaseRouteProcess : mesBaseRouteProcessList) + for (ProdBaseRouteProcessBo prodBaseRouteProcess : prodBaseRouteProcessList) { // 设置工艺步骤的工艺路线ID - mesBaseRouteProcess.setRouteId(routeId); + prodBaseRouteProcess.setRouteId(routeId); // 将工艺步骤添加到新的列表中 - list.add(mesBaseRouteProcess); + list.add(prodBaseRouteProcess); } // 如果新的工艺步骤列表不为空 if (!list.isEmpty()) @@ -209,7 +209,7 @@ public class ProdBaseRouteServiceImpl implements IProdBaseRouteService { * @return 工艺路线 */ @Override - public ProdBaseRouteVo selectMesBaseRouteByRouteId(Long routeId) + public ProdBaseRouteVo selectProdBaseRouteByRouteId(Long routeId) { return routeMapper.selectProdBaseRouteByRouteId(routeId); } diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml index bbcd36e..d4493af 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml @@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from prod_base_route a left join prod_base_route_process b on b.route_id = a.route_id - left join mes_base_process_info p on p.process_id = b.process_id + left join prod_base_process_info p on p.process_id = b.process_id +/* select mbrp.route_process_id, mbrp.route_id, mbrp.process_id, mbrp.process_order, + mbpi.process_name,mbpi.process_type,mbpi.production_time,mbpi.final_process_flag + from prod_base_route_process mbrp + left join prod_base_process_info mbpi on mbrp.process_id=mbpi.process_id*/ + select mbrp.route_process_id, mbrp.route_id, mbrp.process_id, mbrp.process_order, + mbpi.process_name,mbpi.process_type,mbpi.production_time + from prod_base_route_process mbrp + left join prod_base_process_info mbpi on mbrp.process_id=mbpi.process_id + + + and mbrp.route_id = #{routeId} + and mbrp.process_id = #{processId} + and mbrp.process_order = #{processOrder} + and rmbrp.remark = #{remark} + + From 3ce2e846c9e116e436bf7d6a3d08f11120690f08 Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 20 Jan 2025 09:00:51 +0800 Subject: [PATCH 34/69] =?UTF-8?q?add(hwmom-mes):=20=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E6=B4=BE=E5=B7=A5=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增获取派工编号接口 - 新增生产派工列表查询接口,支持与工序关联查询 - 修改生产订单信息查询,增加物料编码和名称等字段 - 更新生产工单信息Mapper和XML文件,支持新的查询功能 --- .../controller/ProdPlanInfoController.java | 38 +++++ .../org/dromara/mes/domain/ProdOrderInfo.java | 23 +++ .../org/dromara/mes/domain/ProdPlanInfo.java | 21 +++ .../mes/domain/vo/ProdOrderInfoVo.java | 21 ++- .../dromara/mes/domain/vo/ProdPlanInfoVo.java | 12 ++ .../mes/mapper/ProdPlanInfoMapper.java | 11 +- .../mes/service/IProdPlanInfoService.java | 11 ++ .../impl/ProdOrderInfoServiceImpl.java | 35 ++++- .../service/impl/ProdPlanInfoServiceImpl.java | 25 +++- .../mapper/mes/ProdOrderInfoMapper.xml | 11 +- .../mapper/mes/ProdPlanInfoMapper.xml | 134 ++++++++++++++++++ 11 files changed, 335 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java index c497a85..ef7f2ec 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java @@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.mes.domain.ProdBaseRouteProcess; +import org.dromara.mes.service.IProdBaseRouteProcessService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -37,6 +39,8 @@ public class ProdPlanInfoController extends BaseController { private final IProdPlanInfoService prodPlanInfoService; + private final IProdBaseRouteProcessService prodBaseRouteProcessService; + /** * 查询生产工单信息列表 */ @@ -114,4 +118,38 @@ public class ProdPlanInfoController extends BaseController { List list = prodPlanInfoService.queryList(bo); return R.ok(list); } + + /** + * 获取派工编号 + * + * @return orderCode + */ + @GetMapping(value = "/getDispatchCode") + public R getDispatchCode() { + return R.ok(prodPlanInfoService.getDispatchCode()); + } + + /** + * 获取工序及关联生产人员信息 + * + * @param prodBaseRouteProcess + * @return + */ + @GetMapping(value = "/getBaseRouteProcesses") + public R> getBaseRouteProcesses(ProdBaseRouteProcess prodBaseRouteProcess) { + return R.ok(prodBaseRouteProcessService.selectProdBaseRouteProcessJoinList(prodBaseRouteProcess)); + } + + /** + * 查询生产派工List + * + * @param bo + * @return + */ + @GetMapping("/selectProductPlans") + public R> selectProductPlans(ProdPlanInfoBo bo) { + List list = prodPlanInfoService.selectProdPlanInfoJoinProcessList(bo); + return R.ok(list); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java index 46e604e..76d9c70 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java @@ -165,4 +165,27 @@ public class ProdOrderInfo extends TenantEntity { private String remark; + /** + * 物料编码 + */ + @TableField(exist = false) + private String materialCode;//映射字段 + + /** + * 物料名称 + */ + @TableField(exist = false) + private String materialName;//映射字段 + + /** + * + */ + @TableField(exist = false) + private String dispatchName;//映射字段 + + /** + * 工艺路线名称 + */ + @TableField(exist = false) + private String routeName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java index 9a8cf21..b2fe4eb 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java @@ -179,5 +179,26 @@ public class ProdPlanInfo extends TenantEntity { */ private String remark; + /** + * 工序类别(1生产工序 2质检工序) + */ + @TableField(exist = false) + private String processType;//映射字段 + + /** + * 工序名称 + */ + @TableField(exist = false) + private String processName;//映射字段 + + /** + * 单位生产时间(秒) + */ + @TableField(exist = false) + private Long processProductionTime;//映射字段 + + + @TableField(exist = false) + private String releaseName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java index 6f3e666..edaa840 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java @@ -242,6 +242,25 @@ public class ProdOrderInfoVo implements Serializable { @ExcelProperty(value = "更新时间") private Date updateTime; - private String materialName; + /** + * 物料名称 + */ + @ExcelProperty(value = "物料名称") + private String materialName;//映射字段 + + /** + * 物料编码 + */ + @ExcelProperty(value = "物料编码") + private String materialCode;//映射字段 + + + /** + * 工艺路线名称 + */ + @ExcelProperty(value = "工艺路线名称") + private String dispatchName;//映射字段 + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java index cbb406f..40a43f1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java @@ -1,6 +1,8 @@ package org.dromara.mes.domain.vo; import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnore; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.mes.domain.ProdPlanInfo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; @@ -229,4 +231,14 @@ public class ProdPlanInfoVo implements Serializable { private String teamName; private String materialBomName; private String releaseName; + + /** + * 工序类别(1生产工序 2质检工序) + */ + @ExcelIgnore + private String processType; + + @ExcelIgnore + private Long processProductionTime; + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java index d8ca16f..555aec6 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java @@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.dromara.mes.domain.ProdOrderInfo; import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 生产工单信息Mapper接口 * @@ -26,5 +29,11 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus selectProdPlanInfoList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); - + /** + * 查询生产派工列表,Join process + * + * @param bo 生产派工 + * @return 生产派工集合 + */ + public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java index 7aaf3d1..e7758d0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java @@ -66,4 +66,15 @@ public interface IProdPlanInfoService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + /** + * 获取派工编号 + * + * @return 生产派工 + */ + public String getDispatchCode(); + + + public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java index 9b15614..fb05555 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java @@ -8,11 +8,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.*; +import org.dromara.mes.domain.vo.BaseMaterialInfoVo; +import org.dromara.mes.mapper.*; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; -import org.dromara.mes.domain.ProdOrderInfo; -import org.dromara.mes.mapper.ProdOrderInfoMapper; import org.dromara.mes.service.IProdOrderInfoService; import java.util.List; @@ -31,6 +32,10 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { private final ProdOrderInfoMapper baseMapper; + private final ProdBaseProdLineInfoMapper prodBaseProdLineInfoMapper; + private final ProdBaseRouteMapper prodBaseRouteMapper; + private final ProdBaseProcessInfoMapper prodBaseProcessInfoMapper; + private final BaseMaterialInfoMapper baseMaterialInfoMapper; /** * 查询生产订单信息 * @@ -39,7 +44,31 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { */ @Override public ProdOrderInfoVo queryById(Long productOrderId){ - return baseMapper.selectVoById(productOrderId); + ProdOrderInfoVo prodOrderInfoVo = baseMapper.selectVoById(productOrderId); + //根据dispatchType查询对应的名称 + String dispatchType = prodOrderInfoVo.getDispatchType(); + switch (dispatchType) { + // 1:产线 2:工艺路线 3:工序 + case "1": + prodOrderInfoVo.setDispatchName(prodBaseProdLineInfoMapper.selectVoById(prodOrderInfoVo.getDispatchId()).getProdLineName()); + break; + case "2": + prodOrderInfoVo.setDispatchName(prodBaseRouteMapper.selectVoById(prodOrderInfoVo.getDispatchId()).getRouteName()); + break; + case "3": + prodOrderInfoVo.setDispatchName(prodBaseProcessInfoMapper.selectVoById(prodOrderInfoVo.getDispatchId()).getProcessName()); + break; + default: + break; + } + //根据materialId查询对应的名称和编码 + Long materialId = prodOrderInfoVo.getMaterialId(); + if (materialId != null) { + BaseMaterialInfoVo baseMaterialInfo = baseMaterialInfoMapper.selectVoById(materialId); + prodOrderInfoVo.setMaterialName(baseMaterialInfo.getMaterialName()); + prodOrderInfoVo.setMaterialCode(baseMaterialInfo.getMaterialCode()); + } + return prodOrderInfoVo; } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index c71e31b..1c8f9e0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -160,4 +160,27 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { } return baseMapper.deleteByIds(ids) > 0; } -} + + /** + * 获取派工编号 + * + * @return + */ + @Override + public String getDispatchCode() { + return Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode); + } + + /** + * 查询生产派工列表,join process + * + * @param bo 生产派工 + * @return 生产派工 + */ + @Override + public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo) { + return baseMapper.selectProdPlanInfoJoinProcessList(bo); + } + + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml index 01a495a..ef86018 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml @@ -8,13 +8,22 @@ select ${ew.getSqlSelect}, - bmi.material_name + bmi.material_name, + CASE + WHEN t.dispatch_type = 1 THEN pli.prod_line_name + WHEN t.dispatch_type = 2 THEN rt.route_name + WHEN t.dispatch_type = 3 THEN pi.process_name + ELSE NULL + END AS dispatchName * from prod_order_info t left join base_material_info bmi on bmi.material_id = t.material_id + left join prod_base_prod_line_info pli on t.dispatch_type = 1 and pli.prod_line_id = t.dispatch_id + left join prod_base_route rt on t.dispatch_type = 2 and rt.route_id = t.dispatch_id + left join prod_base_process_info pi on t.dispatch_type = 3 and pi.process_id = t.dispatch_id ${ew.getCustomSqlSegment} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index 43427da..ee17ee7 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -4,6 +4,69 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 0cb9f6d654b327e4e838974e11367c19b60884df Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 20 Jan 2025 11:18:52 +0800 Subject: [PATCH 35/69] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E9=80=9A?= =?UTF-8?q?=E7=94=A8API=E6=8E=A5=E5=8F=A3=E3=80=81=E5=AF=B9=E6=8E=A5SAP?= =?UTF-8?q?=E7=89=A9=E6=96=99=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/{ => sap}/SAPPortDto.java | 2 +- .../api/domain/{ => sap}/WERKSDto.java | 2 +- .../api/domain/{ => sap}/vo/SAPResultVo.java | 4 +- .../api/service/ICommonApiService.java | 23 ++++++ .../impl/BaseMaterialInfoApiServiceImpl.java | 40 ++++------ .../service/impl/CommonApiServiceImpl.java | 77 +++++++++++++++++++ .../org/dromara/api/utils/SAPApiUtils.java | 43 +++++++++++ .../org/dromara/api/utils/SAPConstants.java | 70 +++++++++++++++++ .../dubbo/RemoteMaterialInfoServiceImpl.java | 1 + 9 files changed, 232 insertions(+), 30 deletions(-) rename ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/{ => sap}/SAPPortDto.java (96%) rename ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/{ => sap}/WERKSDto.java (93%) rename ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/{ => sap}/vo/SAPResultVo.java (93%) create mode 100644 ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java create mode 100644 ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java create mode 100644 ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java create mode 100644 ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/SAPPortDto.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/SAPPortDto.java similarity index 96% rename from ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/SAPPortDto.java rename to ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/SAPPortDto.java index dfe51e1..fc623bd 100644 --- a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/SAPPortDto.java +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/SAPPortDto.java @@ -1,4 +1,4 @@ -package org.dromara.api.domain; +package org.dromara.api.domain.sap; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/WERKSDto.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/WERKSDto.java similarity index 93% rename from ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/WERKSDto.java rename to ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/WERKSDto.java index 5e06469..03946c1 100644 --- a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/WERKSDto.java +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/WERKSDto.java @@ -1,4 +1,4 @@ -package org.dromara.api.domain; +package org.dromara.api.domain.sap; import java.util.HashMap; import java.util.List; diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/vo/SAPResultVo.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/vo/SAPResultVo.java similarity index 93% rename from ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/vo/SAPResultVo.java rename to ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/vo/SAPResultVo.java index 11bea00..bdcf0c2 100644 --- a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/vo/SAPResultVo.java +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/vo/SAPResultVo.java @@ -1,7 +1,7 @@ -package org.dromara.api.domain.vo; +package org.dromara.api.domain.sap.vo; import com.fasterxml.jackson.annotation.JsonProperty; -import org.dromara.api.domain.WERKSDto; +import org.dromara.api.domain.sap.WERKSDto; import java.util.HashMap; import java.util.List; diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java new file mode 100644 index 0000000..c5a3950 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java @@ -0,0 +1,23 @@ +package org.dromara.api.service; + +import org.dromara.api.domain.sap.SAPPortDto; +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; + +import java.util.List; + +/** + * 通用APIService接口 + * + * @author Yinq + * @date 2025-01-02 + */ +public interface ICommonApiService { + + + String getSAPData(SAPPortDto sapPortDto); + + + List convertSAPToMaterialEntity(String json); + + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java index d46c9f4..6052085 100644 --- a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java @@ -2,17 +2,23 @@ package org.dromara.api.service.impl; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import org.apache.dubbo.config.annotation.DubboReference; -import org.dromara.api.domain.SAPPortDto; -import org.dromara.api.domain.vo.SAPResultVo; +import org.dromara.api.domain.sap.SAPPortDto; +import org.dromara.api.domain.sap.vo.SAPResultVo; import org.dromara.api.service.IBaseMaterialInfoApiService; import lombok.RequiredArgsConstructor; +import org.dromara.api.service.ICommonApiService; +import org.dromara.api.utils.SAPApiUtils; +import org.dromara.api.utils.SAPConstants; import org.dromara.mes.api.RemoteMaterialInfoService; import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -25,6 +31,9 @@ import java.util.List; @Service public class BaseMaterialInfoApiServiceImpl implements IBaseMaterialInfoApiService { + @Autowired + private final ICommonApiService commonApiService; + @DubboReference private final RemoteMaterialInfoService remoteMaterialInfoService; @@ -32,34 +41,13 @@ public class BaseMaterialInfoApiServiceImpl implements IBaseMaterialInfoApiServi public String insertApi(String requestBody) { SAPPortDto sapPortDto = new SAPPortDto(); //请求API接口,获取数据 - List list = getMaterialData(sapPortDto); + String json = commonApiService.getSAPData(sapPortDto); //解析数据,存储实体类 - + List list = commonApiService.convertSAPToMaterialEntity(json); remoteMaterialInfoService.remoteInsertBaseMaterialInfo(list); return "success"; } - public List getMaterialData(SAPPortDto sapPortDto) { - List materialVos = new ArrayList<>(); - String requestParam = null; - String result = null; - // 创建ObjectMapper实例 对象转JSON字符串 - ObjectMapper objectMapper = new ObjectMapper(); - // 格式化输出 - // objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); -// requestParam = objectMapper.writeValueAsString(sapPortDto); -// result = ApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.MATERIAL_URL, requestParam); - try { - // 处理接口返回消息 - ObjectMapper resultMapper = new ObjectMapper(); - // 将 JSON 字符串 转换为 Java 对象 - SAPResultVo resultVo = resultMapper.readValue(result, SAPResultVo.class); - //转物料实体类 保存数据 -// materialVos = storageService.insertSAPMaterialInfo(resultVo); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - return materialVos; - } + } diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java new file mode 100644 index 0000000..157dab5 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java @@ -0,0 +1,77 @@ +package org.dromara.api.service.impl; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import org.dromara.api.domain.sap.SAPPortDto; +import org.dromara.api.domain.sap.vo.SAPResultVo; +import org.dromara.api.service.ICommonApiService; +import org.dromara.api.utils.SAPApiUtils; +import org.dromara.api.utils.SAPConstants; +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +/** + * 通用APIService接口 + * + * @author Yinq + * @date 2025-01-02 + */ +@Service +public class CommonApiServiceImpl implements ICommonApiService { + + + @Override + public String getSAPData(SAPPortDto sapPortDto) { + String requestParam = null; + String result = null; + try { + //获取物料API + + // 创建ObjectMapper实例 对象转JSON字符串 + ObjectMapper objectMapper = new ObjectMapper(); + // 格式化输出 + objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); + requestParam = objectMapper.writeValueAsString(sapPortDto); + result = SAPApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.MATERIAL_URL, requestParam); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return result; + } + + @Override + public List convertSAPToMaterialEntity(String json) { + SAPResultVo resultVo = null; + try { + // 处理接口返回消息 + ObjectMapper resultMapper = new ObjectMapper(); + // 将 JSON 字符串 转换为 Java 对象 + resultVo = resultMapper.readValue(json, SAPResultVo.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + List materialInfoArrayList = new ArrayList<>(); + assert resultVo != null; + List> itemList = resultVo.getO_TAB().get("item"); + for (HashMap map : itemList) { + BaseMaterialInfoBo materialInfo = new BaseMaterialInfoBo(); + materialInfo.setMaterialCode(map.get("MATNR")); + materialInfo.setMaterialName(map.get("MAKTX")); + materialInfo.setMaterialUnit(map.get("MEINS")); + materialInfo.setMaterialMatkl(map.get("MATKL")); + materialInfoArrayList.add(materialInfo); + } + return materialInfoArrayList; + } + + + + + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java new file mode 100644 index 0000000..b5f8888 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java @@ -0,0 +1,43 @@ +package org.dromara.api.utils; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; + +import java.util.Base64; + +/** + * @Author YinQ + * @create 2023-10-12 10:52 + */ +public class SAPApiUtils { + + + /** + * POST请求json格式 + * @param apiUrl + * @param jsonData + * @return + */ + public static String sendSAPHttpPost(String apiUrl, String jsonData) { + try { + // 构建POST请求 + HttpRequest request = HttpRequest.post(apiUrl) + .header("Authorization", "Basic " + Base64.getUrlEncoder(). + encodeToString((SAPConstants.USER_NAME + ":" + SAPConstants.PASS_WORD).getBytes())) + .body(jsonData) // 设置JSON格式的请求体 + .contentType("application/json") // 设置Content-Type为application/json + .setConnectionTimeout(1000 * 10) // 设置请求连接超时时间 + ; + + // 发送POST请求 + HttpResponse httpResponse = request.execute(); + + // 获取响应内容 + return httpResponse.body(); + } catch (Exception e) { + // 捕获异常并重新抛出自定义异常 + throw new RuntimeException("Failed to send SAP HTTP POST request: " + e.getMessage(), e); + } + + } +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java new file mode 100644 index 0000000..8dd0c71 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java @@ -0,0 +1,70 @@ +package org.dromara.api.utils; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * @Author YinQ + * @create 2023-09-26 15:39 + */ +@Component +public class SAPConstants { + + + /** + * SAP-URL前缀 + */ + public static String SAP_PREFIX_URL; + + /** + * SAP-用户名 + */ + public static String USER_NAME; + + /** + * SAP-密码 + */ + public static String PASS_WORD; + + /** + * 获取物料主数据(MES2019) + */ + public static final String MATERIAL_URL = "/SdGetSB/SdSapGetMaterialToMesSvcRSProxy/merge"; + + /** + * 获取生产工单(MES2019) + */ + public static final String PRODUCTION_ORDERS_URL = "/SdGetSB/SdSapGetPOToMesSvcRSProxy/merge"; + + /** + * 获取设备模具信息(MES2019) + */ + public static final String EQUIPMENT_URL = "/SdGetSB/SdSapGetEQToMesSvcRSProxy/merge"; + + /** + * 获取产品BOM信息(MES2019) + */ + public static final String PRODUCTS_BOM_URL = "/SdGetSB/SdSapGetBomToMesSvcRSProxy/merge"; + + /** + * 工厂编号 + */ + public static final String FACTORY_CODE = "1301"; + + +// @Value("${sap.prefix}") + public void setPrefix(String value) { + SAP_PREFIX_URL = value; + } + +// @Value("${sap.username}") + public void setUserName(String value) { + USER_NAME = value; + } + +// @Value("${sap.password}") + public void setPassWord(String value) { + PASS_WORD = value; + } + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java index 811b818..b5d5740 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java @@ -34,6 +34,7 @@ public class RemoteMaterialInfoServiceImpl implements RemoteMaterialInfoService public Boolean remoteInsertBaseMaterialInfo(List bos) { List list = new ArrayList<>(); for (BaseMaterialInfoBo bo : bos) { + //校验物料是否已存在,若存在则更新数据 BaseMaterialInfo add = MapstructUtils.convert(bo, BaseMaterialInfo.class); list.add(add); } From 95a8fc0fb74e2d9154c6f9dd21e396c068a71125 Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 20 Jan 2025 11:28:53 +0800 Subject: [PATCH 36/69] =?UTF-8?q?change(hwmom-mes):=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=89=A9=E6=96=99=E7=B1=BB=E5=9E=8B=E5=92=8C=E8=AE=A1=E9=87=8F?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E4=BF=A1=E6=81=AF=E7=9A=84=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91,=E4=BD=BF=E7=94=A8=20ObjectUtils.isNotEmpty(?= =?UTF-8?q?)=20=E6=9B=BF=E4=BB=A3=E7=A9=BA=E5=80=BC=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BaseMaterialTypeServiceImpl.java | 14 +++++++++++++- .../impl/BaseMeasurementUnitInfoServiceImpl.java | 6 ++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java index 440f790..7ac3ae5 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.apache.commons.lang3.ObjectUtils; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -87,6 +88,17 @@ public class BaseMaterialTypeServiceImpl implements IBaseMaterialTypeService { public Boolean insertByBo(BaseMaterialTypeBo bo) { BaseMaterialType add = MapstructUtils.convert(bo, BaseMaterialType.class); validEntityBeforeSave(add); + + //获取父节点信息 + BaseMaterialTypeVo query = baseMapper.selectVoById(bo.getParentId()); + if (ObjectUtils.isNotEmpty(query)) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setMatrialTypeId(add.getMatrialTypeId()); @@ -135,7 +147,7 @@ public class BaseMaterialTypeServiceImpl implements IBaseMaterialTypeService { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 for (Long id : ids) { - //TODO 校验是否需要删除 + //监测删除的节点是否有子节点 BaseMaterialType query = new BaseMaterialType(); query.setParentId(id); if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java index 8d62ebd..df7f9e1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.apache.commons.lang3.ObjectUtils; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -80,16 +81,17 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI public Boolean insertByBo(BaseMeasurementUnitInfoBo bo) { BaseMeasurementUnitInfo add = MapstructUtils.convert(bo, BaseMeasurementUnitInfo.class); validEntityBeforeSave(add); + // 获取父节点信息 BaseMeasurementUnitInfoVo query = baseMapper.selectVoById(bo.getParentId()); - - if (query != null) { + if (ObjectUtils.isNotEmpty(query)) { //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors add.setAncestors(query.getAncestors() + "," + bo.getParentId()); }else{ //若父节点为空,则ancestors仅有父节点id add.setAncestors(bo.getParentId().toString()); } + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setUnitId(add.getUnitId()); From 2218bb4caddc55bf603d3c04c579f6cc23a186f7 Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 20 Jan 2025 11:30:37 +0800 Subject: [PATCH 37/69] =?UTF-8?q?add(hwmom-mes):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=BB=93=E6=9E=84BOM=E7=AE=A1=E7=90=86(=E6=A0=91=E5=9E=8B)?= =?UTF-8?q?=E5=92=8C=E6=9C=BA=E5=8F=B0=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加结构BOM信息相关实体、控制器、服务、Mapper等代码 - 实现结构BOM信息的增删查改等功能 - 添加机台信息相关实体、控制器、服务、Mapper等代码 - 实现机台信息的增删查改等功能 --- .../BaseStructureBomController.java | 117 ++++++++++++++ .../ProdBaseMachineInfoController.java | 117 ++++++++++++++ .../dromara/mes/domain/BaseStructureBom.java | 81 ++++++++++ .../mes/domain/ProdBaseMachineInfo.java | 76 +++++++++ .../mes/domain/bo/BaseStructureBomBo.java | 80 ++++++++++ .../mes/domain/bo/ProdBaseMachineInfoBo.java | 76 +++++++++ .../mes/domain/vo/BaseStructureBomVo.java | 136 ++++++++++++++++ .../mes/domain/vo/ProdBaseMachineInfoVo.java | 129 +++++++++++++++ .../mes/mapper/BaseStructureBomMapper.java | 15 ++ .../mes/mapper/ProdBaseMachineInfoMapper.java | 15 ++ .../mes/service/IBaseStructureBomService.java | 59 +++++++ .../service/IProdBaseMachineInfoService.java | 69 ++++++++ .../impl/BaseStructureBomServiceImpl.java | 146 +++++++++++++++++ .../impl/ProdBaseMachineInfoServiceImpl.java | 151 ++++++++++++++++++ .../mapper/mes/BaseStructureBomMapper.xml | 7 + .../mapper/mes/ProdBaseMachineInfoMapper.xml | 7 + 16 files changed, 1281 insertions(+) create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java new file mode 100644 index 0000000..b6599b7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.mes.domain.bo.BaseStructureBomBo; +import org.dromara.mes.service.IBaseStructureBomService; + +/** + * 结构BOM信息 + * 前端访问路由地址为:/mes/baseStructureBom + * + * @author zangch + * @date 2025-01-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/baseStructureBom") +public class BaseStructureBomController extends BaseController { + + private final IBaseStructureBomService baseStructureBomService; + + /** + * 查询结构BOM信息列表 + */ + @SaCheckPermission("mes:baseStructureBom:list") + @GetMapping("/list") + public R> list(BaseStructureBomBo bo) { + List list = baseStructureBomService.queryList(bo); + return R.ok(list); + } + + /** + * 导出结构BOM信息列表 + */ + @SaCheckPermission("mes:baseStructureBom:export") + @Log(title = "结构BOM信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseStructureBomBo bo, HttpServletResponse response) { + List list = baseStructureBomService.queryList(bo); + ExcelUtil.exportExcel(list, "结构BOM信息", BaseStructureBomVo.class, response); + } + + /** + * 获取结构BOM信息详细信息 + * + * @param structureBomId 主键 + */ + @SaCheckPermission("mes:baseStructureBom:query") + @GetMapping("/{structureBomId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long structureBomId) { + return R.ok(baseStructureBomService.queryById(structureBomId)); + } + + /** + * 新增结构BOM信息 + */ + @SaCheckPermission("mes:baseStructureBom:add") + @Log(title = "结构BOM信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseStructureBomBo bo) { + return toAjax(baseStructureBomService.insertByBo(bo)); + } + + /** + * 修改结构BOM信息 + */ + @SaCheckPermission("mes:baseStructureBom:edit") + @Log(title = "结构BOM信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseStructureBomBo bo) { + return toAjax(baseStructureBomService.updateByBo(bo)); + } + + /** + * 删除结构BOM信息 + * + * @param structureBomIds 主键串 + */ + @SaCheckPermission("mes:baseStructureBom:remove") + @Log(title = "结构BOM信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{structureBomIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] structureBomIds) { + return toAjax(baseStructureBomService.deleteWithValidByIds(List.of(structureBomIds), true)); + } + + + /** + * 下拉框查询结构BOM信息列表 + */ + + @GetMapping("getBaseStructureBomList") + public R> getBaseStructureBomlist(BaseStructureBomBo bo) { + List list = baseStructureBomService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java new file mode 100644 index 0000000..399bc65 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; +import org.dromara.mes.service.IProdBaseMachineInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机台信息 + * 前端访问路由地址为:/mes/prodBaseMachineInfo + * + * @author zangch + * @date 2025-01-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/prodBaseMachineInfo") +public class ProdBaseMachineInfoController extends BaseController { + + private final IProdBaseMachineInfoService prodBaseMachineInfoService; + + /** + * 查询机台信息列表 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdBaseMachineInfoBo bo, PageQuery pageQuery) { + return prodBaseMachineInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出机台信息列表 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:export") + @Log(title = "机台信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdBaseMachineInfoBo bo, HttpServletResponse response) { + List list = prodBaseMachineInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "机台信息", ProdBaseMachineInfoVo.class, response); + } + + /** + * 获取机台信息详细信息 + * + * @param machineId 主键 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:query") + @GetMapping("/{machineId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long machineId) { + return R.ok(prodBaseMachineInfoService.queryById(machineId)); + } + + /** + * 新增机台信息 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:add") + @Log(title = "机台信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdBaseMachineInfoBo bo) { + return toAjax(prodBaseMachineInfoService.insertByBo(bo)); + } + + /** + * 修改机台信息 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:edit") + @Log(title = "机台信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseMachineInfoBo bo) { + return toAjax(prodBaseMachineInfoService.updateByBo(bo)); + } + + /** + * 删除机台信息 + * + * @param machineIds 主键串 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:remove") + @Log(title = "机台信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{machineIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] machineIds) { + return toAjax(prodBaseMachineInfoService.deleteWithValidByIds(List.of(machineIds), true)); + } + + + /** + * 下拉框查询机台信息列表 + */ + + @GetMapping("getProdBaseMachineInfoList") + public R> getProdBaseMachineInfolist(ProdBaseMachineInfoBo bo) { + List list = prodBaseMachineInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java new file mode 100644 index 0000000..bd1aef1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java @@ -0,0 +1,81 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 结构BOM信息对象 base_structure_bom + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("base_structure_bom") +public class BaseStructureBom extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "structure_bom_id", type = IdType.AUTO) + private Long structureBomId; + + /** + * 父级标识 + */ + private Long parentId; + + /** + * 物料类型ID + */ + private String materialTypeId; + + /** + * 物料类型名称 + */ + private String materialTypeName; + + /** + * 结构BOM说明 + */ + private String structureBomDesc; + + /** + * 结构BOM版本 + */ + private String structureBomVersion; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 层级 + */ + private Long level; + + /** + * 顶级标识(1是 0否) + */ + private Long topFlag; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java new file mode 100644 index 0000000..cb21851 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java @@ -0,0 +1,76 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 机台信息对象 prod_base_machine_info + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_base_machine_info") +public class ProdBaseMachineInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "machine_id", type = IdType.AUTO) + private Long machineId; + + /** + * 机台编号 + */ + private String machineCode; + + /** + * 机台名称 + */ + private String machineName; + + /** + * 资产编号 + */ + private String assetNumber; + + /** + * 机台位置 + */ + private String machineLocation; + + /** + * 机台类型 + */ + private String machineType; + + /** + * 机台规格 + */ + private String machineSpec; + + /** + * 供应商 + */ + private String supplierId; + + /** + * 机台状态(0停用 1启用 2报废) + */ + private String machineStatus; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java new file mode 100644 index 0000000..05f6e93 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java @@ -0,0 +1,80 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 结构BOM信息业务对象 base_structure_bom + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseStructureBom.class, reverseConvertGenerate = false) +public class BaseStructureBomBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long structureBomId; + + /** + * 父级标识 + */ + private Long parentId; + + /** + * 物料类型ID + */ + @NotBlank(message = "物料类型ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialTypeId; + + /** + * 物料类型名称 + */ + private String materialTypeName; + + /** + * 结构BOM说明 + */ + private String structureBomDesc; + + /** + * 结构BOM版本 + */ + private String structureBomVersion; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 层级 + */ + private Long level; + + /** + * 顶级标识(1是 0否) + */ + private Long topFlag; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java new file mode 100644 index 0000000..1c09d3d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java @@ -0,0 +1,76 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 机台信息业务对象 prod_base_machine_info + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdBaseMachineInfo.class, reverseConvertGenerate = false) +public class ProdBaseMachineInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long machineId; + + /** + * 机台编号 + */ + @NotBlank(message = "机台编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String machineCode; + + /** + * 机台名称 + */ + @NotBlank(message = "机台名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String machineName; + + /** + * 资产编号 + */ + private String assetNumber; + + /** + * 机台位置 + */ + private String machineLocation; + + /** + * 机台类型 + */ + private String machineType; + + /** + * 机台规格 + */ + private String machineSpec; + + /** + * 供应商 + */ + private String supplierId; + + /** + * 机台状态(0停用 1启用 2报废) + */ + private String machineStatus; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java new file mode 100644 index 0000000..1e09b3e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java @@ -0,0 +1,136 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.BaseStructureBom; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 结构BOM信息视图对象 base_structure_bom + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseStructureBom.class) +public class BaseStructureBomVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long structureBomId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 父级标识 + */ + @ExcelProperty(value = "父级标识") + private Long parentId; + + /** + * 物料类型ID + */ + @ExcelProperty(value = "物料类型ID") + private String materialTypeId; + + /** + * 物料类型名称 + */ + @ExcelProperty(value = "物料类型名称") + private String materialTypeName; + + /** + * 结构BOM说明 + */ + @ExcelProperty(value = "结构BOM说明") + private String structureBomDesc; + + /** + * 结构BOM版本 + */ + @ExcelProperty(value = "结构BOM版本") + private String structureBomVersion; + + /** + * 祖级列表 + */ + @ExcelProperty(value = "祖级列表") + private String ancestors; + + /** + * 层级 + */ + @ExcelProperty(value = "层级") + private Long level; + + /** + * 顶级标识(1是 0否) + */ + @ExcelProperty(value = "顶级标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "top_flag") + private Long topFlag; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java new file mode 100644 index 0000000..abc767a --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java @@ -0,0 +1,129 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 机台信息视图对象 prod_base_machine_info + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdBaseMachineInfo.class) +public class ProdBaseMachineInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long machineId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 机台编号 + */ + @ExcelProperty(value = "机台编号") + private String machineCode; + + /** + * 机台名称 + */ + @ExcelProperty(value = "机台名称") + private String machineName; + + /** + * 资产编号 + */ + @ExcelProperty(value = "资产编号") + private String assetNumber; + + /** + * 机台位置 + */ + @ExcelProperty(value = "机台位置") + private String machineLocation; + + /** + * 机台类型 + */ + @ExcelProperty(value = "机台类型") + private String machineType; + + /** + * 机台规格 + */ + @ExcelProperty(value = "机台规格") + private String machineSpec; + + /** + * 供应商 + */ + @ExcelProperty(value = "供应商") + private String supplierId; + + /** + * 机台状态(0停用 1启用 2报废) + */ + @ExcelProperty(value = "机台状态(0停用 1启用 2报废)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "machine_status") + private String machineStatus; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java new file mode 100644 index 0000000..2cc7076 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 结构BOM信息Mapper接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface BaseStructureBomMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java new file mode 100644 index 0000000..b1da8e7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机台信息Mapper接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface ProdBaseMachineInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java new file mode 100644 index 0000000..d65a7d1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java @@ -0,0 +1,59 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.mes.domain.bo.BaseStructureBomBo; + +import java.util.Collection; +import java.util.List; + +/** + * 结构BOM信息Service接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface IBaseStructureBomService { + + /** + * 查询结构BOM信息 + * + * @param structureBomId 主键 + * @return 结构BOM信息 + */ + BaseStructureBomVo queryById(Long structureBomId); + + + /** + * 查询符合条件的结构BOM信息列表 + * + * @param bo 查询条件 + * @return 结构BOM信息列表 + */ + List queryList(BaseStructureBomBo bo); + + /** + * 新增结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BaseStructureBomBo bo); + + /** + * 修改结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BaseStructureBomBo bo); + + /** + * 校验并批量删除结构BOM信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java new file mode 100644 index 0000000..4f54382 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 机台信息Service接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface IProdBaseMachineInfoService { + + /** + * 查询机台信息 + * + * @param machineId 主键 + * @return 机台信息 + */ + ProdBaseMachineInfoVo queryById(Long machineId); + + /** + * 分页查询机台信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机台信息分页列表 + */ + TableDataInfo queryPageList(ProdBaseMachineInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机台信息列表 + * + * @param bo 查询条件 + * @return 机台信息列表 + */ + List queryList(ProdBaseMachineInfoBo bo); + + /** + * 新增机台信息 + * + * @param bo 机台信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdBaseMachineInfoBo bo); + + /** + * 修改机台信息 + * + * @param bo 机台信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdBaseMachineInfoBo bo); + + /** + * 校验并批量删除机台信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java new file mode 100644 index 0000000..9ed72ad --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.mes.service.impl; + +import org.apache.commons.lang3.ObjectUtils; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.BaseStructureBomBo; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.mes.mapper.BaseStructureBomMapper; +import org.dromara.mes.service.IBaseStructureBomService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 结构BOM信息Service业务层处理 + * + * @author zangch + * @date 2025-01-20 + */ +@RequiredArgsConstructor +@Service +public class BaseStructureBomServiceImpl implements IBaseStructureBomService { + + private final BaseStructureBomMapper baseMapper; + + /** + * 查询结构BOM信息 + * + * @param structureBomId 主键 + * @return 结构BOM信息 + */ + @Override + public BaseStructureBomVo queryById(Long structureBomId){ + return baseMapper.selectVoById(structureBomId); + } + + + /** + * 查询符合条件的结构BOM信息列表 + * + * @param bo 查询条件 + * @return 结构BOM信息列表 + */ + @Override + public List queryList(BaseStructureBomBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseStructureBomBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseStructureBom.class) + .selectAll(BaseStructureBom.class) + .eq(bo.getStructureBomId() != null, BaseStructureBom::getStructureBomId, bo.getStructureBomId()) + .eq(bo.getParentId() != null, BaseStructureBom::getParentId, bo.getParentId()) + .eq(StringUtils.isNotBlank(bo.getMaterialTypeId()), BaseStructureBom::getMaterialTypeId, bo.getMaterialTypeId()) + .like(StringUtils.isNotBlank(bo.getMaterialTypeName()), BaseStructureBom::getMaterialTypeName, bo.getMaterialTypeName()) + .eq(StringUtils.isNotBlank(bo.getStructureBomDesc()), BaseStructureBom::getStructureBomDesc, bo.getStructureBomDesc()) + .eq(StringUtils.isNotBlank(bo.getStructureBomVersion()), BaseStructureBom::getStructureBomVersion, bo.getStructureBomVersion()) + .eq(StringUtils.isNotBlank(bo.getAncestors()), BaseStructureBom::getAncestors, bo.getAncestors()) + .eq(bo.getLevel() != null, BaseStructureBom::getLevel, bo.getLevel()) + .eq(bo.getTopFlag() != null, BaseStructureBom::getTopFlag, bo.getTopFlag()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseStructureBom::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(BaseStructureBom::getCreateTime); + return lqw; + } + + /** + * 新增结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseStructureBomBo bo) { + BaseStructureBom add = MapstructUtils.convert(bo, BaseStructureBom.class); + validEntityBeforeSave(add); + + //获取父节点信息 + BaseStructureBomVo query = baseMapper.selectVoById(bo.getParentId()); + if (ObjectUtils.isNotEmpty(query)) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStructureBomId(add.getStructureBomId()); + } + return flag; + } + + /** + * 修改结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseStructureBomBo bo) { + BaseStructureBom update = MapstructUtils.convert(bo, BaseStructureBom.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseStructureBom entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除结构BOM信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + //监测删除的节点是否有子节点 + BaseStructureBom query = new BaseStructureBom(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java new file mode 100644 index 0000000..390b246 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java @@ -0,0 +1,151 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.mes.mapper.ProdBaseMachineInfoMapper; +import org.dromara.mes.service.IProdBaseMachineInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机台信息Service业务层处理 + * + * @author zangch + * @date 2025-01-20 + */ +@RequiredArgsConstructor +@Service +public class ProdBaseMachineInfoServiceImpl implements IProdBaseMachineInfoService { + + private final ProdBaseMachineInfoMapper baseMapper; + + /** + * 查询机台信息 + * + * @param machineId 主键 + * @return 机台信息 + */ + @Override + public ProdBaseMachineInfoVo queryById(Long machineId){ + return baseMapper.selectVoById(machineId); + } + + /** + * 分页查询机台信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机台信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdBaseMachineInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的机台信息列表 + * + * @param bo 查询条件 + * @return 机台信息列表 + */ + @Override + public List queryList(ProdBaseMachineInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdBaseMachineInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseMachineInfo.class) + .selectAll(ProdBaseMachineInfo.class) + .eq(bo.getMachineId() != null, ProdBaseMachineInfo::getMachineId, bo.getMachineId()) + .eq(StringUtils.isNotBlank(bo.getMachineCode()), ProdBaseMachineInfo::getMachineCode, bo.getMachineCode()) + .like(StringUtils.isNotBlank(bo.getMachineName()), ProdBaseMachineInfo::getMachineName, bo.getMachineName()) + .eq(StringUtils.isNotBlank(bo.getAssetNumber()), ProdBaseMachineInfo::getAssetNumber, bo.getAssetNumber()) + .eq(StringUtils.isNotBlank(bo.getMachineLocation()), ProdBaseMachineInfo::getMachineLocation, bo.getMachineLocation()) + .eq(StringUtils.isNotBlank(bo.getMachineType()), ProdBaseMachineInfo::getMachineType, bo.getMachineType()) + .eq(StringUtils.isNotBlank(bo.getMachineSpec()), ProdBaseMachineInfo::getMachineSpec, bo.getMachineSpec()) + .eq(StringUtils.isNotBlank(bo.getSupplierId()), ProdBaseMachineInfo::getSupplierId, bo.getSupplierId()) + .eq(StringUtils.isNotBlank(bo.getMachineStatus()), ProdBaseMachineInfo::getMachineStatus, bo.getMachineStatus()) + .orderByDesc(ProdBaseMachineInfo::getCreateTime); + return lqw; + } + + /** + * 新增机台信息 + * + * @param bo 机台信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdBaseMachineInfoBo bo) { + ProdBaseMachineInfo add = MapstructUtils.convert(bo, ProdBaseMachineInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMachineId(add.getMachineId()); + } + return flag; + } + + /** + * 修改机台信息 + * + * @param bo 机台信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdBaseMachineInfoBo bo) { + ProdBaseMachineInfo update = MapstructUtils.convert(bo, ProdBaseMachineInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdBaseMachineInfo entity){ + //TODO 做一些数据校验,如唯一约束 + if (StringUtils.isNotBlank(entity.getMachineCode())) { + ProdBaseMachineInfoBo query = new ProdBaseMachineInfoBo(); + query.setMachineCode(entity.getMachineCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + ProdBaseMachineInfo baseProdBaseMachineInfo = baseMapper.selectOne(lqw); + if (baseProdBaseMachineInfo != null + && !baseProdBaseMachineInfo.getMachineId().equals(entity.getMachineId())) { + throw new ServiceException("编码已存在"); + } + } + } + + /** + * 校验并批量删除机台信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml new file mode 100644 index 0000000..a8c008f --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml new file mode 100644 index 0000000..df7a3b6 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + From d0854b261d3161134f726516bca7c333a03a8867 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 20 Jan 2025 14:54:23 +0800 Subject: [PATCH 38/69] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=88=90=E5=93=81?= =?UTF-8?q?=E8=BD=A6=E6=9E=B6=E5=AD=90=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsConfigurationController.java | 2 +- .../wms/service/impl/WmsConfigurationServiceImpl.java | 8 +++++--- .../wms/service/impl/WmsHppInStockDetailServiceImpl.java | 5 +++++ .../wms/service/impl/WmsHppOutStockDetailServiceImpl.java | 5 +++++ .../wms/service/impl/WmsHppStorageDetailServiceImpl.java | 5 +++++ .../wms/service/impl/WmsHppStorePlaceServiceImpl.java | 5 +++++ .../dromara/wms/service/impl/WmsHppStoreServiceImpl.java | 5 +++++ .../wms/service/impl/WmsHsmToolingServiceImpl.java | 5 +++++ .../wms/service/impl/WmsInstockDetailServiceImpl.java | 7 +++++++ .../wms/service/impl/WmsInstockOrderServiceImpl.java | 5 +++++ .../service/impl/WmsInventoryCheckRecordServiceImpl.java | 5 +++++ .../wms/service/impl/WmsInventoryCheckServiceImpl.java | 3 +++ .../dromara/wms/service/impl/WmsMoveOrderServiceImpl.java | 3 +++ .../wms/service/impl/WmsOutstockDetailServiceImpl.java | 3 +++ .../wms/service/impl/WmsOutstockOrderServiceImpl.java | 3 +++ .../wms/service/impl/WmsPsmStorePlaceServiceImpl.java | 5 +++++ .../dromara/wms/service/impl/WmsPsmStoreServiceImpl.java | 5 +++++ .../wms/service/impl/WmsPsmStoreTypeServiceImpl.java | 5 +++++ 18 files changed, 80 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java index e273d94..b0976fd 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java @@ -76,7 +76,7 @@ public class WmsConfigurationController extends BaseController { @Log(title = "仓库模块配置", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsConfigurationBo bo) { + public R add(@RequestBody WmsConfigurationBo bo) { return toAjax(wmsConfigurationService.insertByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java index af36f1a..ba50138 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java @@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.mybatis.helper.DataPermissionHelper; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.model.LoginUser; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; @@ -123,9 +124,8 @@ public class WmsConfigurationServiceImpl implements IWmsConfigurationService { @Override public Boolean insertByBo(WmsConfigurationBo bo) { WmsConfiguration add = MapstructUtils.convert(bo, WmsConfiguration.class); -// LoginUser currentUser = DataPermissionHelper.getVariable("user"); -// String tenantId = currentUser.getTenantId(); -// add.setTenantId(Integer.valueOf(tenantId)); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setConfigurationId(add.getConfigurationId()); @@ -143,6 +143,8 @@ public class WmsConfigurationServiceImpl implements IWmsConfigurationService { public Boolean updateByBo(WmsConfigurationBo bo) { WmsConfiguration update = MapstructUtils.convert(bo, WmsConfiguration.class); validEntityBeforeSave(update); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); return baseMapper.updateByconfigurationId(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java index a80ff42..386cb38 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsHppInStockDetail; import org.dromara.wms.domain.WmsHppStorePlace; import org.dromara.wms.domain.bo.WmsHppInStockDetailBo; @@ -97,6 +98,8 @@ public class WmsHppInStockDetailServiceImpl implements IWmsHppInStockDetailServi @Override public Boolean insertByBo(WmsHppInStockDetailBo bo) { WmsHppInStockDetail add = MapstructUtils.convert(bo, WmsHppInStockDetail.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -114,6 +117,8 @@ public class WmsHppInStockDetailServiceImpl implements IWmsHppInStockDetailServi @Override public Boolean updateByBo(WmsHppInStockDetailBo bo) { WmsHppInStockDetail update = MapstructUtils.convert(bo, WmsHppInStockDetail.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java index b690e95..f9aca61 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsHppOutStockDetail; import org.dromara.wms.domain.WmsHppStorePlace; @@ -99,6 +100,8 @@ public class WmsHppOutStockDetailServiceImpl implements IWmsHppOutStockDetailSer @Override public Boolean insertByBo(WmsHppOutStockDetailBo bo) { WmsHppOutStockDetail add = MapstructUtils.convert(bo, WmsHppOutStockDetail.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -116,6 +119,8 @@ public class WmsHppOutStockDetailServiceImpl implements IWmsHppOutStockDetailSer @Override public Boolean updateByBo(WmsHppOutStockDetailBo bo) { WmsHppOutStockDetail update = MapstructUtils.convert(bo, WmsHppOutStockDetail.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java index 68785f4..10cb91d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsHppInStockDetail; import org.dromara.wms.domain.WmsHppStorageDetail; import org.dromara.wms.domain.WmsHppStorePlace; @@ -97,6 +98,8 @@ public class WmsHppStorageDetailServiceImpl implements IWmsHppStorageDetailServi @Override public Boolean insertByBo(WmsHppStorageDetailBo bo) { WmsHppStorageDetail add = MapstructUtils.convert(bo, WmsHppStorageDetail.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -114,6 +117,8 @@ public class WmsHppStorageDetailServiceImpl implements IWmsHppStorageDetailServi @Override public Boolean updateByBo(WmsHppStorageDetailBo bo) { WmsHppStorageDetail update = MapstructUtils.convert(bo, WmsHppStorageDetail.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java index 0ccbb1d..1d7342f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsHppStorePlace; import org.dromara.wms.domain.bo.WmsHppStorePlaceBo; import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; @@ -93,6 +94,8 @@ public class WmsHppStorePlaceServiceImpl implements IWmsHppStorePlaceService { @Override public Boolean insertByBo(WmsHppStorePlaceBo bo) { WmsHppStorePlace add = MapstructUtils.convert(bo, WmsHppStorePlace.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -110,6 +113,8 @@ public class WmsHppStorePlaceServiceImpl implements IWmsHppStorePlaceService { @Override public Boolean updateByBo(WmsHppStorePlaceBo bo) { WmsHppStorePlace update = MapstructUtils.convert(bo, WmsHppStorePlace.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java index a663331..9e20d34 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsHppStore; import org.dromara.wms.domain.bo.WmsHppStoreBo; import org.dromara.wms.domain.vo.WmsHppStoreVo; @@ -94,6 +95,8 @@ public class WmsHppStoreServiceImpl implements IWmsHppStoreService { @Override public Boolean insertByBo(WmsHppStoreBo bo) { WmsHppStore add = MapstructUtils.convert(bo, WmsHppStore.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -111,6 +114,8 @@ public class WmsHppStoreServiceImpl implements IWmsHppStoreService { @Override public Boolean updateByBo(WmsHppStoreBo bo) { WmsHppStore update = MapstructUtils.convert(bo, WmsHppStore.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java index 0e1f3a7..7570ce2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsHsmTooling; import org.dromara.wms.domain.bo.WmsHsmToolingBo; import org.dromara.wms.domain.vo.WmsHsmToolingVo; @@ -97,6 +98,8 @@ public class WmsHsmToolingServiceImpl implements IWmsHsmToolingService { @Override public Boolean insertByBo(WmsHsmToolingBo bo) { WmsHsmTooling add = MapstructUtils.convert(bo, WmsHsmTooling.class); + String username = LoginHelper.getUsername(); + add.setCreatedBy(username); add.setCreatedTime(new Date()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -115,6 +118,8 @@ public class WmsHsmToolingServiceImpl implements IWmsHsmToolingService { @Override public Boolean updateByBo(WmsHsmToolingBo bo) { WmsHsmTooling update = MapstructUtils.convert(bo, WmsHsmTooling.class); + String username = LoginHelper.getUsername(); + update.setUpdatedBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java index 107ac34..6f61ff2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java @@ -9,6 +9,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.*; import org.dromara.wms.domain.bo.BaseMaterialInfoBo; import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; @@ -113,6 +114,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { public Boolean insertByBo(List bo) { ArrayList list = new ArrayList<>(); int a = 0; + String username = LoginHelper.getUsername(); for (WmsInstockDetailBo detailBo : bo) { BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); @@ -122,6 +124,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); add.setMaterialSpe(baseMaterialInfoVos.get(0).getMaterialSpec()); add.setUnitName(baseMaterialInfoVos.get(0).getMaterialUnit()); + add.setCreateBy(username); a += baseMapper.insert(add); } return a>0; @@ -135,8 +138,10 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { */ @Override public Boolean updateByBo(WmsInstockDetailBo bo) { + String username = LoginHelper.getUsername(); if (bo.getPrintNum()==null){ WmsInstockDetail update = MapstructUtils.convert(bo, WmsInstockDetail.class); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateDetail(update)>0; } @@ -154,11 +159,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { wmsInstockPrint.setBatchCode(batchCode); wmsInstockPrint.setApportionQty(bo.getPrintNum().longValue()); wmsInstockPrint.setMaterialQty(bo.getBarcodeNum()); + wmsInstockPrint.setCreateBy(username); int rows = wmsInstockPrintService.insertWmsInstockPrint(wmsInstockPrint); WmsInstockDetail wmsInstockDetail = new WmsInstockDetail(); wmsInstockDetail.setPrintedNum(bo.getPrintedNum()+bo.getPrintNum()); LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WmsInstockDetail::getInstockDetailId,bo.getInstockDetailId()); + wmsInstockDetail.setUpdateBy(username); int update = baseMapper.update(wmsInstockDetail, updateWrapper); return update>0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java index e37b31c..8b79e7a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java @@ -11,6 +11,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsConfiguration; import org.dromara.wms.domain.WmsInstockOrder; @@ -131,6 +132,7 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { */ @Override public WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo) { + String username = LoginHelper.getUsername(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date); @@ -147,6 +149,7 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { WmsInstockOrder add = MapstructUtils.convert(bo, WmsInstockOrder.class); validEntityBeforeSave(add); add.setInstockCode(inStockOrder); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setInstockId(add.getInstockId()); @@ -174,10 +177,12 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { */ @Override public Boolean updateByBo(WmsInstockOrderBo bo) { + String username = LoginHelper.getUsername(); WmsInstockOrder update = MapstructUtils.convert(bo, WmsInstockOrder.class); validEntityBeforeSave(update); // LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); // wrapper.eq(WmsInstockOrder::getInstockId,bo.getInstockId()); + update.setUpdateBy(username); int rows = baseMapper.updateInstock(update); return rows > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java index dd3632c..8e884c7 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsInventoryCheckRecord; import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; @@ -106,6 +107,8 @@ public class WmsInventoryCheckRecordServiceImpl implements IWmsInventoryCheckRec @Override public Boolean insertByBo(WmsInventoryCheckRecordBo bo) { WmsInventoryCheckRecord add = MapstructUtils.convert(bo, WmsInventoryCheckRecord.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -123,6 +126,8 @@ public class WmsInventoryCheckRecordServiceImpl implements IWmsInventoryCheckRec @Override public Boolean updateByBo(WmsInventoryCheckRecordBo bo) { WmsInventoryCheckRecord update = MapstructUtils.convert(bo, WmsInventoryCheckRecord.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java index 9e80db6..c16ad8b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsInstockOrder; import org.dromara.wms.domain.WmsInventoryCheck; @@ -129,6 +130,7 @@ public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { */ @Override public Boolean insertByBo(WmsInventoryCheckBo bo) { + String username = LoginHelper.getUsername(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date).substring(2); @@ -144,6 +146,7 @@ public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { String stockingOrder = order + orderDate + orderLast; WmsInventoryCheck add = MapstructUtils.convert(bo, WmsInventoryCheck.class); add.setCheckCode(stockingOrder); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java index 73488fd..1d30c9d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java @@ -11,6 +11,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsInventory; @@ -112,6 +113,7 @@ public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { */ @Override public Boolean insertByBo(WmsMoveOrderBo bo) { + String username = LoginHelper.getUsername(); //查询仓库现有的物料数量 HashMap> list = wmsInventoryService.selectInventorys(bo); List planList = list.get("planList");//计划库位数据 @@ -140,6 +142,7 @@ public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { int removeRows = wmsInventoryService.deletePlanList(ids); int rows = wmsInventoryService.updateWmsInventorys(updateList); WmsMoveOrder add = MapstructUtils.convert(bo, WmsMoveOrder.class); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java index 1850ef4..10bee34 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java @@ -10,6 +10,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsInstockDetail; import org.dromara.wms.domain.WmsInventory; @@ -118,6 +119,7 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { */ @Override public Boolean insertByBo(List bo) { + String username = LoginHelper.getUsername(); ArrayList list = new ArrayList<>(); int rows = 0; for (WmsOutstockDetailBo detailBo : bo) { @@ -127,6 +129,7 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { WmsOutstockDetail add = MapstructUtils.convert(detailBo, WmsOutstockDetail.class); add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + add.setCreateBy(username); rows += baseMapper.insert(add); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java index 6768e3f..4c2ddc5 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java @@ -10,6 +10,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsOutstockDetail; @@ -126,6 +127,7 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { */ @Override public WmsOutstockOrderVo insertByBo(WmsOutstockOrderBo bo) { + String username = LoginHelper.getUsername(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date); @@ -142,6 +144,7 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { WmsOutstockOrder add = MapstructUtils.convert(bo, WmsOutstockOrder.class); validEntityBeforeSave(add); add.setOutstockCode(outStockOrder); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setOutstockId(add.getOutstockId()); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java index 35e6e50..424e310 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmStore; import org.dromara.wms.domain.WmsPsmStorePlace; import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo; @@ -92,7 +93,9 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService { */ @Override public Boolean insertByBo(WmsPsmStorePlaceBo bo) { + String username = LoginHelper.getUsername(); WmsPsmStorePlace add = MapstructUtils.convert(bo, WmsPsmStorePlace.class); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -109,7 +112,9 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService { */ @Override public Boolean updateByBo(WmsPsmStorePlaceBo bo) { + String username = LoginHelper.getUsername(); WmsPsmStorePlace update = MapstructUtils.convert(bo, WmsPsmStorePlace.class); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java index 30256b1..e438143 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmStore; import org.dromara.wms.domain.WmsPsmStoreType; import org.dromara.wms.domain.bo.WmsPsmStoreBo; @@ -91,7 +92,9 @@ public class WmsPsmStoreServiceImpl implements IWmsPsmStoreService { */ @Override public Boolean insertByBo(WmsPsmStoreBo bo) { + String username = LoginHelper.getUsername(); WmsPsmStore add = MapstructUtils.convert(bo, WmsPsmStore.class); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -108,7 +111,9 @@ public class WmsPsmStoreServiceImpl implements IWmsPsmStoreService { */ @Override public Boolean updateByBo(WmsPsmStoreBo bo) { + String username = LoginHelper.getUsername(); WmsPsmStore update = MapstructUtils.convert(bo, WmsPsmStore.class); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java index bddf5c9..ce2ea37 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmStoreType; import org.dromara.wms.domain.bo.WmsPsmStoreTypeBo; import org.dromara.wms.domain.vo.WmsPsmStoreTypeVo; @@ -90,7 +91,9 @@ public class WmsPsmStoreTypeServiceImpl implements IWmsPsmStoreTypeService { */ @Override public Boolean insertByBo(WmsPsmStoreTypeBo bo) { + String username = LoginHelper.getUsername(); WmsPsmStoreType add = MapstructUtils.convert(bo, WmsPsmStoreType.class); + add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -107,7 +110,9 @@ public class WmsPsmStoreTypeServiceImpl implements IWmsPsmStoreTypeService { */ @Override public Boolean updateByBo(WmsPsmStoreTypeBo bo) { + String username = LoginHelper.getUsername(); WmsPsmStoreType update = MapstructUtils.convert(bo, WmsPsmStoreType.class); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } From 5f8d61f81dd1da2f9ea27c7ae07cc07a75e70a6e Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 20 Jan 2025 14:55:31 +0800 Subject: [PATCH 39/69] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=BB=E5=AD=90=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsPurchaseOrderController.java | 5 ++-- .../WmsPurchaseOrderDetailController.java | 2 +- .../domain/bo/WmsPurchaseOrderDetailBo.java | 2 ++ .../domain/vo/WmsPurchaseOrderDetailVo.java | 2 ++ .../IWmsPurchaseOrderDetailService.java | 2 +- .../wms/service/IWmsPurchaseOrderService.java | 2 +- .../WmsPurchaseOrderDetailServiceImpl.java | 30 ++++++++++++++----- .../impl/WmsPurchaseOrderServiceImpl.java | 4 +-- .../mapper/wms/WmsPsmInStockDetailMapper.xml | 7 +++++ 9 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java index f8f6569..c1529b6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.WmsPurchaseOrder; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -76,8 +77,8 @@ public class WmsPurchaseOrderController extends BaseController { @Log(title = "采购订单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsPurchaseOrderBo bo) { - return toAjax(wmsPurchaseOrderService.insertByBo(bo)); + public R add(@Validated(AddGroup.class) @RequestBody WmsPurchaseOrderBo bo) { + return R.ok(wmsPurchaseOrderService.insertByBo(bo)); } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java index b53d4ac..576dbc8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java @@ -76,7 +76,7 @@ public class WmsPurchaseOrderDetailController extends BaseController { @Log(title = "采购订单-物料", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsPurchaseOrderDetailBo bo) { + public R add(@RequestBody List bo) { return toAjax(wmsPurchaseOrderDetailService.insertByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java index 4ce6f39..25eecce 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java @@ -68,5 +68,7 @@ public class WmsPurchaseOrderDetailBo extends BaseEntity { */ private Long deliveryQty; + private Long materialId; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java index 2c073e1..16a74e9 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java @@ -94,5 +94,7 @@ public class WmsPurchaseOrderDetailVo implements Serializable { @ExcelProperty(value = "租户号") private String tenantId; + private Long materialId; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java index 021daa4..3eb6f5b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java @@ -48,7 +48,7 @@ public interface IWmsPurchaseOrderDetailService { * @param bo 采购订单-物料 * @return 是否新增成功 */ - Boolean insertByBo(WmsPurchaseOrderDetailBo bo); + Boolean insertByBo(List bo); /** * 修改采购订单-物料 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java index 3a0adeb..dfbeef1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java @@ -48,7 +48,7 @@ public interface IWmsPurchaseOrderService { * @param bo 采购订单 * @return 是否新增成功 */ - Boolean insertByBo(WmsPurchaseOrderBo bo); + WmsPurchaseOrder insertByBo(WmsPurchaseOrderBo bo); /** * 修改采购订单 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java index 967a0af..dc2cbfe 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java @@ -9,6 +9,12 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.wms.domain.WmsInstockDetail; +import org.dromara.wms.domain.bo.BaseMaterialInfoBo; +import org.dromara.wms.domain.bo.WmsInstockDetailBo; +import org.dromara.wms.domain.vo.BaseMaterialInfoVo; +import org.dromara.wms.service.IBaseMaterialInfoService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; @@ -16,6 +22,7 @@ import org.dromara.wms.domain.WmsPurchaseOrderDetail; import org.dromara.wms.mapper.WmsPurchaseOrderDetailMapper; import org.dromara.wms.service.IWmsPurchaseOrderDetailService; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -31,6 +38,8 @@ import java.util.Collection; public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetailService { private final WmsPurchaseOrderDetailMapper baseMapper; + @Autowired + private IBaseMaterialInfoService baseMaterialInfoService; /** * 查询采购订单-物料 @@ -92,14 +101,21 @@ public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetai * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsPurchaseOrderDetailBo bo) { - WmsPurchaseOrderDetail add = MapstructUtils.convert(bo, WmsPurchaseOrderDetail.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setPoDId(add.getPoDId()); + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + int a = 0; + for (WmsPurchaseOrderDetailBo detailBo : bo) { + BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); + baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); + List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); + WmsPurchaseOrderDetail add = MapstructUtils.convert(detailBo, WmsPurchaseOrderDetail.class); + add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); + add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + add.setMaterialSpe(baseMaterialInfoVos.get(0).getMaterialSpec()); + add.setUnitName(baseMaterialInfoVos.get(0).getMaterialUnit()); + a += baseMapper.insert(add); } - return flag; + return a>0; } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java index 316ceb1..bb1ccf8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java @@ -95,14 +95,14 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsPurchaseOrderBo bo) { + public WmsPurchaseOrder insertByBo(WmsPurchaseOrderBo bo) { WmsPurchaseOrder add = MapstructUtils.convert(bo, WmsPurchaseOrder.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setPoId(add.getPoId()); } - return flag; + return add; } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml new file mode 100644 index 0000000..fb5c378 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + From 051976983bcb270752689ecdc1b866ac461cad64 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 20 Jan 2025 14:56:28 +0800 Subject: [PATCH 40/69] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=BB=E5=AD=90=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java index ec57ccb..86d73a4 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java @@ -67,5 +67,7 @@ public class WmsPurchaseOrderDetail extends TenantEntity { */ private Long deliveryQty; + private Long materialId; + } From b152acfd4750dbd8af3a07aa52f6e384532fe0f2 Mon Sep 17 00:00:00 2001 From: wanghao Date: Mon, 20 Jan 2025 19:00:59 +0800 Subject: [PATCH 41/69] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E9=80=80=E5=BA=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsPdaApiController.java | 39 ++++++++++++++++ .../org/dromara/wms/domain/WmsMoveOrder.java | 8 +--- .../dromara/wms/domain/WmsOutstockRecord.java | 2 + .../wms/domain/bo/WmsReturnOrderBo.java | 2 +- .../wms/domain/vo/WmsOutstockRecordVo.java | 2 + .../wms/mapper/WmsOutstockRecordMapper.java | 2 + .../dromara/wms/mapper/WmsPdaApiMapper.java | 9 ++++ .../wms/service/IWmsPdaApiService.java | 9 ++++ .../service/impl/WmsPdaApiServiceImpl.java | 46 +++++++++++++++++++ .../impl/WmsReturnOrderServiceImpl.java | 1 + .../resources/mapper/wms/WmsPdaApiMapper.xml | 11 +++++ 11 files changed, 123 insertions(+), 8 deletions(-) create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java new file mode 100644 index 0000000..3049898 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java @@ -0,0 +1,39 @@ +package org.dromara.wms.controller; + +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.web.core.BaseController; +import org.dromara.wms.domain.bo.WmsReturnOrderBo; +import org.dromara.wms.domain.vo.WmsOutstockRecordVo; +import org.dromara.wms.service.IWmsPdaApiService; +import org.dromara.wms.service.IWmsReturnOrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/pda") +public class WmsPdaApiController extends BaseController { + @Autowired + private IWmsPdaApiService apiService; + @Autowired + private IWmsReturnOrderService wmsReturnOrderService; + + @PostMapping("/raw/returnSelectCode") + public R returnSelectCode(String code) { + WmsOutstockRecordVo wmsOutstockRecordVo = apiService.returnSelectCode(code); + + if (wmsOutstockRecordVo == null) { + return R.fail("条码错误,不能退库"); + } + return R.ok(wmsOutstockRecordVo); + } + @PostMapping("/raw/returnSubmit") + public R rawReturnSubmit( @RequestBody WmsReturnOrderBo bo) { + Boolean result = wmsReturnOrderService.insertByBo(bo); + if (result) { + apiService.rawReturnSubmitUpdateStateById(bo.getOutstockRecordId()); + } + return toAjax(result); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java index 4001f25..f455344 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java @@ -90,8 +90,7 @@ public class WmsMoveOrder{ * 租户id */ private String tenantId; - @TableField(fill = FieldFill.INSERT) - private String createBy; + /** * 创建时间 @@ -99,11 +98,6 @@ public class WmsMoveOrder{ @TableField(fill = FieldFill.INSERT) private Date createTime; - /** - * 更新者 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - private String updateBy; /** * 更新时间 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java index d2af59a..d7bfa7c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java @@ -92,4 +92,6 @@ public class WmsOutstockRecord extends TenantEntity { @TableField(exist = false) private java.math.BigDecimal returnQty; private String returnFlag; + @TableField(exist = false) + private Long warehouseId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java index 11991a3..9a58663 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java @@ -122,6 +122,6 @@ public class WmsReturnOrderBo extends BaseEntity{ private String tenantId; private String materialCode; - + private Long outstockRecordId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java index 9075c6e..d74d90b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java @@ -110,4 +110,6 @@ public class WmsOutstockRecordVo implements Serializable { private String materialUnit; private String materialSpec; private String returnFlag; + private Long warehouseId; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java index fbbd0b6..6eafe67 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.springframework.stereotype.Repository; /** * 出库记录Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author Yinq * @date 2025-01-09 */ +@Repository public interface WmsOutstockRecordMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java new file mode 100644 index 0000000..f1eb44c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java @@ -0,0 +1,9 @@ +package org.dromara.wms.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +@Repository +public interface WmsPdaApiMapper { + void rawReturnSubmitUpdateStateById(@Param("warehouseId") Long warehouseId); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java new file mode 100644 index 0000000..78d9dab --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java @@ -0,0 +1,9 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.vo.WmsOutstockRecordVo; + +public interface IWmsPdaApiService { + WmsOutstockRecordVo returnSelectCode(String code); + + void rawReturnSubmitUpdateStateById(Long warehouseId); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java new file mode 100644 index 0000000..4f4d288 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java @@ -0,0 +1,46 @@ +package org.dromara.wms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import io.github.linpeilie.BaseMapper; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseLocation; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsOutstockRecord; +import org.dromara.wms.domain.vo.WmsOutstockRecordVo; +import org.dromara.wms.mapper.WmsOutstockRecordMapper; +import org.dromara.wms.mapper.WmsPdaApiMapper; +import org.dromara.wms.service.IWmsPdaApiService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class WmsPdaApiServiceImpl implements IWmsPdaApiService { + @Autowired + private WmsOutstockRecordMapper wmsOutstockRecordMapper; +@Autowired +private WmsPdaApiMapper apiMapper; + + + @Override + public WmsOutstockRecordVo returnSelectCode(String code) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutstockRecord.class) + .selectAll(WmsOutstockRecord.class) + .select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialUnit, BaseMaterialInfo::getMaterialSpec) + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsOutstockRecord::getMaterialId) + .select(WmsBaseLocation::getWarehouseId) + .leftJoin(WmsBaseLocation.class,WmsBaseLocation::getLocationCode, WmsOutstockRecord::getLocationCode) + .eq(WmsOutstockRecord::getBatchCode, code) + .eq(WmsOutstockRecord::getReturnFlag, 0) + .orderByDesc(WmsOutstockRecord::getCreateTime); + return wmsOutstockRecordMapper.selectVoOne(lqw); + } + + @Override + public void rawReturnSubmitUpdateStateById(Long warehouseId) { + apiMapper.rawReturnSubmitUpdateStateById(warehouseId); + + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java index fecc37f..80b1ced 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java @@ -133,6 +133,7 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { @Override public Boolean insertByBo(WmsReturnOrderBo bo) { WmsReturnOrder add = MapstructUtils.convert(bo, WmsReturnOrder.class); + validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml new file mode 100644 index 0000000..f25459d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml @@ -0,0 +1,11 @@ + + + + + + + update wms_outstock_record set return_flag= '1' where outstock_record_id=#{warehouseId} + + From d69ae21b1ff106e39a94245ff6421ac70dc58242 Mon Sep 17 00:00:00 2001 From: xs Date: Mon, 20 Jan 2025 19:03:06 +0800 Subject: [PATCH 42/69] =?UTF-8?q?1.1.3=20=E7=94=9F=E4=BA=A7=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E4=BF=A1=E6=81=AF=E6=A0=B9=E6=8D=AE=E8=BD=A6=E9=97=B4?= =?UTF-8?q?=E5=88=86=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/DatabaseConstants.java | 16 ++++ .../common/mapper/DynamicBaseSqlMapper.java | 13 +++ .../provider/DynamicBaseSqlProvider.java | 32 +++++++ .../dromara/mes/domain/bo/ProdPlanInfoBo.java | 2 + .../mes/mapper/ProdPlanInfoMapper.java | 13 ++- .../service/impl/ProdPlanInfoServiceImpl.java | 94 +++++++++++-------- .../mapper/mes/ProdPlanInfoMapper.xml | 2 +- 7 files changed, 129 insertions(+), 43 deletions(-) create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java create mode 100644 ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java new file mode 100644 index 0000000..c15ae45 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java @@ -0,0 +1,16 @@ +package org.dromara.common.constant; + +/** + * 数据库常量信息 + * + * @author ruoyi + */ +public interface DatabaseConstants { + + /** + * 生产计划表名前缀 + */ + String TABLE_NAME_PROD_PLAN_INFO_PREFIX = "prod_plan_info"; + + +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java new file mode 100644 index 0000000..c29f38b --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java @@ -0,0 +1,13 @@ +package org.dromara.common.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.InsertProvider; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.provider.DynamicBaseSqlProvider; + +@Mapper +public interface DynamicBaseSqlMapper extends BaseMapper { + // 自定义动态插入方法,接收表名和对象作为参数 + @InsertProvider(type = DynamicBaseSqlProvider.class, method = "dynamicInsert") + int dynamicInsert(@Param("tableName") String tableName, @Param("tableNamePrefix") String tableNamePrefix,@Param("entity") T entity); +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java new file mode 100644 index 0000000..0a35087 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java @@ -0,0 +1,32 @@ +package org.dromara.common.provider; + +import org.apache.ibatis.jdbc.SQL; +import java.util.Map; + + +public class DynamicBaseSqlProvider { + public String dynamicInsert(Map params) { + String tableName = (String) params.get("tableName"); +// Object entity = params.get("entity"); + String tableNamePrefix = (String) params.get("tableNamePrefix"); + + SQL sql = new SQL(); + sql.INSERT_INTO(tableName); + switch(tableNamePrefix){ + case "prod_plan_info": + sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_id","plan_amount","dispatch_amount"); + sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomId}", "#{entity.planAmount}", "#{entity.dispatchAmount}"); + break; + } + return sql.toString(); + } + + + public String selectByDynamicTableName(Map params) { + String tableName = (String) params.get("tableName"); + return new SQL() {{ + SELECT("*"); + FROM(tableName); + }}.toString(); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java index e2871a5..f8b8631 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java @@ -182,5 +182,7 @@ public class ProdPlanInfoBo extends BaseEntity { */ private String remark; + private Long workshopId; + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java index 555aec6..2ff30ce 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java @@ -27,7 +27,7 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus selectProdPlanInfoList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + public Page selectProdPlanInfoList(@Param("page") Page page, @Param("tableName")String tableName,@Param(Constants.WRAPPER) Wrapper queryWrapper); /** * 查询生产派工列表,Join process @@ -36,4 +36,15 @@ public interface ProdPlanInfoMapper extends BaseMapperPlus selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); + + /** + * 根据查询条件从指定表中获取生产计划列表。 + * + * @param tableName 动态表名 + * @param queryWrapper 查询条件封装对象 + * @return 用户列表 + */ + Page selectProdPlanInfoList(@Param("tableName") String tableName,@Param("page") Page page, + @Param(Constants.WRAPPER) Wrapper queryWrapper); + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index 1c8f9e0..b0b433a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -1,14 +1,18 @@ package org.dromara.mes.service.impl; +import org.dromara.common.constant.DatabaseConstants; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.uuid.Seq; +import org.dromara.common.mapper.DynamicBaseSqlMapper; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdPlanInfo2; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; @@ -32,6 +36,8 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { private final ProdPlanInfoMapper baseMapper; + private final DynamicBaseSqlMapper dynamicBaseSqlMapper; + /** * 查询生产工单信息 * @@ -39,7 +45,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { * @return 生产工单信息 */ @Override - public ProdPlanInfoVo queryById(Long planId){ + public ProdPlanInfoVo queryById(Long planId) { return baseMapper.selectVoById(planId); } @@ -53,10 +59,13 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { @Override public TableDataInfo queryPageList(ProdPlanInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectProdPlanInfoList(pageQuery.build(), lqw); + Long workshopId = bo.getWorkshopId(); + String tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + workshopId; + Page result = baseMapper.selectProdPlanInfoList(pageQuery.build(), tableName, lqw); return TableDataInfo.build(result); } + /** * 查询符合条件的生产工单信息列表 * @@ -70,40 +79,41 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { } private MPJLambdaWrapper buildQueryWrapper(ProdPlanInfoBo bo) { + System.out.println("wo;" + bo.getWorkshopId()); Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdPlanInfo.class) - .selectAll(ProdPlanInfo.class) - .eq(bo.getPlanId() != null, ProdPlanInfo::getPlanId, bo.getPlanId()) - .eq(bo.getProductOrderId() != null, ProdPlanInfo::getProductOrderId, bo.getProductOrderId()) - .eq(bo.getSaleOrderId() != null, ProdPlanInfo::getSaleOrderId, bo.getSaleOrderId()) - .eq(StringUtils.isNotBlank(bo.getSaleorderCode()), ProdPlanInfo::getSaleorderCode, bo.getSaleorderCode()) - .eq(StringUtils.isNotBlank(bo.getPlanCode()), ProdPlanInfo::getPlanCode, bo.getPlanCode()) - .eq(StringUtils.isNotBlank(bo.getDispatchCode()), ProdPlanInfo::getDispatchCode, bo.getDispatchCode()) - .eq(bo.getMaterialId() != null, ProdPlanInfo::getMaterialId, bo.getMaterialId()) - .eq(bo.getMaterialBomId() != null, ProdPlanInfo::getMaterialBomId, bo.getMaterialBomId()) - .eq(bo.getProcessId() != null, ProdPlanInfo::getProcessId, bo.getProcessId()) - .eq(bo.getProcessOrder() != null, ProdPlanInfo::getProcessOrder, bo.getProcessOrder()) - .eq(bo.getLastProcessId() != null, ProdPlanInfo::getLastProcessId, bo.getLastProcessId()) - .eq(StringUtils.isNotBlank(bo.getFinalProcessFlag()), ProdPlanInfo::getFinalProcessFlag, bo.getFinalProcessFlag()) - .eq(StringUtils.isNotBlank(bo.getReleaseType()), ProdPlanInfo::getReleaseType, bo.getReleaseType()) - .eq(bo.getReleaseId() != null, ProdPlanInfo::getReleaseId, bo.getReleaseId()) - .eq(bo.getProductionTime() != null, ProdPlanInfo::getProductionTime, bo.getProductionTime()) - .eq(bo.getPlanAmount() != null, ProdPlanInfo::getPlanAmount, bo.getPlanAmount()) - .eq(bo.getDispatchAmount() != null, ProdPlanInfo::getDispatchAmount, bo.getDispatchAmount()) - .eq(bo.getCompleteAmount() != null, ProdPlanInfo::getCompleteAmount, bo.getCompleteAmount()) - .eq(bo.getPlanBeginTime() != null, ProdPlanInfo::getPlanBeginTime, bo.getPlanBeginTime()) - .eq(bo.getPlanEndTime() != null, ProdPlanInfo::getPlanEndTime, bo.getPlanEndTime()) - .eq(bo.getRealBeginTime() != null, ProdPlanInfo::getRealBeginTime, bo.getRealBeginTime()) - .eq(bo.getRealEndTime() != null, ProdPlanInfo::getRealEndTime, bo.getRealEndTime()) - .eq(StringUtils.isNotBlank(bo.getAttachId()), ProdPlanInfo::getAttachId, bo.getAttachId()) - .eq(StringUtils.isNotBlank(bo.getPlanStatus()), ProdPlanInfo::getPlanStatus, bo.getPlanStatus()) - .eq(StringUtils.isNotBlank(bo.getImportFlag()), ProdPlanInfo::getImportFlag, bo.getImportFlag()) - .eq(StringUtils.isNotBlank(bo.getFinishFlag()), ProdPlanInfo::getFinishFlag, bo.getFinishFlag()) - .eq(bo.getPriority() != null, ProdPlanInfo::getPriority, bo.getPriority()) - .eq(bo.getShiftId() != null, ProdPlanInfo::getShiftId, bo.getShiftId()) - .eq(bo.getClassTeamId() != null, ProdPlanInfo::getClassTeamId, bo.getClassTeamId()) - .eq(StringUtils.isNotBlank(bo.getModelCode()), ProdPlanInfo::getModelCode, bo.getModelCode()) - .orderByDesc(ProdPlanInfo::getCreateTime); + .selectAll(ProdPlanInfo.class) + .eq(bo.getPlanId() != null, ProdPlanInfo::getPlanId, bo.getPlanId()) + .eq(bo.getProductOrderId() != null, ProdPlanInfo::getProductOrderId, bo.getProductOrderId()) + .eq(bo.getSaleOrderId() != null, ProdPlanInfo::getSaleOrderId, bo.getSaleOrderId()) + .eq(StringUtils.isNotBlank(bo.getSaleorderCode()), ProdPlanInfo::getSaleorderCode, bo.getSaleorderCode()) + .eq(StringUtils.isNotBlank(bo.getPlanCode()), ProdPlanInfo::getPlanCode, bo.getPlanCode()) + .eq(StringUtils.isNotBlank(bo.getDispatchCode()), ProdPlanInfo::getDispatchCode, bo.getDispatchCode()) + .eq(bo.getMaterialId() != null, ProdPlanInfo::getMaterialId, bo.getMaterialId()) + .eq(bo.getMaterialBomId() != null, ProdPlanInfo::getMaterialBomId, bo.getMaterialBomId()) + .eq(bo.getProcessId() != null, ProdPlanInfo::getProcessId, bo.getProcessId()) + .eq(bo.getProcessOrder() != null, ProdPlanInfo::getProcessOrder, bo.getProcessOrder()) + .eq(bo.getLastProcessId() != null, ProdPlanInfo::getLastProcessId, bo.getLastProcessId()) + .eq(StringUtils.isNotBlank(bo.getFinalProcessFlag()), ProdPlanInfo::getFinalProcessFlag, bo.getFinalProcessFlag()) + .eq(StringUtils.isNotBlank(bo.getReleaseType()), ProdPlanInfo::getReleaseType, bo.getReleaseType()) + .eq(bo.getReleaseId() != null, ProdPlanInfo::getReleaseId, bo.getReleaseId()) + .eq(bo.getProductionTime() != null, ProdPlanInfo::getProductionTime, bo.getProductionTime()) + .eq(bo.getPlanAmount() != null, ProdPlanInfo::getPlanAmount, bo.getPlanAmount()) + .eq(bo.getDispatchAmount() != null, ProdPlanInfo::getDispatchAmount, bo.getDispatchAmount()) + .eq(bo.getCompleteAmount() != null, ProdPlanInfo::getCompleteAmount, bo.getCompleteAmount()) + .eq(bo.getPlanBeginTime() != null, ProdPlanInfo::getPlanBeginTime, bo.getPlanBeginTime()) + .eq(bo.getPlanEndTime() != null, ProdPlanInfo::getPlanEndTime, bo.getPlanEndTime()) + .eq(bo.getRealBeginTime() != null, ProdPlanInfo::getRealBeginTime, bo.getRealBeginTime()) + .eq(bo.getRealEndTime() != null, ProdPlanInfo::getRealEndTime, bo.getRealEndTime()) + .eq(StringUtils.isNotBlank(bo.getAttachId()), ProdPlanInfo::getAttachId, bo.getAttachId()) + .eq(StringUtils.isNotBlank(bo.getPlanStatus()), ProdPlanInfo::getPlanStatus, bo.getPlanStatus()) + .eq(StringUtils.isNotBlank(bo.getImportFlag()), ProdPlanInfo::getImportFlag, bo.getImportFlag()) + .eq(StringUtils.isNotBlank(bo.getFinishFlag()), ProdPlanInfo::getFinishFlag, bo.getFinishFlag()) + .eq(bo.getPriority() != null, ProdPlanInfo::getPriority, bo.getPriority()) + .eq(bo.getShiftId() != null, ProdPlanInfo::getShiftId, bo.getShiftId()) + .eq(bo.getClassTeamId() != null, ProdPlanInfo::getClassTeamId, bo.getClassTeamId()) + .eq(StringUtils.isNotBlank(bo.getModelCode()), ProdPlanInfo::getModelCode, bo.getModelCode()) + .orderByDesc(ProdPlanInfo::getCreateTime); return lqw; } @@ -119,10 +129,12 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { bo.setPlanCode(planCode); ProdPlanInfo add = MapstructUtils.convert(bo, ProdPlanInfo.class); validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setPlanId(add.getPlanId()); - } + String tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + bo.getWorkshopId(); + boolean flag = dynamicBaseSqlMapper.dynamicInsert(tableName, DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX, add) >0; +// boolean flag = baseMapper.insert(add) > 0; +// if (flag) { +// bo.setPlanId(add.getPlanId()); +// } return flag; } @@ -142,7 +154,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(ProdPlanInfo entity){ + private void validEntityBeforeSave(ProdPlanInfo entity) { //TODO 做一些数据校验,如唯一约束 } @@ -155,7 +167,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; @@ -183,4 +195,4 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { } - } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index ee17ee7..7a4284b 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -82,7 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" * - from prod_plan_info t + from ${tableName} t left join base_material_info bmi on bmi.material_id = t.material_id left join base_material_info bomi on bomi.material_id = t.material_bom_id left join prod_base_station_info pbsi on pbsi.station_id = t.release_id From c2f57a5ac3c5568df410d12f2ddb8fb511143003 Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 21 Jan 2025 10:18:14 +0800 Subject: [PATCH 43/69] =?UTF-8?q?1.1.4=20=E7=94=9F=E4=BA=A7=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E4=BF=A1=E6=81=AF=E6=A0=B9=E6=8D=AE=E8=BD=A6=E9=97=B4?= =?UTF-8?q?=E5=88=86=E8=A1=A8=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index b0b433a..3028d1b 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -11,8 +11,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; -import org.dromara.mes.domain.ProdPlanInfo2; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; From 0df2888eac0270cd122ca317d0052e0f6baaf811 Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 21 Jan 2025 10:18:51 +0800 Subject: [PATCH 44/69] =?UTF-8?q?1.1.4=20=E7=94=9F=E4=BA=A7=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E4=BF=A1=E6=81=AF=E6=A0=B9=E6=8D=AE=E8=BD=A6=E9=97=B4?= =?UTF-8?q?=E5=88=86=E8=A1=A8=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules/hwmom-mes/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ruoyi-modules/hwmom-mes/pom.xml b/ruoyi-modules/hwmom-mes/pom.xml index 35f2c1e..a5531c6 100644 --- a/ruoyi-modules/hwmom-mes/pom.xml +++ b/ruoyi-modules/hwmom-mes/pom.xml @@ -115,6 +115,12 @@ com.microsoft.sqlserver mssql-jdbc + + org.dromara + hwmom-common-mom + 2.2.2 + compile + org.dromara From c64f215e21778a744c9ec1c32d3c89078ba5f4c3 Mon Sep 17 00:00:00 2001 From: wanghao Date: Tue, 21 Jan 2025 15:09:54 +0800 Subject: [PATCH 45/69] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E6=9E=B6=E5=AD=90?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=EF=BC=8C=E6=88=90=E5=93=81=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsPdaApiController.java | 16 ++++++++++++ .../org/dromara/wms/domain/WmsPsmInLoad.java | 1 + .../dromara/wms/domain/bo/WmsPsmInLoadBo.java | 18 ++++++------- .../wms/mapper/WmsPsmInLoadMapper.java | 2 ++ .../wms/service/IWmsPdaApiService.java | 3 +++ .../service/impl/WmsMoveOrderServiceImpl.java | 4 +-- .../service/impl/WmsPdaApiServiceImpl.java | 25 ++++++++++++------- .../resources/mapper/wms/WmsPdaApiMapper.xml | 2 ++ 8 files changed, 51 insertions(+), 20 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java index 3049898..374a58b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java @@ -5,12 +5,15 @@ import org.dromara.common.core.validate.EditGroup; import org.dromara.common.web.core.BaseController; import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; import org.dromara.wms.service.IWmsPdaApiService; import org.dromara.wms.service.IWmsReturnOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/pda") public class WmsPdaApiController extends BaseController { @@ -36,4 +39,17 @@ public class WmsPdaApiController extends BaseController { } return toAjax(result); } + + @PostMapping("/product/bindVehicleSubmit") + public R bindVehicleSubmit(@RequestParam String vehicleCode,@RequestParam List productList) { + // System.out.println(vehicleCode); + // System.out.println(productList.toString()); + + return R.ok(); + } + @PostMapping("/product/selectVehicleInfo") + public R selectVehicleInfo(String code){ + WmsPsmInLoadVo wmsPsmInLoadVo=apiService.productSelectVehicleInfo(code); + return R.ok(); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java index 242375c..bce76c2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java @@ -24,6 +24,7 @@ public class WmsPsmInLoad { /** * 表主键 */ + @TableId(value = "in_load_id", type = IdType.AUTO) private Long inLoadId; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java index 69283c6..7b2f880 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java @@ -23,55 +23,55 @@ public class WmsPsmInLoadBo extends BaseEntity { /** * 表主键 */ - @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) private Long inLoadId; /** * 装车班次 */ - @NotNull(message = "装车班次不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotNull(message = "装车班次不能为空", groups = { AddGroup.class, EditGroup.class }) private Long loadShift; /** * 装车班组 */ - @NotNull(message = "装车班组不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotNull(message = "装车班组不能为空", groups = { AddGroup.class, EditGroup.class }) private Long loadClass; /** * 工装条码 */ - @NotBlank(message = "工装条码不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotBlank(message = "工装条码不能为空", groups = { AddGroup.class, EditGroup.class }) private String toolingBarcode; /** * 仓库名称 */ - @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String storeName; /** * 库位条码 */ - @NotBlank(message = "库位条码不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotBlank(message = "库位条码不能为空", groups = { AddGroup.class, EditGroup.class }) private String storePlaceCode; /** * 物料ID */ - @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long materialId; /** * 轮胎规格 */ - @NotBlank(message = "轮胎规格不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotBlank(message = "轮胎规格不能为空", groups = { AddGroup.class, EditGroup.class }) private String materialSpe; /** * 品级编号 */ - @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + // @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) private String checkGradeCode; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java index 9cf8671..16d5fa7 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsPsmInLoad; import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import org.springframework.stereotype.Repository; /** * 装车架子信息Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.WmsPsmInLoadVo; * @author LionLi * @date 2025-01-15 */ +@Repository public interface WmsPsmInLoadMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java index 78d9dab..2d280c8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java @@ -1,9 +1,12 @@ package org.dromara.wms.service; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; public interface IWmsPdaApiService { WmsOutstockRecordVo returnSelectCode(String code); void rawReturnSubmitUpdateStateById(Long warehouseId); + + WmsPsmInLoadVo productSelectVehicleInfo(String code); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java index 1d30c9d..02cc091 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java @@ -113,7 +113,7 @@ public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { */ @Override public Boolean insertByBo(WmsMoveOrderBo bo) { - String username = LoginHelper.getUsername(); + // String username = LoginHelper.getUsername(); //查询仓库现有的物料数量 HashMap> list = wmsInventoryService.selectInventorys(bo); List planList = list.get("planList");//计划库位数据 @@ -142,7 +142,7 @@ public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { int removeRows = wmsInventoryService.deletePlanList(ids); int rows = wmsInventoryService.updateWmsInventorys(updateList); WmsMoveOrder add = MapstructUtils.convert(bo, WmsMoveOrder.class); - add.setCreateBy(username); + // add.setCreateBy(username); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java index 4f4d288..274851e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java @@ -5,13 +5,12 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.github.linpeilie.BaseMapper; import org.dromara.common.core.utils.StringUtils; -import org.dromara.wms.domain.BaseMaterialInfo; -import org.dromara.wms.domain.WmsBaseLocation; -import org.dromara.wms.domain.WmsBaseWarehouse; -import org.dromara.wms.domain.WmsOutstockRecord; +import org.dromara.wms.domain.*; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; import org.dromara.wms.mapper.WmsOutstockRecordMapper; import org.dromara.wms.mapper.WmsPdaApiMapper; +import org.dromara.wms.mapper.WmsPsmInLoadMapper; import org.dromara.wms.service.IWmsPdaApiService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,10 +18,11 @@ import org.springframework.stereotype.Service; @Service public class WmsPdaApiServiceImpl implements IWmsPdaApiService { @Autowired - private WmsOutstockRecordMapper wmsOutstockRecordMapper; -@Autowired -private WmsPdaApiMapper apiMapper; - + private WmsOutstockRecordMapper wmsOutstockRecordMapper; + @Autowired + private WmsPdaApiMapper apiMapper; + @Autowired + private WmsPsmInLoadMapper psmInLoadMapper; @Override public WmsOutstockRecordVo returnSelectCode(String code) { @@ -31,7 +31,7 @@ private WmsPdaApiMapper apiMapper; .select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialUnit, BaseMaterialInfo::getMaterialSpec) .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsOutstockRecord::getMaterialId) .select(WmsBaseLocation::getWarehouseId) - .leftJoin(WmsBaseLocation.class,WmsBaseLocation::getLocationCode, WmsOutstockRecord::getLocationCode) + .leftJoin(WmsBaseLocation.class, WmsBaseLocation::getLocationCode, WmsOutstockRecord::getLocationCode) .eq(WmsOutstockRecord::getBatchCode, code) .eq(WmsOutstockRecord::getReturnFlag, 0) .orderByDesc(WmsOutstockRecord::getCreateTime); @@ -43,4 +43,11 @@ private WmsPdaApiMapper apiMapper; apiMapper.rawReturnSubmitUpdateStateById(warehouseId); } + + @Override + public WmsPsmInLoadVo productSelectVehicleInfo(String code) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("toolingBarcode", code).eq("storePlaceCode",null); + return psmInLoadMapper.selectVoOne(queryWrapper); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml index f25459d..c2928d1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml @@ -8,4 +8,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update wms_outstock_record set return_flag= '1' where outstock_record_id=#{warehouseId} + + From 5d22a315797df30915312b020feb2a207d4cc74f Mon Sep 17 00:00:00 2001 From: yinq Date: Tue, 21 Jan 2025 16:16:59 +0800 Subject: [PATCH 46/69] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E5=BA=8F=E5=B7=A5=E8=89=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProdTechnologyInfoController.java | 117 ++++++++++++++ .../ProdTechnologyStepInfoController.java | 117 ++++++++++++++ .../mes/domain/ProdTechnologyInfo.java | 75 +++++++++ .../mes/domain/ProdTechnologyStepInfo.java | 71 +++++++++ .../mes/domain/bo/ProdTechnologyInfoBo.java | 71 +++++++++ .../domain/bo/ProdTechnologyStepInfoBo.java | 72 +++++++++ .../mes/domain/vo/ProdTechnologyInfoVo.java | 93 +++++++++++ .../domain/vo/ProdTechnologyStepInfoVo.java | 87 ++++++++++ .../mes/mapper/ProdTechnologyInfoMapper.java | 15 ++ .../mapper/ProdTechnologyStepInfoMapper.java | 15 ++ .../service/IProdTechnologyInfoService.java | 69 ++++++++ .../IProdTechnologyStepInfoService.java | 69 ++++++++ .../service/impl/ProdPlanInfoServiceImpl.java | 7 +- .../impl/ProdTechnologyInfoServiceImpl.java | 149 ++++++++++++++++++ .../ProdTechnologyStepInfoServiceImpl.java | 139 ++++++++++++++++ .../mapper/mes/ProdPlanInfoMapper.xml | 30 ++-- .../mapper/mes/ProdTechnologyInfoMapper.xml | 7 + .../mes/ProdTechnologyStepInfoMapper.xml | 7 + 18 files changed, 1191 insertions(+), 19 deletions(-) create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml create mode 100644 ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java new file mode 100644 index 0000000..af69b5e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; +import org.dromara.mes.service.IProdTechnologyInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工序工艺信息 + * 前端访问路由地址为:/mes/technologyInfo + * + * @author Yinq + * @date 2025-01-21 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/technologyInfo") +public class ProdTechnologyInfoController extends BaseController { + + private final IProdTechnologyInfoService prodTechnologyInfoService; + + /** + * 查询工序工艺信息列表 + */ + @SaCheckPermission("mes:technologyInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdTechnologyInfoBo bo, PageQuery pageQuery) { + return prodTechnologyInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出工序工艺信息列表 + */ + @SaCheckPermission("mes:technologyInfo:export") + @Log(title = "工序工艺信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdTechnologyInfoBo bo, HttpServletResponse response) { + List list = prodTechnologyInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "工序工艺信息", ProdTechnologyInfoVo.class, response); + } + + /** + * 获取工序工艺信息详细信息 + * + * @param technologyId 主键 + */ + @SaCheckPermission("mes:technologyInfo:query") + @GetMapping("/{technologyId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long technologyId) { + return R.ok(prodTechnologyInfoService.queryById(technologyId)); + } + + /** + * 新增工序工艺信息 + */ + @SaCheckPermission("mes:technologyInfo:add") + @Log(title = "工序工艺信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdTechnologyInfoBo bo) { + return toAjax(prodTechnologyInfoService.insertByBo(bo)); + } + + /** + * 修改工序工艺信息 + */ + @SaCheckPermission("mes:technologyInfo:edit") + @Log(title = "工序工艺信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdTechnologyInfoBo bo) { + return toAjax(prodTechnologyInfoService.updateByBo(bo)); + } + + /** + * 删除工序工艺信息 + * + * @param technologyIds 主键串 + */ + @SaCheckPermission("mes:technologyInfo:remove") + @Log(title = "工序工艺信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{technologyIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] technologyIds) { + return toAjax(prodTechnologyInfoService.deleteWithValidByIds(List.of(technologyIds), true)); + } + + + /** + * 下拉框查询工序工艺信息列表 + */ + + @GetMapping("getProdTechnologyInfoList") + public R> getProdTechnologyInfolist(ProdTechnologyInfoBo bo) { + List list = prodTechnologyInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java new file mode 100644 index 0000000..256469e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.mes.service.IProdTechnologyStepInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工艺步序信息 + * 前端访问路由地址为:/mes/technologyStepInfo + * + * @author Yinq + * @date 2025-01-21 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/technologyStepInfo") +public class ProdTechnologyStepInfoController extends BaseController { + + private final IProdTechnologyStepInfoService prodTechnologyStepInfoService; + + /** + * 查询工艺步序信息列表 + */ + @SaCheckPermission("mes:technologyStepInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdTechnologyStepInfoBo bo, PageQuery pageQuery) { + return prodTechnologyStepInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出工艺步序信息列表 + */ + @SaCheckPermission("mes:technologyStepInfo:export") + @Log(title = "工艺步序信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdTechnologyStepInfoBo bo, HttpServletResponse response) { + List list = prodTechnologyStepInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "工艺步序信息", ProdTechnologyStepInfoVo.class, response); + } + + /** + * 获取工艺步序信息详细信息 + * + * @param stepId 主键 + */ + @SaCheckPermission("mes:technologyStepInfo:query") + @GetMapping("/{stepId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long stepId) { + return R.ok(prodTechnologyStepInfoService.queryById(stepId)); + } + + /** + * 新增工艺步序信息 + */ + @SaCheckPermission("mes:technologyStepInfo:add") + @Log(title = "工艺步序信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdTechnologyStepInfoBo bo) { + return toAjax(prodTechnologyStepInfoService.insertByBo(bo)); + } + + /** + * 修改工艺步序信息 + */ + @SaCheckPermission("mes:technologyStepInfo:edit") + @Log(title = "工艺步序信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdTechnologyStepInfoBo bo) { + return toAjax(prodTechnologyStepInfoService.updateByBo(bo)); + } + + /** + * 删除工艺步序信息 + * + * @param stepIds 主键串 + */ + @SaCheckPermission("mes:technologyStepInfo:remove") + @Log(title = "工艺步序信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{stepIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] stepIds) { + return toAjax(prodTechnologyStepInfoService.deleteWithValidByIds(List.of(stepIds), true)); + } + + + /** + * 下拉框查询工艺步序信息列表 + */ + + @GetMapping("getProdTechnologyStepInfoList") + public R> getProdTechnologyStepInfolist(ProdTechnologyStepInfoBo bo) { + List list = prodTechnologyStepInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java new file mode 100644 index 0000000..7f05d3d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java @@ -0,0 +1,75 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 工序工艺信息对象 prod_technology_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_technology_info") +public class ProdTechnologyInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "technology_id", type = IdType.AUTO) + private Long technologyId; + + /** + * 工序ID + */ + private Long processId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 机台类型(1类一 2类二) + */ + private String machineType; + + /** + * 工艺类型(1量产 2限产) + */ + private String technologyType; + + /** + * 工艺版本 + */ + private String technologyVersion; + + /** + * 硫化标准时间(秒) + */ + private Long standardTime; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + @TableField(exist = false) + private String processName; + + @TableField(exist = false) + private String materialName; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java new file mode 100644 index 0000000..7dc5903 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java @@ -0,0 +1,71 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 工艺步序信息对象 prod_technology_step_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_technology_step_info") +public class ProdTechnologyStepInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "step_id", type = IdType.AUTO) + private Long stepId; + + /** + * 工艺ID + */ + private Long technologyId; + + /** + * 步序编号 + */ + private Long stepCode; + + /** + * 步序名称 + */ + private String stepName; + + /** + * 步序时间(秒) + */ + private Long stepTime; + + /** + * 步序参数 + */ + private String stepParameter; + + /** + * 阀门状态 + */ + private String valueState; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java new file mode 100644 index 0000000..415897a --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java @@ -0,0 +1,71 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 工序工艺信息业务对象 prod_technology_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdTechnologyInfo.class, reverseConvertGenerate = false) +public class ProdTechnologyInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long technologyId; + + /** + * 工序ID + */ + @NotNull(message = "工序ID不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long processId; + + /** + * 物料ID + */ + @NotNull(message = "物料ID不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long materialId; + + /** + * 机台类型(1类一 2类二) + */ + private String machineType; + + /** + * 工艺类型(1量产 2限产) + */ + private String technologyType; + + /** + * 工艺版本 + */ + private String technologyVersion; + + /** + * 硫化标准时间(秒) + */ + private Long standardTime; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java new file mode 100644 index 0000000..3a23f93 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java @@ -0,0 +1,72 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 工艺步序信息业务对象 prod_technology_step_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdTechnologyStepInfo.class, reverseConvertGenerate = false) +public class ProdTechnologyStepInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long stepId; + + /** + * 工艺ID + */ + @NotNull(message = "工艺ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long technologyId; + + /** + * 步序编号 + */ + @NotNull(message = "步序编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long stepCode; + + /** + * 步序名称 + */ + @NotBlank(message = "步序名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String stepName; + + /** + * 步序时间(秒) + */ + private Long stepTime; + + /** + * 步序参数 + */ + private String stepParameter; + + /** + * 阀门状态 + */ + private String valueState; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java new file mode 100644 index 0000000..34cd4f3 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java @@ -0,0 +1,93 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工序工艺信息视图对象 prod_technology_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdTechnologyInfo.class) +public class ProdTechnologyInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long technologyId; + + /** + * 工序ID + */ + @ExcelProperty(value = "工序ID") + private Long processId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 机台类型(1类一 2类二) + */ + @ExcelProperty(value = "机台类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "mes_machine_type") + private String machineType; + + /** + * 工艺类型(1量产 2限产) + */ + @ExcelProperty(value = "工艺类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "mes_technology_type") + private String technologyType; + + /** + * 工艺版本 + */ + @ExcelProperty(value = "工艺版本") + private String technologyVersion; + + /** + * 硫化标准时间(秒) + */ + @ExcelProperty(value = "硫化标准时间", converter = ExcelDictConvert.class) + private Long standardTime; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + @ExcelProperty(value = "工序名称") + private String processName; + + @ExcelProperty(value = "物料名称") + private String materialName; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java new file mode 100644 index 0000000..ed0fd36 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java @@ -0,0 +1,87 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工艺步序信息视图对象 prod_technology_step_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdTechnologyStepInfo.class) +public class ProdTechnologyStepInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long stepId; + + /** + * 工艺ID + */ + @ExcelProperty(value = "工艺ID") + private Long technologyId; + + /** + * 步序编号 + */ + @ExcelProperty(value = "步序编号") + private Long stepCode; + + /** + * 步序名称 + */ + @ExcelProperty(value = "步序名称") + private String stepName; + + /** + * 步序时间(秒) + */ + @ExcelProperty(value = "步序时间", converter = ExcelDictConvert.class) + private Long stepTime; + + /** + * 步序参数 + */ + @ExcelProperty(value = "步序参数") + private String stepParameter; + + /** + * 阀门状态 + */ + @ExcelProperty(value = "阀门状态") + private String valueState; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java new file mode 100644 index 0000000..934732d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工序工艺信息Mapper接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface ProdTechnologyInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java new file mode 100644 index 0000000..b2d9f0b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工艺步序信息Mapper接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface ProdTechnologyStepInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java new file mode 100644 index 0000000..310ae09 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工序工艺信息Service接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface IProdTechnologyInfoService { + + /** + * 查询工序工艺信息 + * + * @param technologyId 主键 + * @return 工序工艺信息 + */ + ProdTechnologyInfoVo queryById(Long technologyId); + + /** + * 分页查询工序工艺信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序工艺信息分页列表 + */ + TableDataInfo queryPageList(ProdTechnologyInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工序工艺信息列表 + * + * @param bo 查询条件 + * @return 工序工艺信息列表 + */ + List queryList(ProdTechnologyInfoBo bo); + + /** + * 新增工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdTechnologyInfoBo bo); + + /** + * 修改工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdTechnologyInfoBo bo); + + /** + * 校验并批量删除工序工艺信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java new file mode 100644 index 0000000..ed14a61 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工艺步序信息Service接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface IProdTechnologyStepInfoService { + + /** + * 查询工艺步序信息 + * + * @param stepId 主键 + * @return 工艺步序信息 + */ + ProdTechnologyStepInfoVo queryById(Long stepId); + + /** + * 分页查询工艺步序信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工艺步序信息分页列表 + */ + TableDataInfo queryPageList(ProdTechnologyStepInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工艺步序信息列表 + * + * @param bo 查询条件 + * @return 工艺步序信息列表 + */ + List queryList(ProdTechnologyStepInfoBo bo); + + /** + * 新增工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdTechnologyStepInfoBo bo); + + /** + * 修改工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdTechnologyStepInfoBo bo); + + /** + * 校验并批量删除工艺步序信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index 3028d1b..e2491ea 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -58,7 +58,12 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { public TableDataInfo queryPageList(ProdPlanInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); Long workshopId = bo.getWorkshopId(); - String tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + workshopId; + String tableName = null; + if (StringUtils.isNull(workshopId)){ + tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX; + } else { + tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + workshopId; + } Page result = baseMapper.selectProdPlanInfoList(pageQuery.build(), tableName, lqw); return TableDataInfo.build(result); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java new file mode 100644 index 0000000..85c9ae5 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java @@ -0,0 +1,149 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.BaseMaterialInfo; +import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.mes.mapper.ProdTechnologyInfoMapper; +import org.dromara.mes.service.IProdTechnologyInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工序工艺信息Service业务层处理 + * + * @author Yinq + * @date 2025-01-21 + */ +@RequiredArgsConstructor +@Service +public class ProdTechnologyInfoServiceImpl implements IProdTechnologyInfoService { + + private final ProdTechnologyInfoMapper baseMapper; + + /** + * 查询工序工艺信息 + * + * @param technologyId 主键 + * @return 工序工艺信息 + */ + @Override + public ProdTechnologyInfoVo queryById(Long technologyId) { + ProdTechnologyInfoBo bo = new ProdTechnologyInfoBo(); + bo.setTechnologyId(technologyId); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + List voList = baseMapper.selectVoList(lqw); + return voList.get(0); + } + + /** + * 分页查询工序工艺信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序工艺信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdTechnologyInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工序工艺信息列表 + * + * @param bo 查询条件 + * @return 工序工艺信息列表 + */ + @Override + public List queryList(ProdTechnologyInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdTechnologyInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdTechnologyInfo.class) + .selectAll(ProdTechnologyInfo.class) + .select(ProdBaseProcessInfo::getProcessName) + .select(BaseMaterialInfo::getMaterialName) + .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdTechnologyInfo::getProcessId) + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, ProdTechnologyInfo::getMaterialId) + .eq(bo.getTechnologyId() != null, ProdTechnologyInfo::getTechnologyId, bo.getTechnologyId()) + .eq(bo.getProcessId() != null, ProdTechnologyInfo::getProcessId, bo.getProcessId()) + .eq(bo.getMaterialId() != null, ProdTechnologyInfo::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMachineType()), ProdTechnologyInfo::getMachineType, bo.getMachineType()) + .eq(StringUtils.isNotBlank(bo.getTechnologyType()), ProdTechnologyInfo::getTechnologyType, bo.getTechnologyType()) + .eq(StringUtils.isNotBlank(bo.getTechnologyVersion()), ProdTechnologyInfo::getTechnologyVersion, bo.getTechnologyVersion()) + .eq(bo.getStandardTime() != null, ProdTechnologyInfo::getStandardTime, bo.getStandardTime()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdTechnologyInfo::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(ProdTechnologyInfo::getCreateTime); + return lqw; + } + + /** + * 新增工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdTechnologyInfoBo bo) { + ProdTechnologyInfo add = MapstructUtils.convert(bo, ProdTechnologyInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setTechnologyId(add.getTechnologyId()); + } + return flag; + } + + /** + * 修改工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdTechnologyInfoBo bo) { + ProdTechnologyInfo update = MapstructUtils.convert(bo, ProdTechnologyInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdTechnologyInfo entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工序工艺信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java new file mode 100644 index 0000000..e9a22f7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.mapper.ProdTechnologyStepInfoMapper; +import org.dromara.mes.service.IProdTechnologyStepInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工艺步序信息Service业务层处理 + * + * @author Yinq + * @date 2025-01-21 + */ +@RequiredArgsConstructor +@Service +public class ProdTechnologyStepInfoServiceImpl implements IProdTechnologyStepInfoService { + + private final ProdTechnologyStepInfoMapper baseMapper; + + /** + * 查询工艺步序信息 + * + * @param stepId 主键 + * @return 工艺步序信息 + */ + @Override + public ProdTechnologyStepInfoVo queryById(Long stepId){ + return baseMapper.selectVoById(stepId); + } + + /** + * 分页查询工艺步序信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工艺步序信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdTechnologyStepInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工艺步序信息列表 + * + * @param bo 查询条件 + * @return 工艺步序信息列表 + */ + @Override + public List queryList(ProdTechnologyStepInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdTechnologyStepInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdTechnologyStepInfo.class) + .selectAll(ProdTechnologyStepInfo.class) + .eq(bo.getStepId() != null, ProdTechnologyStepInfo::getStepId, bo.getStepId()) + .eq(bo.getTechnologyId() != null, ProdTechnologyStepInfo::getTechnologyId, bo.getTechnologyId()) + .eq(bo.getStepCode() != null, ProdTechnologyStepInfo::getStepCode, bo.getStepCode()) + .like(StringUtils.isNotBlank(bo.getStepName()), ProdTechnologyStepInfo::getStepName, bo.getStepName()) + .eq(bo.getStepTime() != null, ProdTechnologyStepInfo::getStepTime, bo.getStepTime()) + .eq(StringUtils.isNotBlank(bo.getStepParameter()), ProdTechnologyStepInfo::getStepParameter, bo.getStepParameter()) + .eq(StringUtils.isNotBlank(bo.getValueState()), ProdTechnologyStepInfo::getValueState, bo.getValueState()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdTechnologyStepInfo::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(ProdTechnologyStepInfo::getCreateTime); + return lqw; + } + + /** + * 新增工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdTechnologyStepInfoBo bo) { + ProdTechnologyStepInfo add = MapstructUtils.convert(bo, ProdTechnologyStepInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStepId(add.getStepId()); + } + return flag; + } + + /** + * 修改工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdTechnologyStepInfoBo bo) { + ProdTechnologyStepInfo update = MapstructUtils.convert(bo, ProdTechnologyStepInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdTechnologyStepInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工艺步序信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index 7a4284b..6ff9373 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -93,7 +93,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml new file mode 100644 index 0000000..16571bb --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml new file mode 100644 index 0000000..6f25a56 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + From d0775eb8478f501dd0385976b208a9dc6001ab9a Mon Sep 17 00:00:00 2001 From: zch Date: Wed, 5 Feb 2025 09:21:18 +0800 Subject: [PATCH 47/69] =?UTF-8?q?=E5=AB=A6=E5=A8=A5(generate):=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E6=8E=A5=E5=8F=A3=E6=96=B9=E6=B3=95=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 get${ClassName}list 修改为 get${ClassName}List,统一接口方法命名规范(驼峰) --- .../ruoyi-gen/src/main/resources/vm/java/controller.java.vm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm index 0dbb6b5..90cb49a 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm @@ -120,7 +120,7 @@ public class ${ClassName}Controller extends BaseController { */ #* @SaCheckPermission("${permissionPrefix}:list")*# @GetMapping("get${ClassName}List") - public R> get${ClassName}list(${ClassName}Bo bo) { + public R> get${ClassName}List(${ClassName}Bo bo) { List<${ClassName}Vo> list = ${className}Service.queryList(bo); return R.ok(list); } From a1ae9be45ee1d1cb619ae640d59484022cd47a2c Mon Sep 17 00:00:00 2001 From: zch Date: Wed, 5 Feb 2025 10:34:33 +0800 Subject: [PATCH 48/69] =?UTF-8?q?change(gen):=20=E4=B8=BA=20get${ClassName?= =?UTF-8?q?}List=20=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0=E6=96=9C=E6=9D=A0?= =?UTF-8?q?=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi-gen/src/main/resources/vm/java/controller.java.vm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm index 90cb49a..9e3e050 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm @@ -119,7 +119,7 @@ public class ${ClassName}Controller extends BaseController { * 下拉框查询${functionName}列表 */ #* @SaCheckPermission("${permissionPrefix}:list")*# - @GetMapping("get${ClassName}List") + @GetMapping("/get${ClassName}List") public R> get${ClassName}List(${ClassName}Bo bo) { List<${ClassName}Vo> list = ${className}Service.queryList(bo); return R.ok(list); From a4a0afee86927b2fa28c6e6173211d12b9bac818 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Wed, 5 Feb 2025 15:55:21 +0800 Subject: [PATCH 49/69] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=BB=E5=AD=90=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsPurchaseOrderController.java | 4 +- .../dromara/wms/domain/BaseSupplierInfo.java | 90 ++++++++++++++ .../org/dromara/wms/domain/WmsInventory.java | 2 +- .../dromara/wms/domain/WmsPurchaseOrder.java | 33 ++++- .../wms/domain/WmsPurchaseOrderDetail.java | 7 +- .../dromara/wms/domain/bo/WmsInventoryBo.java | 1 + .../domain/bo/WmsPurchaseOrderDetailBo.java | 8 +- .../wms/domain/vo/BaseSupplierInfoVo.java | 116 ++++++++++++++++++ .../domain/vo/WmsPurchaseOrderDetailVo.java | 7 +- .../wms/domain/vo/WmsPurchaseOrderVo.java | 4 + .../wms/mapper/BaseSupplierInfoMapper.java | 15 +++ .../WmsInventoryCheckRecordServiceImpl.java | 4 +- .../service/impl/WmsMoveOrderServiceImpl.java | 4 +- .../impl/WmsPurchaseOrderServiceImpl.java | 42 +++++++ .../mapper/wms/WmsInventoryMapper.xml | 16 ++- 15 files changed, 330 insertions(+), 23 deletions(-) create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java create mode 100644 ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java index c1529b6..7c0da25 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java @@ -77,7 +77,7 @@ public class WmsPurchaseOrderController extends BaseController { @Log(title = "采购订单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsPurchaseOrderBo bo) { + public R add(@RequestBody WmsPurchaseOrderBo bo) { return R.ok(wmsPurchaseOrderService.insertByBo(bo)); } @@ -88,7 +88,7 @@ public class WmsPurchaseOrderController extends BaseController { @Log(title = "采购订单", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsPurchaseOrderBo bo) { + public R edit(@RequestBody WmsPurchaseOrderBo bo) { return toAjax(wmsPurchaseOrderService.updateByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java new file mode 100644 index 0000000..c6074ca --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java @@ -0,0 +1,90 @@ +package org.dromara.wms.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 供应商信息对象 base_supplier_info + * + * @author ZangCH + * @date 2025-01-07 + */ +@Data +@TableName("base_supplier_info") +public class BaseSupplierInfo { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "supplier_id", type = IdType.AUTO) + private Long supplierId; + + /** + * 供应商编号 + */ + private String supplierCode; + + /** + * 供应商名称 + */ + private String supplierName; + + /** + * erp的主键 + */ + private Long erpId; + + /** + * 激活状态(1启用 0停用) + */ + private String supplierStatus; + + /** + * 审核日期 + */ + private Date auditDate; + + /** + * erp最后更新时间 + */ + private Date erpModifyDate; + + /** + * 备注 + */ + private String remark; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java index c582aa9..74ac0e8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java @@ -93,7 +93,7 @@ public class WmsInventory{ private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 - @TableField(exist = false) +// @TableField(exist = false) private String materialCode;//字段映射 private String warehouseId; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java index a308aa1..957fc86 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java @@ -16,9 +16,8 @@ import java.io.Serial; * @date 2025-01-08 */ @Data -@EqualsAndHashCode(callSuper = true) @TableName("wms_purchase_order") -public class WmsPurchaseOrder extends TenantEntity { +public class WmsPurchaseOrder { @Serial private static final long serialVersionUID = 1L; @@ -88,6 +87,36 @@ public class WmsPurchaseOrder extends TenantEntity { * 审核意见 */ private String auditComments; + /** + * 供应商编号 + */ + @TableField(exist = false) + private String supplierCode; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java index 86d73a4..d8b9b4a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.math.BigDecimal; /** * 采购订单-物料对象 wms_purchase_order_detail @@ -45,12 +46,12 @@ public class WmsPurchaseOrderDetail extends TenantEntity { /** * 含税单价 */ - private Long taxPrice; + private BigDecimal taxPrice; /** * 采购数量 */ - private Long purchaseQty; + private BigDecimal purchaseQty; /** * 物料规格 @@ -65,7 +66,7 @@ public class WmsPurchaseOrderDetail extends TenantEntity { /** * 送货数量=送货单数量=总入库数量 */ - private Long deliveryQty; + private BigDecimal deliveryQty; private Long materialId; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java index f71fb54..d1fd96c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java @@ -77,5 +77,6 @@ public class WmsInventoryBo extends BaseEntity { private Long storeId; private String tenantId; private String warehouseId; + private String materialCode;//字段映射 } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java index 25eecce..e7edf92 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java @@ -9,6 +9,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import java.math.BigDecimal; + /** * 采购订单-物料业务对象 wms_purchase_order_detail * @@ -46,12 +48,12 @@ public class WmsPurchaseOrderDetailBo extends BaseEntity { /** * 含税单价 */ - private Long taxPrice; + private BigDecimal taxPrice; /** * 采购数量 */ - private Long purchaseQty; + private BigDecimal purchaseQty; /** * 物料规格 @@ -66,7 +68,7 @@ public class WmsPurchaseOrderDetailBo extends BaseEntity { /** * 送货数量=送货单数量=总入库数量 */ - private Long deliveryQty; + private BigDecimal deliveryQty; private Long materialId; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java new file mode 100644 index 0000000..151f1f0 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java @@ -0,0 +1,116 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.wms.domain.BaseSupplierInfo; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 供应商信息视图对象 base_supplier_info + * + * @author ZangCH + * @date 2025-01-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseSupplierInfo.class) +public class BaseSupplierInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long supplierId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 供应商编号 + */ + @ExcelProperty(value = "供应商编号") + private String supplierCode; + + /** + * 供应商名称 + */ + @ExcelProperty(value = "供应商名称") + private String supplierName; + + /** + * erp的主键 + */ + @ExcelProperty(value = "erp的主键") + private Long erpId; + + /** + * 激活状态(1启用 0停用) + */ + @ExcelProperty(value = "激活状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String supplierStatus; + + /** + * 审核日期 + */ + @ExcelProperty(value = "审核日期") + private Date auditDate; + + /** + * erp最后更新时间 + */ + @ExcelProperty(value = "erp最后更新时间") + private Date erpModifyDate; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java index 16a74e9..5df4635 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java @@ -10,6 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @@ -62,13 +63,13 @@ public class WmsPurchaseOrderDetailVo implements Serializable { * 含税单价 */ @ExcelProperty(value = "含税单价") - private Long taxPrice; + private BigDecimal taxPrice; /** * 采购数量 */ @ExcelProperty(value = "采购数量") - private Long purchaseQty; + private BigDecimal purchaseQty; /** * 物料规格 @@ -86,7 +87,7 @@ public class WmsPurchaseOrderDetailVo implements Serializable { * 送货数量=送货单数量=总入库数量 */ @ExcelProperty(value = "送货数量=送货单数量=总入库数量") - private Long deliveryQty; + private BigDecimal deliveryQty; /** * 租户号 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java index 109f8d3..89a042b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java @@ -141,6 +141,10 @@ public class WmsPurchaseOrderVo implements Serializable { */ @ExcelProperty(value = "审核意见") private String auditComments; + /** + * 供应商编号 + */ + private String supplierCode; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java new file mode 100644 index 0000000..28b074d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.BaseSupplierInfo; +import org.dromara.wms.domain.vo.BaseSupplierInfoVo; + +/** + * 供应商信息Mapper接口 + * + * @author ZangCH + * @date 2025-01-07 + */ +public interface BaseSupplierInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java index 8e884c7..80c6c9b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java @@ -79,8 +79,8 @@ public class WmsInventoryCheckRecordServiceImpl implements IWmsInventoryCheckRec .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheckRecord::getCheckCode, bo.getCheckCode()) .eq(StringUtils.isNotBlank(bo.getBatchCode()), WmsInventoryCheckRecord::getBatchCode, bo.getBatchCode()) .eq(bo.getMaterialId() != null, WmsInventoryCheckRecord::getMaterialId, bo.getMaterialId()) - .eq(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryCheckRecord::getLocationCode, bo.getLocationCode()) - .eq(StringUtils.isNotBlank(bo.getMaterialCode()), WmsInventoryCheckRecord::getMaterialCode, bo.getMaterialCode()) + .like(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryCheckRecord::getLocationCode, bo.getLocationCode()) + .like(StringUtils.isNotBlank(bo.getMaterialCode()), WmsInventoryCheckRecord::getMaterialCode, bo.getMaterialCode()) .like(StringUtils.isNotBlank(bo.getMaterialName()), WmsInventoryCheckRecord::getMaterialName, bo.getMaterialName()) .eq(StringUtils.isNotBlank(bo.getInventoryQty()), WmsInventoryCheckRecord::getInventoryQty, bo.getInventoryQty()) .eq(bo.getCheckQty() != null, WmsInventoryCheckRecord::getCheckQty, bo.getCheckQty()) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java index 02cc091..dc681a8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java @@ -92,9 +92,9 @@ public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { .eq(bo.getMaterialId() != null, WmsMoveOrder::getMaterialId, bo.getMaterialId()) .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsMoveOrder::getMaterialCategories, bo.getMaterialCategories()) .eq(bo.getWarehouseId() != null, WmsMoveOrder::getWarehouseId, bo.getWarehouseId()) - .eq(bo.getPlanLocationCode() != null, WmsMoveOrder::getPlanLocationCode, bo.getPlanLocationCode()) + .like(bo.getPlanLocationCode() != null, WmsMoveOrder::getPlanLocationCode, bo.getPlanLocationCode()) .eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsMoveOrder::getOrderStatus, bo.getOrderStatus()) - .eq(bo.getTargetLocationCode() != null, WmsMoveOrder::getTargetLocationCode, bo.getTargetLocationCode()) + .like(bo.getTargetLocationCode() != null, WmsMoveOrder::getTargetLocationCode, bo.getTargetLocationCode()) .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsMoveOrder::getAuditBy, bo.getAuditBy()) .eq(bo.getAuditTime() != null, WmsMoveOrder::getAuditTime, bo.getAuditTime()) .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsMoveOrder::getAuditStatus, bo.getAuditStatus()) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java index bb1ccf8..909fb30 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.wms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,6 +10,11 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseSupplierInfo; +import org.dromara.wms.domain.WmsInstockOrder; +import org.dromara.wms.domain.vo.WmsInstockOrderVo; +import org.dromara.wms.mapper.WmsInstockOrderMapper; import org.springframework.stereotype.Service; import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; @@ -16,9 +22,12 @@ import org.dromara.wms.domain.WmsPurchaseOrder; import org.dromara.wms.mapper.WmsPurchaseOrderMapper; import org.dromara.wms.service.IWmsPurchaseOrderService; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; /** * 采购订单Service业务层处理 @@ -31,6 +40,10 @@ import java.util.Collection; public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { private final WmsPurchaseOrderMapper baseMapper; + private static final AtomicInteger sequence = new AtomicInteger(0); + public static Integer nextSequence() { + return sequence.incrementAndGet(); + } /** * 查询采购订单 @@ -73,6 +86,8 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPurchaseOrder.class) .selectAll(WmsPurchaseOrder.class) + .select(BaseSupplierInfo::getSupplierCode) + .leftJoin(BaseSupplierInfo.class,BaseSupplierInfo::getSupplierId,WmsPurchaseOrder::getSupplierId) .eq(StringUtils.isNotBlank(bo.getPoNo()), WmsPurchaseOrder::getPoNo, bo.getPoNo()) .eq(StringUtils.isNotBlank(bo.getPoStatus()), WmsPurchaseOrder::getPoStatus, bo.getPoStatus()) .eq(StringUtils.isNotBlank(bo.getPlanDeliveryDate()), WmsPurchaseOrder::getPlanDeliveryDate, bo.getPlanDeliveryDate()) @@ -96,14 +111,39 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { */ @Override public WmsPurchaseOrder insertByBo(WmsPurchaseOrderBo bo) { + String username = LoginHelper.getUsername(); + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date); + String order = "PUR"; + String orderLast=""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String purOrder = order + orderDate + orderLast; WmsPurchaseOrder add = MapstructUtils.convert(bo, WmsPurchaseOrder.class); validEntityBeforeSave(add); + add.setPoNo(purOrder); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setPoId(add.getPoId()); } return add; } + public String generateOrder(Integer value){ + if (value.toString().length()<3){ + String fixedLengthString = String.format("%03d", value); + return fixedLengthString; + }else if (value.toString().length()==3){ + return value.toString(); + } + return value.toString(); + } /** * 修改采购订单 @@ -114,6 +154,8 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { @Override public Boolean updateByBo(WmsPurchaseOrderBo bo) { WmsPurchaseOrder update = MapstructUtils.convert(bo, WmsPurchaseOrder.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml index 6ac278d..d205247 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" MAX(b.min_stock_amount) min_stock_amount, MAX(b.max_stock_amount) max_stock_amount, MAX(c.warehouse_code) warehouse_code, - MAX(d.material_code) material_code, + MAX(b.material_code) material_code, MAX(x.lock_state) lock_state, MAX(x.inventory_status) inventory_status, MAX(x.material_categories) material_categories, @@ -34,12 +34,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" x.material_id = b.material_id left join wms_base_warehouse c on x.warehouse_id = c.warehouse_id - left join base_material_info d - on - x.material_id = d.material_id +-- left join base_material_info d +-- on +-- x.material_id = d.material_id - and x.material_id = #{entity.materialId} + and x.warehouse_id = #{entity.warehouseId} + and x.lock_state = #{entity.lockState} + and x.material_categories = #{entity.materialCategories} + and x.inventory_status = #{entity.inventoryStatus} + and x.location_code like concat('%',#{entity.locationCode},'%') + and x.batch_code like concat('%',#{entity.batchCode},'%') + and x.material_code like concat('%',#{entity.materialCode},'%') group by x.warehouse_id , From bffd1aefa4c5acca2678984e0f775d2ae981b1e3 Mon Sep 17 00:00:00 2001 From: zch Date: Thu, 6 Feb 2025 11:05:52 +0800 Subject: [PATCH 50/69] =?UTF-8?q?change(hwmom-mes):=E5=9C=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=AD=89=E5=90=8C=E7=89=A9=E6=96=99=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=89=A9=E6=96=99=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E7=9A=84=E5=85=B3=E8=81=94=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 通过物料 ID 获取对应的物料名称,并将其设置到等同物料信息对象中 --- .../impl/BaseEqualMaterialInfoServiceImpl.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java index 8df3baa..4752ab2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.mes.domain.BaseMaterialInfo; +import org.dromara.mes.mapper.BaseMaterialInfoMapper; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.BaseEqualMaterialInfoBo; import org.dromara.mes.domain.vo.BaseEqualMaterialInfoVo; @@ -21,6 +22,8 @@ import java.util.List; import java.util.Map; import java.util.Collection; +import org.springframework.util.ObjectUtils; + /** * 等同物料信息Service业务层处理 * @@ -32,6 +35,7 @@ import java.util.Collection; public class BaseEqualMaterialInfoServiceImpl implements IBaseEqualMaterialInfoService { private final BaseEqualMaterialInfoMapper baseMapper; + private final BaseMaterialInfoMapper baseMaterialInfoMapper; /** * 查询等同物料信息 @@ -41,7 +45,16 @@ public class BaseEqualMaterialInfoServiceImpl implements IBaseEqualMaterialInfoS */ @Override public BaseEqualMaterialInfoVo queryById(Long equalMaterialInfoId){ - return baseMapper.selectVoById(equalMaterialInfoId); + BaseEqualMaterialInfoVo baseEqualMaterialInfoVo = baseMapper.selectVoById(equalMaterialInfoId); + if (!ObjectUtils.isEmpty(baseEqualMaterialInfoVo)) { + // 关联物料名称 + BaseMaterialInfo baseMaterialInfo = baseMaterialInfoMapper.selectOne(Wrappers.lambdaQuery(BaseMaterialInfo.class) + .eq(BaseMaterialInfo::getMaterialId, baseEqualMaterialInfoVo.getMaterialId())); + if (!ObjectUtils.isEmpty(baseMaterialInfo)) { + baseEqualMaterialInfoVo.setMaterialName(baseMaterialInfo.getMaterialName()); + } + } + return baseEqualMaterialInfoVo; } /** From 32f318be939bde33886394998ea6d280a7a02089 Mon Sep 17 00:00:00 2001 From: zch Date: Thu, 6 Feb 2025 16:51:59 +0800 Subject: [PATCH 51/69] =?UTF-8?q?add(mes):=20=E6=B7=BB=E5=8A=A0=E7=89=A9?= =?UTF-8?q?=E6=96=99BOM=E4=BF=A1=E6=81=AF=E6=89=B9=E9=87=8F=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=9F=E8=83=BD(=E6=96=B0=E5=A2=9EBOM=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E6=A1=86=EF=BC=9A=E6=A0=B9=E6=8D=AE=E7=BB=93=E6=9E=84?= =?UTF-8?q?BOM=E6=89=B9=E9=87=8F=E6=96=B0=E5=A2=9E=E7=89=A9=E6=96=99BOM)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IProdMaterialBomService 接口中新增 insertBatchByBoList 方法 - 在 ProdMaterialBomController 中添加 addBatchMaterialBom 控制器方法 - 在 ProdMaterialBomServiceImpl 中实现 insertBatchByBoList 方法的逻辑 - 按层级分组处理,确保父节点先于子节点插入 - 增加了异常处理和数据完整性校验 --- .../controller/ProdMaterialBomController.java | 13 ++- .../mes/service/IProdMaterialBomService.java | 8 ++ .../impl/ProdMaterialBomServiceImpl.java | 104 ++++++++++++++++++ 3 files changed, 124 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java index 5bed053..f39abd8 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java @@ -107,9 +107,20 @@ public class ProdMaterialBomController extends BaseController { /** * 下拉框查询物料BOM信息列表 */ - @GetMapping("getProdMaterialBomList") + @GetMapping("/getProdMaterialBomList") public R> getProdMaterialBomlist(ProdMaterialBomBo bo) { List list = prodMaterialBomService.queryList(bo); return R.ok(list); } + + /** + * 新增物料BOM信息 + */ + @SaCheckPermission("mes:materialBom:add") + @Log(title = "物料BOM信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/addBatchMaterialBom") + public R addBatchMaterialBom(@RequestBody List boList) { + return toAjax(prodMaterialBomService.insertBatchByBoList(boList)); + } } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java index 206eab7..40e261e 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java @@ -56,4 +56,12 @@ public interface IProdMaterialBomService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 批量新增物料BOM信息 + * + * @param boList 物料BOM信息列表 + * @return 是否新增成功 + */ + Boolean insertBatchByBoList(List boList); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java index bb32d5d..24e72f4 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java @@ -15,6 +15,14 @@ import org.dromara.mes.service.IProdMaterialBomService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.HashMap; + +import org.springframework.transaction.annotation.Transactional; +import cn.hutool.core.collection.CollUtil; +import org.dromara.common.core.exception.ServiceException; + /** * 物料BOM信息Service业务层处理 @@ -154,4 +162,100 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { } } + + + /** + * 批量插入物料清单BOM。 + * @param boList 需要插入的物料清单BOM列表。 + * @return 如果所有节点都成功插入,返回true;否则抛出异常。 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertBatchByBoList(List boList) { + if (CollUtil.isEmpty(boList)) { + return false; + } + + try { + // 按层级分组(根据parentId分组) + Map> levelMap = new HashMap<>(); + + // 1. 首先找出所有顶级节点 + List topNodes = boList.stream() + .filter(bo -> bo.getParentId() == null || bo.getParentId() == 0) + .collect(Collectors.toList()); + + // 2. 其他节点按parentId分组 + Map> childrenMap = boList.stream() + .filter(bo -> bo.getParentId() != null && bo.getParentId() != 0) + .collect(Collectors.groupingBy(bo -> Math.abs(bo.getParentId()))); + + // 存储临时ID到实际ID的映射 + Map idMapping = new HashMap<>(); + + // 3. 先处理顶级节点 + for (ProdMaterialBomBo topNode : topNodes) { + Long tempId = Math.abs(topNode.getMaterialBomId()); + topNode.setMaterialBomId(null); // 清除临时ID + topNode.setParentId(0L); // 确保顶级节点parentId为0 + topNode.setAncestors("0"); // 顶级节点的ancestors为"0" + + // 插入顶级节点 + ProdMaterialBom add = MapstructUtils.convert(topNode, ProdMaterialBom.class); + if (baseMapper.insert(add) <= 0) { + throw new ServiceException("插入顶级节点失败"); + } + + // 记录映射关系 + idMapping.put(tempId, add.getMaterialBomId()); + } + + // 4. 处理子节点,直到所有节点都处理完 + while (!childrenMap.isEmpty()) { + // 找出当前可以处理的节点(父节点已经在idMapping中的节点) + List processableParentIds = new ArrayList<>(childrenMap.keySet()); + boolean processed = false; + + for (Long parentTempId : processableParentIds) { + // 检查父节点是否已处理 + if (idMapping.containsKey(parentTempId)) { + List children = childrenMap.remove(parentTempId); + + // 处理同一父节点的所有子节点 + for (ProdMaterialBomBo child : children) { + Long childTempId = Math.abs(child.getMaterialBomId()); + child.setMaterialBomId(null); // 清除临时ID + + // 设置实际的父节点ID + Long actualParentId = idMapping.get(parentTempId); + child.setParentId(actualParentId); + + // 设置祖级列表 + ProdMaterialBom parent = baseMapper.selectById(actualParentId); + child.setAncestors(parent.getAncestors() + "," + actualParentId); + + // 插入子节点 + ProdMaterialBom add = MapstructUtils.convert(child, ProdMaterialBom.class); + if (baseMapper.insert(add) <= 0) { + throw new ServiceException("插入子节点失败"); + } + + // 记录映射关系 + idMapping.put(childTempId, add.getMaterialBomId()); + } + processed = true; + } + } + + // 如果一轮循环没有处理任何节点,说明数据有问题 + if (!processed && !childrenMap.isEmpty()) { + throw new ServiceException("存在无法处理的节点,可能是父节点丢失"); + } + } + + return true; + } catch (Exception e) { + throw new ServiceException("批量插入失败: " + e.getMessage()); + } + } } From efcc78641070ef04c36c0a324899cc8a2662f344 Mon Sep 17 00:00:00 2001 From: zch Date: Thu, 6 Feb 2025 16:56:49 +0800 Subject: [PATCH 52/69] =?UTF-8?q?change(mes):=20=E5=AE=8C=E5=96=84addBatch?= =?UTF-8?q?MaterialBom=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了 IProdMaterialBomService 接口中 insertBatchByBoList 方法的文档注释 - 更新了 ProdMaterialBomController 中 addBatchMaterialBom 方法的文档注释 - 统一了 ProdMaterialBomServiceImpl 中同名方法的文档描述 本次修改主要是为了更准确地描述物料BOM批量插入功能的实际行为,即根据结构BOM进行批量插入,而不是单纯的批量新增操作。 --- .../dromara/mes/controller/ProdMaterialBomController.java | 3 ++- .../org/dromara/mes/service/IProdMaterialBomService.java | 7 +++---- .../mes/service/impl/ProdMaterialBomServiceImpl.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java index f39abd8..e3776c1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java @@ -114,13 +114,14 @@ public class ProdMaterialBomController extends BaseController { } /** - * 新增物料BOM信息 + * 根据结构BOM批量插入物料清单BOM。 */ @SaCheckPermission("mes:materialBom:add") @Log(title = "物料BOM信息", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/addBatchMaterialBom") public R addBatchMaterialBom(@RequestBody List boList) { + //不是单纯的批量新增,是新增BOM对话框(参考结构BOM批量新增物料BOM) return toAjax(prodMaterialBomService.insertBatchByBoList(boList)); } } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java index 40e261e..95d9157 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java @@ -58,10 +58,9 @@ public interface IProdMaterialBomService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); /** - * 批量新增物料BOM信息 - * - * @param boList 物料BOM信息列表 - * @return 是否新增成功 + * 根据结构BOM批量插入物料清单BOM。 + * @param boList 需要插入的物料清单BOM列表。 + * @return 如果所有节点都成功插入,返回true;否则抛出异常。 */ Boolean insertBatchByBoList(List boList); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java index 24e72f4..a94b3a1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java @@ -165,7 +165,7 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { /** - * 批量插入物料清单BOM。 + * 根据结构BOM批量插入物料清单BOM。 * @param boList 需要插入的物料清单BOM列表。 * @return 如果所有节点都成功插入,返回true;否则抛出异常。 */ From af37b9cef70d24603e7728874d5b8893dea6d1ee Mon Sep 17 00:00:00 2001 From: yinq Date: Thu, 6 Feb 2025 17:23:13 +0800 Subject: [PATCH 53/69] =?UTF-8?q?update=20add=E5=B7=A5=E5=BA=8F=E6=AD=A5?= =?UTF-8?q?=E5=BA=8F=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/domain/bo/ProdTechnologyInfoBo.java | 4 +++ .../mes/domain/vo/ProdTechnologyInfoVo.java | 5 ++- .../impl/ProdTechnologyInfoServiceImpl.java | 33 +++++++++++++++++-- .../ProdTechnologyStepInfoServiceImpl.java | 2 +- .../SysMasterDataDetailController.java | 12 ++++++- 5 files changed, 51 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java index 415897a..b67bfca 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java @@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.mes.domain.ProdTechnologyStepInfo; + +import java.util.List; /** * 工序工艺信息业务对象 prod_technology_info @@ -67,5 +70,6 @@ public class ProdTechnologyInfoBo extends BaseEntity { */ private String remark; + private List prodTechnologyStepInfoList; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java index 34cd4f3..387a1cb 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java @@ -7,11 +7,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.mes.domain.ProdTechnologyStepInfo; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -90,4 +91,6 @@ public class ProdTechnologyInfoVo implements Serializable { @ExcelProperty(value = "物料名称") private String materialName; + + private List prodTechnologyStepInfoList; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java index 85c9ae5..c9064b5 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.mes.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -11,12 +13,16 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.mes.domain.BaseMaterialInfo; import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.mes.mapper.ProdTechnologyStepInfoMapper; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; import org.dromara.mes.domain.ProdTechnologyInfo; import org.dromara.mes.mapper.ProdTechnologyInfoMapper; import org.dromara.mes.service.IProdTechnologyInfoService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -34,6 +40,8 @@ public class ProdTechnologyInfoServiceImpl implements IProdTechnologyInfoService private final ProdTechnologyInfoMapper baseMapper; + private final ProdTechnologyStepInfoMapper prodTechnologyStepInfoMapper; + /** * 查询工序工艺信息 * @@ -46,7 +54,15 @@ public class ProdTechnologyInfoServiceImpl implements IProdTechnologyInfoService bo.setTechnologyId(technologyId); MPJLambdaWrapper lqw = buildQueryWrapper(bo); List voList = baseMapper.selectVoList(lqw); - return voList.get(0); + ProdTechnologyInfoVo prodTechnologyInfoVo = voList.get(0); + //工艺步序信息 + MPJLambdaWrapper lqwStep = JoinWrappers.lambda(ProdTechnologyStepInfo.class) + .selectAll(ProdTechnologyStepInfo.class) + .eq(bo.getTechnologyId() != null, ProdTechnologyStepInfo::getTechnologyId, bo.getTechnologyId()) + .orderByAsc(ProdTechnologyStepInfo::getCreateTime); + List prodTechnologyStepInfoList = prodTechnologyStepInfoMapper.selectList(lqwStep); + prodTechnologyInfoVo.setProdTechnologyStepInfoList(prodTechnologyStepInfoList); + return prodTechnologyInfoVo; } /** @@ -91,7 +107,7 @@ public class ProdTechnologyInfoServiceImpl implements IProdTechnologyInfoService .eq(StringUtils.isNotBlank(bo.getTechnologyVersion()), ProdTechnologyInfo::getTechnologyVersion, bo.getTechnologyVersion()) .eq(bo.getStandardTime() != null, ProdTechnologyInfo::getStandardTime, bo.getStandardTime()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdTechnologyInfo::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(ProdTechnologyInfo::getCreateTime); + .orderByAsc(ProdTechnologyInfo::getCreateTime); return lqw; } @@ -119,9 +135,22 @@ public class ProdTechnologyInfoServiceImpl implements IProdTechnologyInfoService * @return 是否修改成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(ProdTechnologyInfoBo bo) { ProdTechnologyInfo update = MapstructUtils.convert(bo, ProdTechnologyInfo.class); validEntityBeforeSave(update); + + List technologyStepInfoList = bo.getProdTechnologyStepInfoList(); + + if (technologyStepInfoList.size() > 0){ + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotNull(bo.getTechnologyId()), ProdTechnologyStepInfo::getTechnologyId, bo.getTechnologyId()); + prodTechnologyStepInfoMapper.delete(lqw); + for (ProdTechnologyStepInfo stepInfo : technologyStepInfoList) { + stepInfo.setStepId(null); + prodTechnologyStepInfoMapper.insert(stepInfo); + } + } return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java index e9a22f7..803c633 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java @@ -81,7 +81,7 @@ public class ProdTechnologyStepInfoServiceImpl implements IProdTechnologyStepInf .eq(StringUtils.isNotBlank(bo.getStepParameter()), ProdTechnologyStepInfo::getStepParameter, bo.getStepParameter()) .eq(StringUtils.isNotBlank(bo.getValueState()), ProdTechnologyStepInfo::getValueState, bo.getValueState()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdTechnologyStepInfo::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(ProdTechnologyStepInfo::getCreateTime); + .orderByDesc(ProdTechnologyStepInfo::getStepCode); return lqw; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java index 3a867de..be77256 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java @@ -38,7 +38,7 @@ public class SysMasterDataDetailController extends BaseController { private final ISysMasterDataDetailService sysMasterDataDetailService; /** - * 查询主数据维护明细列表 + * 查询主数据维护明细列表-列表结构 */ @SaCheckPermission("system:masterDataDetail:list") @GetMapping("/list") @@ -46,6 +46,16 @@ public class SysMasterDataDetailController extends BaseController { return sysMasterDataDetailService.queryPageList(bo, pageQuery); } + /** + * 查询主数据维护明细列表-树状结构 + */ + @SaCheckPermission("system:masterDataDetail:list") + @GetMapping("/treeList") + public R> list(SysMasterDataDetailBo bo) { + List list = sysMasterDataDetailService.queryList(bo); + return R.ok(list); + } + /** * 导出主数据维护明细列表 */ From 17481a98b689944d2f6f9a512c7de2118aefa44a Mon Sep 17 00:00:00 2001 From: yinq Date: Thu, 6 Feb 2025 19:41:37 +0800 Subject: [PATCH 54/69] =?UTF-8?q?update=20=E5=B7=A5=E4=BD=8D=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9C=BA=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/mes/domain/ProdBaseStationInfo.java | 8 +++++++- .../org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java | 2 +- .../org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java | 6 ++++++ .../mes/service/impl/ProdBaseMachineInfoServiceImpl.java | 2 +- .../mes/service/impl/ProdBaseStationInfoServiceImpl.java | 6 +++++- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java index 92756a3..5d2aba6 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java @@ -72,8 +72,14 @@ public class ProdBaseStationInfo extends TenantEntity { */ private String remark; + /** + * 机台ID + */ + private Long machineId; + @TableField(exist = false) private String processName;//字段映射 - + @TableField(exist = false) + private String machineName;//字段映射 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java index b3a5942..c3c2d40 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java @@ -74,5 +74,5 @@ public class ProdBaseStationInfoBo extends BaseEntity { */ private String remark; - + private Long machineId; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java index 3f37b31..93ed805 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java @@ -131,5 +131,11 @@ public class ProdBaseStationInfoVo implements Serializable { @ExcelProperty(value = "更新时间") private Date updateTime; + private Long machineId; + /** + * 机台名称 + */ + @ExcelProperty(value = "机台名称") + private String machineName; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java index 390b246..fa11085 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java @@ -83,7 +83,7 @@ public class ProdBaseMachineInfoServiceImpl implements IProdBaseMachineInfoServi .eq(StringUtils.isNotBlank(bo.getMachineSpec()), ProdBaseMachineInfo::getMachineSpec, bo.getMachineSpec()) .eq(StringUtils.isNotBlank(bo.getSupplierId()), ProdBaseMachineInfo::getSupplierId, bo.getSupplierId()) .eq(StringUtils.isNotBlank(bo.getMachineStatus()), ProdBaseMachineInfo::getMachineStatus, bo.getMachineStatus()) - .orderByDesc(ProdBaseMachineInfo::getCreateTime); + .orderByAsc(ProdBaseMachineInfo::getCreateTime); return lqw; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java index 5e173e3..6ff215c 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdBaseMachineInfo; import org.dromara.mes.domain.ProdBaseProcessInfo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdBaseStationInfoBo; @@ -75,16 +76,19 @@ public class ProdBaseStationInfoServiceImpl implements IProdBaseStationInfoServi MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseStationInfo.class) .selectAll(ProdBaseStationInfo.class) .select(ProdBaseProcessInfo::getProcessName) + .select(ProdBaseMachineInfo::getMachineName) .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdBaseStationInfo::getProcessId) + .leftJoin(ProdBaseMachineInfo.class, ProdBaseMachineInfo::getMachineId, ProdBaseStationInfo::getMachineId) .eq(bo.getStationId() != null, ProdBaseStationInfo::getStationId, bo.getStationId()) .eq(StringUtils.isNotBlank(bo.getStationCode()), ProdBaseStationInfo::getStationCode, bo.getStationCode()) .like(StringUtils.isNotBlank(bo.getStationName()), ProdBaseStationInfo::getStationName, bo.getStationName()) .eq(StringUtils.isNotBlank(bo.getStationType()), ProdBaseStationInfo::getStationType, bo.getStationType()) .eq(bo.getProcessId() != null, ProdBaseStationInfo::getProcessId, bo.getProcessId()) + .eq(bo.getMachineId() != null, ProdBaseStationInfo::getMachineId, bo.getMachineId()) .like(StringUtils.isNotBlank(bo.getAgvCode()), ProdBaseStationInfo::getAgvCode, bo.getAgvCode()) .like(StringUtils.isNotBlank(bo.getIpAddress()), ProdBaseStationInfo::getIpAddress, bo.getIpAddress()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdBaseStationInfo::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(ProdBaseStationInfo::getCreateTime); + .orderByAsc(ProdBaseStationInfo::getCreateTime); return lqw; } From 9572796335597790ff5a261487a150e4ee96827f Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 7 Feb 2025 16:06:39 +0800 Subject: [PATCH 55/69] =?UTF-8?q?update=20=E8=AE=A1=E5=88=92=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9C=BA=E5=8F=B0=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/domain/bo/ProdBaseMachineInfoBo.java | 4 ++++ .../impl/ProdBaseMachineInfoServiceImpl.java | 5 +++++ .../resources/mapper/mes/ProdPlanInfoMapper.xml | 13 +++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java index 1c09d3d..73c76b2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java @@ -72,5 +72,9 @@ public class ProdBaseMachineInfoBo extends BaseEntity { */ private String remark; + /** + * 工序 + */ + private Long processId; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java index fa11085..677a04b 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java @@ -10,6 +10,8 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.dromara.mes.domain.ProdBaseStationInfo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; @@ -74,6 +76,8 @@ public class ProdBaseMachineInfoServiceImpl implements IProdBaseMachineInfoServi Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseMachineInfo.class) .selectAll(ProdBaseMachineInfo.class) + .leftJoin(ProdBaseStationInfo.class, ProdBaseStationInfo::getMachineId, ProdBaseMachineInfo::getMachineId) + .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdBaseStationInfo::getProcessId) .eq(bo.getMachineId() != null, ProdBaseMachineInfo::getMachineId, bo.getMachineId()) .eq(StringUtils.isNotBlank(bo.getMachineCode()), ProdBaseMachineInfo::getMachineCode, bo.getMachineCode()) .like(StringUtils.isNotBlank(bo.getMachineName()), ProdBaseMachineInfo::getMachineName, bo.getMachineName()) @@ -83,6 +87,7 @@ public class ProdBaseMachineInfoServiceImpl implements IProdBaseMachineInfoServi .eq(StringUtils.isNotBlank(bo.getMachineSpec()), ProdBaseMachineInfo::getMachineSpec, bo.getMachineSpec()) .eq(StringUtils.isNotBlank(bo.getSupplierId()), ProdBaseMachineInfo::getSupplierId, bo.getSupplierId()) .eq(StringUtils.isNotBlank(bo.getMachineStatus()), ProdBaseMachineInfo::getMachineStatus, bo.getMachineStatus()) + .eq(StringUtils.isNotNull(bo.getProcessId()), ProdBaseProcessInfo::getProcessId, bo.getProcessId()) .orderByAsc(ProdBaseMachineInfo::getCreateTime); return lqw; } diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index 6ff9373..5c57c3a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -74,7 +74,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bmi.material_code, bmi.material_name, bomi.material_name material_bom_name, - pbsi.station_name release_name, + case + when t.release_type = 1 then (select pbmi.machine_name + from prod_base_machine_info pbmi + where t.release_id = pbmi.machine_id) + when t.release_type = 2 then (select su.nick_name + from sys_user su + where t.release_id = su.user_id) + when t.release_type = 3 then (select pbsi.station_name + from prod_base_station_info pbsi + where t.release_id = pbsi.station_id) + end as release_name, pbpi.process_name, bsi.shift_name, bcti.team_name @@ -85,7 +95,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from ${tableName} t left join base_material_info bmi on bmi.material_id = t.material_id left join base_material_info bomi on bomi.material_id = t.material_bom_id - left join prod_base_station_info pbsi on pbsi.station_id = t.release_id left join prod_base_process_info pbpi on pbpi.process_id = t.process_id left join base_shift_info bsi on bsi.shift_id = t.shift_id left join base_class_team_info bcti on bcti.class_team_id = t.class_team_id From 53e810316c9f9a7512971c1ecff2261e1e14ad5c Mon Sep 17 00:00:00 2001 From: zch Date: Fri, 7 Feb 2025 16:44:24 +0800 Subject: [PATCH 56/69] =?UTF-8?q?change(mes):=20=E6=96=B0=E5=A2=9EBOM?= =?UTF-8?q?=E7=9A=84=E9=9D=9E=E9=A1=B6=E7=BA=A7=E8=8A=82=E7=82=B9=E8=A1=A8?= =?UTF-8?q?=E7=A4=BAtopFlag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化了顶级节点和子节点的处理流程 - 添加了 topFlag 字段,用于区分顶级节点和非顶级节点 --- .../impl/ProdMaterialBomServiceImpl.java | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java index a94b3a1..6767f87 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java @@ -179,57 +179,48 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { try { // 按层级分组(根据parentId分组) Map> levelMap = new HashMap<>(); - // 1. 首先找出所有顶级节点 List topNodes = boList.stream() .filter(bo -> bo.getParentId() == null || bo.getParentId() == 0) .collect(Collectors.toList()); - // 2. 其他节点按parentId分组 Map> childrenMap = boList.stream() .filter(bo -> bo.getParentId() != null && bo.getParentId() != 0) .collect(Collectors.groupingBy(bo -> Math.abs(bo.getParentId()))); - // 存储临时ID到实际ID的映射 Map idMapping = new HashMap<>(); - - // 3. 先处理顶级节点 + // 3. 优先处理顶级节点,设置基础数据并插入 for (ProdMaterialBomBo topNode : topNodes) { Long tempId = Math.abs(topNode.getMaterialBomId()); topNode.setMaterialBomId(null); // 清除临时ID topNode.setParentId(0L); // 确保顶级节点parentId为0 topNode.setAncestors("0"); // 顶级节点的ancestors为"0" - + topNode.setTopFlag(1L); // 设置顶级节点的topFlag为1 // 插入顶级节点 ProdMaterialBom add = MapstructUtils.convert(topNode, ProdMaterialBom.class); if (baseMapper.insert(add) <= 0) { throw new ServiceException("插入顶级节点失败"); } - // 记录映射关系 idMapping.put(tempId, add.getMaterialBomId()); } - // 4. 处理子节点,直到所有节点都处理完 while (!childrenMap.isEmpty()) { // 找出当前可以处理的节点(父节点已经在idMapping中的节点) List processableParentIds = new ArrayList<>(childrenMap.keySet()); - boolean processed = false; - + boolean processed = false;// 标记本轮是否有节点被处理 for (Long parentTempId : processableParentIds) { // 检查父节点是否已处理 if (idMapping.containsKey(parentTempId)) { List children = childrenMap.remove(parentTempId); - // 处理同一父节点的所有子节点 for (ProdMaterialBomBo child : children) { Long childTempId = Math.abs(child.getMaterialBomId()); - child.setMaterialBomId(null); // 清除临时ID - // 设置实际的父节点ID + child.setMaterialBomId(null);// 清除临时ID + child.setTopFlag(0L); // 设置非顶级节点的topFlag为0 Long actualParentId = idMapping.get(parentTempId); child.setParentId(actualParentId); - // 设置祖级列表 ProdMaterialBom parent = baseMapper.selectById(actualParentId); child.setAncestors(parent.getAncestors() + "," + actualParentId); @@ -246,13 +237,11 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { processed = true; } } - // 如果一轮循环没有处理任何节点,说明数据有问题 if (!processed && !childrenMap.isEmpty()) { throw new ServiceException("存在无法处理的节点,可能是父节点丢失"); } } - return true; } catch (Exception e) { throw new ServiceException("批量插入失败: " + e.getMessage()); From 8d93704ae9f6312996e230abfa60ceafcc36dfcf Mon Sep 17 00:00:00 2001 From: wanghao Date: Fri, 7 Feb 2025 19:32:12 +0800 Subject: [PATCH 57/69] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=8D=8A=E5=88=B6?= =?UTF-8?q?=E5=93=81=E5=85=A5=E5=BA=93=E6=8E=A5=E5=8F=A3=E3=80=81=E6=88=90?= =?UTF-8?q?=E5=93=81=E5=85=A5=E5=BA=93=E3=80=81=E7=BB=91=E5=AE=9A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsPdaApiController.java | 111 ++++++++++++---- .../wms/domain/WmsHppStorageDetail.java | 7 +- .../org/dromara/wms/domain/WmsPsmInLoad.java | 2 +- .../org/dromara/wms/domain/WmsPsmInStock.java | 1 + .../wms/domain/bo/WmsHppInStockDetailBo.java | 3 + .../wms/domain/vo/WmsHppInStockDetailVo.java | 1 + .../wms/domain/vo/WmsHppStorageDetailVo.java | 3 +- .../wms/domain/vo/WmsPsmStorePlaceVo.java | 1 + .../wms/mapper/WmsHppInStockDetailMapper.java | 9 +- .../wms/mapper/WmsHppStorageDetailMapper.java | 2 + .../wms/mapper/WmsHppStorePlaceMapper.java | 4 +- .../dromara/wms/mapper/WmsPdaApiMapper.java | 16 +++ .../wms/mapper/WmsPsmInLoadDetailMapper.java | 2 + .../wms/mapper/WmsPsmInStockMapper.java | 2 + .../wms/mapper/WmsPsmStorePlaceMapper.java | 6 +- .../wms/service/IWmsHppStorePlaceService.java | 3 + .../wms/service/IWmsPdaApiService.java | 11 ++ .../wms/service/IWmsPsmStorePlaceService.java | 3 + .../impl/WmsHppStorePlaceServiceImpl.java | 5 + .../service/impl/WmsPdaApiServiceImpl.java | 118 +++++++++++++++--- .../impl/WmsPsmStorePlaceServiceImpl.java | 5 + .../resources/mapper/wms/WmsPdaApiMapper.xml | 57 +++++++++ 22 files changed, 327 insertions(+), 45 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java index 374a58b..1903114 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java @@ -1,27 +1,30 @@ package org.dromara.wms.controller; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.core.validate.EditGroup; import org.dromara.common.web.core.BaseController; import org.dromara.wms.domain.bo.WmsReturnOrderBo; -import org.dromara.wms.domain.vo.WmsOutstockRecordVo; -import org.dromara.wms.domain.vo.WmsPsmInLoadVo; -import org.dromara.wms.service.IWmsPdaApiService; -import org.dromara.wms.service.IWmsReturnOrderService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; +import org.dromara.wms.domain.vo.*; +import org.dromara.wms.service.*; import org.springframework.web.bind.annotation.*; import java.util.List; - +@RequiredArgsConstructor @RestController @RequestMapping("/pda") public class WmsPdaApiController extends BaseController { - @Autowired - private IWmsPdaApiService apiService; - @Autowired - private IWmsReturnOrderService wmsReturnOrderService; + private final IWmsPdaApiService apiService; + + private final IWmsReturnOrderService wmsReturnOrderService; + + private final IWmsPsmStorePlaceService wmsPsmStorePlaceService; + + + /** + * 原材料退库-现场扫描 + * + */ @PostMapping("/raw/returnSelectCode") public R returnSelectCode(String code) { WmsOutstockRecordVo wmsOutstockRecordVo = apiService.returnSelectCode(code); @@ -31,8 +34,12 @@ public class WmsPdaApiController extends BaseController { } return R.ok(wmsOutstockRecordVo); } + + /** + * 原材料退库提交 + */ @PostMapping("/raw/returnSubmit") - public R rawReturnSubmit( @RequestBody WmsReturnOrderBo bo) { + public R rawReturnSubmit(@RequestBody WmsReturnOrderBo bo) { Boolean result = wmsReturnOrderService.insertByBo(bo); if (result) { apiService.rawReturnSubmitUpdateStateById(bo.getOutstockRecordId()); @@ -40,16 +47,78 @@ public class WmsPdaApiController extends BaseController { return toAjax(result); } + /** + * 成品跟载具绑定 + * + * @param vehicleCode 载具 + * @param productList 成品轮胎码list + */ @PostMapping("/product/bindVehicleSubmit") - public R bindVehicleSubmit(@RequestParam String vehicleCode,@RequestParam List productList) { - // System.out.println(vehicleCode); - // System.out.println(productList.toString()); - - return R.ok(); + public R bindVehicleSubmit(@RequestParam String vehicleCode, @RequestParam List productList) { + Boolean result = apiService.bindVehicleSubmit(vehicleCode, productList); + if (result) { + return R.ok(); + } + return R.fail(); } + + /** + * 成品入库-扫描载具号查询物料信息 + * + * @param code 载具 + * @return WmsPsmInLoadVo + */ @PostMapping("/product/selectVehicleInfo") - public R selectVehicleInfo(String code){ - WmsPsmInLoadVo wmsPsmInLoadVo=apiService.productSelectVehicleInfo(code); - return R.ok(); + public R selectVehicleInfo(String code) { + WmsPsmInLoadVo wmsPsmInLoadVo = apiService.productSelectVehicleInfo(code); + if (wmsPsmInLoadVo == null) { + return R.fail("载具编号错误"); + } + return R.ok(wmsPsmInLoadVo); + } + + @PostMapping("/product/submitInStoreInfo") + public R productSubmitInStoreInfo(@RequestBody WmsPsmInLoadVo vo) { + // 验证库位条码 + WmsPsmStorePlaceVo wmsPsmStorePlace = wmsPsmStorePlaceService.selectStorePlaceInfoByCode(vo.getStorePlaceCode()); + if (wmsPsmStorePlace == null) { + return R.fail("库位编码扫描错误"); + } + vo.setStoreName(wmsPsmStorePlace.getStoreName()); + Boolean result = apiService.productSubmitInStoreInfo(vo); + + return result ? R.ok() : R.fail(); + } + + /** + * 半成品入库 + * @param code 载具 + */ + @PostMapping("/semi/selectVehicleInfo") + public R semiSelectVehicleInfo(String code) { + WmsHppInStockDetailVo wmsHppInStockDetailVo=apiService.semiSelectVehicleInfo(code); + if (wmsHppInStockDetailVo == null) { + return R.fail("载具没有绑定物料,或者载具编码扫描错误"); + } + return R.ok(wmsHppInStockDetailVo); + } + + private final IWmsHppStorePlaceService wmsHppStorePlaceService; + + /** + * 半成品入库提交 + * @param vo xinx + */ + @PostMapping("/semi/submitInstore") + public R semiSubmitInStoreInfo(@RequestBody WmsHppInStockDetailVo vo) { + // 验证库位条码 + WmsHppStorePlaceVo wmsPsmStorePlace = wmsHppStorePlaceService.selectStorePlaceInfoByCode(vo.getStorePlaceCode()); + if (wmsPsmStorePlace == null) { + return R.fail("库位编码扫描错误"); + } + vo.setStorePlaceId(wmsPsmStorePlace.getObjId()); + Boolean result = apiService.updataInStoreRecord(vo); + + return result ? R.ok() : R.fail(); } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java index 05310ce..1979e27 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java @@ -1,10 +1,7 @@ package org.dromara.wms.domain; -import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; -import lombok.EqualsAndHashCode; - import java.io.Serial; import java.math.BigDecimal; import java.util.Date; @@ -25,7 +22,7 @@ public class WmsHppStorageDetail { /** * 主键 */ - @TableId(type = IdType.AUTO) + @TableId(type = IdType.AUTO,value = "obj_id") private Long objId; /** @@ -91,5 +88,7 @@ public class WmsHppStorageDetail { private String materialCode; + private Long minParkingTime; + private Long maxParkingTime; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java index bce76c2..c99c3b4 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java @@ -70,7 +70,7 @@ public class WmsPsmInLoad { /** * 装载数量 */ - private Long loadAmount; + private int loadAmount; /** * 租户id */ diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java index 0906a23..eef98ff 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java @@ -24,6 +24,7 @@ public class WmsPsmInStock{ /** * 表主键 */ + @TableId(type = IdType.AUTO,value = "in_stock_id") private Long inStockId; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java index 93a85d8..154c427 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java @@ -79,6 +79,9 @@ public class WmsHppInStockDetailBo extends BaseEntity { private BigDecimal instockNum; + private String storePlaceCode; + + private String unitName; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java index 17d21a3..daca3b8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java @@ -111,5 +111,6 @@ public class WmsHppInStockDetailVo implements Serializable { private BigDecimal instockNum; private String storePlaceCode; private String materialCode; + private String unitName; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java index 1cb13ee..9e55174 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java @@ -105,7 +105,8 @@ public class WmsHppStorageDetailVo implements Serializable { private Date updateTime; private String storePlaceCode; private String materialCode; - + private Long minParkingTime; + private Long maxParkingTime; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java index ba86e04..90e878b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java @@ -85,6 +85,7 @@ public class WmsPsmStorePlaceVo implements Serializable { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; private String storeCode; + private String storeName; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java index 0f6d5db..1c78b78 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java @@ -1,8 +1,10 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsHppInStockDetail; import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; +import org.springframework.stereotype.Repository; /** * 半制品入库Mapper接口 @@ -10,6 +12,11 @@ import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; * @author LionLi * @date 2025-01-14 */ +@Repository public interface WmsHppInStockDetailMapper extends BaseMapperPlus { - + @Select("select top 1 obj_id,create_time,card_no,shelf_no, grade_code,product_category,\n" + + " material_id,material_spec,instock_num,material_code,unit_name\n" + + "from wms_hpp_in_stock_detail where store_place_id is null and shelf_no=#{code}\n" + + "order by create_time") + WmsHppInStockDetailVo semiSelectVehicleInfo(String code); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java index 4753bae..fd4cceb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java @@ -4,6 +4,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsHppStorageDetail; import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; +import org.springframework.stereotype.Repository; /** * 半成品库存Mapper接口 @@ -11,6 +12,7 @@ import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; * @author LionLi * @date 2025-01-14 */ +@Repository public interface WmsHppStorageDetailMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java index fff1889..f1c379c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java @@ -1,5 +1,6 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsHppStorePlace; import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; @@ -11,5 +12,6 @@ import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; * @date 2025-01-14 */ public interface WmsHppStorePlaceMapper extends BaseMapperPlus { - + @Select("select top 1 obj_id,store_id,store_place_code,store_place_name from wms_hpp_store_place where store_place_code=#{storePlaceCode}") + WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java index f1eb44c..179a620 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java @@ -1,9 +1,25 @@ package org.dromara.wms.mapper; import org.apache.ibatis.annotations.Param; +import org.dromara.wms.domain.WmsPsmInLoad; +import org.dromara.wms.domain.WmsPsmInLoadDetail; +import org.dromara.wms.domain.WmsPsmInStock; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface WmsPdaApiMapper { void rawReturnSubmitUpdateStateById(@Param("warehouseId") Long warehouseId); + + int bindVehicleSubmitInsertInLoad(@Param("wmsPsmInLoad") WmsPsmInLoad wmsPsmInLoad); + + void bindVehicleSubmitInsertInLoadDetail(@Param("id") Long inLoadId, @Param("list") List productList); + + WmsPsmInLoadVo productSelectVehicleInfo(String code); + + void insertInStockDetail(@Param("id") Long inStockId, @Param("list") List list); + + void insertPsmStorage(@Param("list") List list,@Param("data") WmsPsmInStock vo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java index 1fad44a..a0048e0 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsPsmInLoadDetail; import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; +import org.springframework.stereotype.Repository; /** * 装车架子详细信息Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; * @author LionLi * @date 2025-01-15 */ +@Repository public interface WmsPsmInLoadDetailMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java index 09ed0c5..91a6b13 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsPsmInStock; import org.dromara.wms.domain.vo.WmsPsmInStockVo; +import org.springframework.stereotype.Repository; /** * 成品入库记录Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.WmsPsmInStockVo; * @author LionLi * @date 2025-01-15 */ +@Repository public interface WmsPsmInStockMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java index a32db17..382abea 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java @@ -1,5 +1,6 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsPsmStorePlace; import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; @@ -11,5 +12,8 @@ import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; * @date 2025-01-15 */ public interface WmsPsmStorePlaceMapper extends BaseMapperPlus { - + @Select("select top 1 store_place_id,store_place_code, store_place_name, place.store_id," + + "sap_code, store_code, store_name,store_type_id from wms_psm_store_place place " + + "left join dbo.wms_psm_store wps on place.store_id = wps.store_id where store_place_code=#{storePlaceCode} ") + WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java index cd9ddf9..ed609a3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java @@ -5,6 +5,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.wms.domain.bo.WmsHppStorePlaceBo; import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; +import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; import java.util.Collection; import java.util.List; @@ -66,4 +67,6 @@ public interface IWmsHppStorePlaceService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java index 2d280c8..acaf077 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java @@ -1,12 +1,23 @@ package org.dromara.wms.service; +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import java.util.List; + public interface IWmsPdaApiService { WmsOutstockRecordVo returnSelectCode(String code); void rawReturnSubmitUpdateStateById(Long warehouseId); WmsPsmInLoadVo productSelectVehicleInfo(String code); + + Boolean bindVehicleSubmit(String vehicleCode, List productList); + + Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo); + + WmsHppInStockDetailVo semiSelectVehicleInfo(String code); + + Boolean updataInStoreRecord(WmsHppInStockDetailVo vo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java index 398baf7..c2c3fe5 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java @@ -2,6 +2,7 @@ package org.dromara.wms.service; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.WmsPsmStorePlace; import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo; import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; @@ -65,4 +66,6 @@ public interface IWmsPsmStorePlaceService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java index 1d7342f..ea2f2bf 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java @@ -140,4 +140,9 @@ public class WmsHppStorePlaceServiceImpl implements IWmsHppStorePlaceService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode) { + return baseMapper.selectStorePlaceInfoByCode(storePlaceCode); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java index 274851e..c2bb03d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java @@ -1,28 +1,34 @@ package org.dromara.wms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import io.github.linpeilie.BaseMapper; -import org.dromara.common.core.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.translation.annotation.Translation; import org.dromara.wms.domain.*; +import org.dromara.wms.domain.vo.BaseMaterialInfoVo; +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; import org.dromara.wms.domain.vo.WmsPsmInLoadVo; -import org.dromara.wms.mapper.WmsOutstockRecordMapper; -import org.dromara.wms.mapper.WmsPdaApiMapper; -import org.dromara.wms.mapper.WmsPsmInLoadMapper; +import org.dromara.wms.mapper.*; import org.dromara.wms.service.IWmsPdaApiService; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.List; +@RequiredArgsConstructor @Service public class WmsPdaApiServiceImpl implements IWmsPdaApiService { - @Autowired - private WmsOutstockRecordMapper wmsOutstockRecordMapper; - @Autowired - private WmsPdaApiMapper apiMapper; - @Autowired - private WmsPsmInLoadMapper psmInLoadMapper; + + private final WmsOutstockRecordMapper wmsOutstockRecordMapper; + private final WmsPdaApiMapper apiMapper; + private final WmsHppInStockDetailMapper baseMapper; + + private final WmsPsmInStockMapper wmsPsmInStockMapper; + private final WmsPsmInLoadDetailMapper wmsPsmInLoadDetailMapper; @Override public WmsOutstockRecordVo returnSelectCode(String code) { @@ -46,8 +52,90 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { @Override public WmsPsmInLoadVo productSelectVehicleInfo(String code) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("toolingBarcode", code).eq("storePlaceCode",null); - return psmInLoadMapper.selectVoOne(queryWrapper); + return apiMapper.productSelectVehicleInfo(code); + } + + + @Override + public Boolean bindVehicleSubmit(String vehicleCode, List productList) { + String userId = String.valueOf(LoginHelper.getUserId()); + WmsPsmInLoad wmsPsmInLoad = new WmsPsmInLoad(); + wmsPsmInLoad.setToolingBarcode(vehicleCode); + wmsPsmInLoad.setLoadAmount(productList.size()); + wmsPsmInLoad.setCreateBy(userId); + int tag = apiMapper.bindVehicleSubmitInsertInLoad(wmsPsmInLoad); + if (tag == 1) { + apiMapper.bindVehicleSubmitInsertInLoadDetail(wmsPsmInLoad.getInLoadId(), productList); + return true; + } + + + return false; + } + + + + + @Translation(type = "Exception") + @Override + public Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo) { + + // 插入入库记录主表 + WmsPsmInStock wmsPsmInStock = new WmsPsmInStock(); + BeanUtils.copyProperties(vo, wmsPsmInStock); + wmsPsmInStock.setInAmount(vo.getLoadAmount()); + wmsPsmInStock.setCreateBy(LoginHelper.getUserId() + "");//创建人 + int insert = wmsPsmInStockMapper.insert(wmsPsmInStock); + if (insert == 1) { + System.out.println(); + // 查询成品条码表 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("in_load_id", vo.getInLoadId()); + List list = wmsPsmInLoadDetailMapper.selectList(queryWrapper); + apiMapper.insertInStockDetail(wmsPsmInStock.getInStockId(), list); + apiMapper.insertPsmStorage(list, wmsPsmInStock); + return true; + } + // 插入入库主表 + // WmsPsmInStockBo bo = new WmsPsmInStockBo(); + // bo.setStoreName(vo.getStoreName()); + // bo.setToolingBarcode(vo.getToolingBarcode()); + // bo.setMaterialId(vo.getMaterialId()); + // bo. + + return false; + } + + + @Override + public WmsHppInStockDetailVo semiSelectVehicleInfo(String code) { + return baseMapper.semiSelectVehicleInfo(code); + } + + private final WmsHppInStockDetailMapper hppInStockDetailMapper;//入库记录 + private final WmsHppStorageDetailMapper hppStorageDetailMapper;//库存表 + private final BaseMaterialInfoMapper baseMaterialInfoMapper;//物料基础信息 + @Override + public Boolean updataInStoreRecord(WmsHppInStockDetailVo vo) { + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(WmsHppInStockDetail::getObjId, vo.getObjId()) + .set(WmsHppInStockDetail::getStorePlaceId, vo.getStorePlaceId()) + .set(WmsHppInStockDetail::getUpdateTime, DateUtils.getTime()) + .set(WmsHppInStockDetail::getUpdateBy, LoginHelper.getUsername()); + int rows = hppInStockDetailMapper.update(null, lambdaUpdateWrapper); + if (rows > 0) { + // System.out.println("更新成功"); + WmsHppStorageDetail hppStorageDetail = new WmsHppStorageDetail(); + BeanUtils.copyProperties(vo, hppStorageDetail); + hppStorageDetail.setObjId(null); + hppStorageDetail.setStorageNum(vo.getInstockNum()); + BaseMaterialInfoVo baseMaterialInfoVo= baseMaterialInfoMapper.selectVoById(vo.getMaterialId()); + hppStorageDetail.setMinParkingTime(baseMaterialInfoVo.getMinParkingTime()); + hppStorageDetail.setMaxParkingTime(baseMaterialInfoVo.getMaxParkingTime()); + hppStorageDetailMapper.insert(hppStorageDetail); + return true; + } + + return false; } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java index 424e310..5e2bd71 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java @@ -140,4 +140,9 @@ public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode) { + return baseMapper.selectStorePlaceInfoByCode(storePlaceCode); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml index c2928d1..092faf3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml @@ -9,5 +9,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update wms_outstock_record set return_flag= '1' where outstock_record_id=#{warehouseId} + + INSERT INTO wms_psm_in_load (tooling_barcode, material_id, material_spe, check_grade_code, + load_amount, material_code) + VALUES (#{wmsPsmInLoad.toolingBarcode}, null, null, null, #{wmsPsmInLoad.loadAmount}, null); + + + + INSERT INTO wms_psm_in_load_detail (in_load_id, material_id, + material_spe, tyre_no, check_grade_code) + VALUES + + ( #{id}, null, null,#{item}, null) + + + + + + + + + + + + + + + INSERT INTO wms_psm_in_stock_detail (in_stock_id, material_id, material_spe, tyre_no, check_grade_code) + VALUES + + (#{id}, #{item.materialId}, #{item.materialSpe}, #{item.tyreNo},#{item.checkGradeCode} ) + + + + + INSERT INTO wms_psm_storage (create_by, material_id, material_spe, tyre_no, check_grade_code, store_name, + store_place_code, tooling_barcode) + VALUES + + (#{data.createBy}, #{item.materialId}, #{item.materialSpe}, #{item.tyreNo},#{item.checkGradeCode},#{data.storeName}, + #{data.storePlaceCode},#{data.toolingBarcode}) + + + + From 880db8b0e05526bea296cb8756b3d2601b0ac053 Mon Sep 17 00:00:00 2001 From: yinq Date: Sat, 8 Feb 2025 14:59:12 +0800 Subject: [PATCH 58/69] =?UTF-8?q?update=20=E4=B8=BB=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E8=B7=AF=E7=94=B1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProdBaseWorkshopInfoServiceImpl.java | 11 +++++++++++ .../service/impl/SysMasterDataDetailServiceImpl.java | 12 +++++++++++- .../service/impl/SysMasterDataServiceImpl.java | 4 ++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java index 73c96f6..93b4ded 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.mes.service.impl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -118,6 +119,16 @@ public class ProdBaseWorkshopInfoServiceImpl implements IProdBaseWorkshopInfoSer */ private void validEntityBeforeSave(ProdBaseWorkshopInfo entity) { //TODO 做一些数据校验,如唯一约束 + // 校验编码是否重复 + if (StringUtils.isNotBlank(entity.getWorkshopCode())) { + ProdBaseWorkshopInfoBo query = new ProdBaseWorkshopInfoBo(); + query.setWorkshopCode(entity.getWorkshopCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + ProdBaseWorkshopInfo prodBaseWorkshopInfo = baseMapper.selectOne(lqw); + if (prodBaseWorkshopInfo != null && !prodBaseWorkshopInfo.getWorkshopId().equals(entity.getWorkshopId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java index 17b2124..e8861cc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.system.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -86,7 +87,7 @@ public class SysMasterDataDetailServiceImpl implements ISysMasterDataDetailServi .eq(StringUtils.isNotBlank(bo.getFieldData5()), SysMasterDataDetail::getFieldData5, bo.getFieldData5()) .eq(bo.getDisplaySort() != null, SysMasterDataDetail::getDisplaySort, bo.getDisplaySort()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysMasterDataDetail::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(SysMasterDataDetail::getCreateTime); + .orderByAsc(SysMasterDataDetail::getDataDetailCode); return lqw; } @@ -125,6 +126,15 @@ public class SysMasterDataDetailServiceImpl implements ISysMasterDataDetailServi */ private void validEntityBeforeSave(SysMasterDataDetail entity){ //TODO 做一些数据校验,如唯一约束 + //编号校验 + SysMasterDataDetailBo detailBo = new SysMasterDataDetailBo(); + detailBo.setMasterDataId(entity.getMasterDataId()); + detailBo.setDataDetailCode(entity.getDataDetailCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(detailBo); + SysMasterDataDetail detail = baseMapper.selectOne(lqw); + if (StringUtils.isNotNull(detail) && !entity.getMasterDataDetailId().equals(detail.getMasterDataDetailId())){ + throw new ServiceException("编码已存在"); + } } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java index 365643f..12b9016 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java @@ -77,7 +77,7 @@ public class SysMasterDataServiceImpl implements ISysMasterDataService { .eq(StringUtils.isNotBlank(bo.getModuleType()), SysMasterData::getModuleType, bo.getModuleType()) .eq(StringUtils.isNotBlank(bo.getParentFlag()), SysMasterData::getParentFlag, bo.getParentFlag()) .eq(bo.getMenuId() != null, SysMasterData::getMenuId, bo.getMenuId()) - .eq(StringUtils.isNotBlank(bo.getQueryParam()), SysMasterData::getQueryParam, bo.getQueryParam()) + .like(StringUtils.isNotBlank(bo.getQueryParam()), SysMasterData::getQueryParam, bo.getQueryParam()) .eq(StringUtils.isNotBlank(bo.getMasterDataTitle()), SysMasterData::getMasterDataTitle, bo.getMasterDataTitle()) .eq(StringUtils.isNotBlank(bo.getFieldName1()), SysMasterData::getFieldName1, bo.getFieldName1()) .eq(StringUtils.isNotBlank(bo.getDisplayFlag1()), SysMasterData::getDisplayFlag1, bo.getDisplayFlag1()) @@ -90,7 +90,7 @@ public class SysMasterDataServiceImpl implements ISysMasterDataService { .eq(StringUtils.isNotBlank(bo.getFieldName5()), SysMasterData::getFieldName5, bo.getFieldName5()) .eq(StringUtils.isNotBlank(bo.getDisplayFlag5()), SysMasterData::getDisplayFlag5, bo.getDisplayFlag5()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysMasterData::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(SysMasterData::getCreateTime); + .orderByAsc(SysMasterData::getCreateTime); return lqw; } From 8a81d131061ead129c17c81901e004c3ead8a691 Mon Sep 17 00:00:00 2001 From: wanghao Date: Sat, 8 Feb 2025 17:30:57 +0800 Subject: [PATCH 59/69] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=8D=8A=E5=88=B6?= =?UTF-8?q?=E5=93=81=E5=87=BA=E5=BA=93=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/WmsPdaApiController.java | 25 +++++++++++ .../wms/domain/WmsHppStorageDetail.java | 9 ++-- .../wms/domain/vo/WmsHppStorageDetailVo.java | 11 +++-- .../wms/mapper/BaseMaterialInfoMapper.java | 2 + .../mapper/WmsHppOutStockDetailMapper.java | 4 ++ .../wms/mapper/WmsHppStorageDetailMapper.java | 6 ++- .../wms/mapper/WmsHppStorePlaceMapper.java | 2 + .../wms/service/IWmsPdaApiService.java | 5 +++ .../service/impl/WmsPdaApiServiceImpl.java | 45 ++++++++++++++----- 9 files changed, 91 insertions(+), 18 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java index 1903114..3d3bf93 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java @@ -3,6 +3,7 @@ package org.dromara.wms.controller; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.web.core.BaseController; +import org.dromara.wms.domain.WmsHppStorageDetail; import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.*; import org.dromara.wms.service.*; @@ -77,6 +78,10 @@ public class WmsPdaApiController extends BaseController { return R.ok(wmsPsmInLoadVo); } + /** + * 成品入库提交信息 + * @param vo info + */ @PostMapping("/product/submitInStoreInfo") public R productSubmitInStoreInfo(@RequestBody WmsPsmInLoadVo vo) { // 验证库位条码 @@ -118,7 +123,27 @@ public class WmsPdaApiController extends BaseController { } vo.setStorePlaceId(wmsPsmStorePlace.getObjId()); Boolean result = apiService.updataInStoreRecord(vo); + return result ? R.ok() : R.fail(); + } + /** + * 查询半成品库存信息 + * @param code 流水卡号 + * @return WmsHppStorageDetailVo + */ + @PostMapping("/semi/selectHppStorageInfo") + public R selectHppStorageDetailInfobyCode(String code) { + WmsHppStorageDetailVo wmsHppStorageDetailVo= apiService.selectHppStorageDetailInfobyCode(code); + if (wmsHppStorageDetailVo == null) { + return R.fail("流水卡号错误,或者库存消耗完毕"); + } + return R.ok(wmsHppStorageDetailVo); + } + + + @PostMapping("/semi/submitOutInfo") + public R semiSubmitOutInfo(@RequestBody WmsHppStorageDetailVo vo) { + Boolean result = apiService.semiSubmitOutInfo(vo); return result ? R.ok() : R.fail(); } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java index 1979e27..e414f7c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java @@ -88,7 +88,10 @@ public class WmsHppStorageDetail { private String materialCode; - private Long minParkingTime; - private Long maxParkingTime; - + private double minParkingTime; + private double maxParkingTime; + @TableField(exist = false) + private Date minTime; + @TableField(exist = false) + private Date maxTime; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java index 9e55174..163c253 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java @@ -77,7 +77,7 @@ public class WmsHppStorageDetailVo implements Serializable { * 库存数量 */ @ExcelProperty(value = "库存数量") - private BigDecimal storageNum; + private double storageNum; /** * 租户id @@ -105,8 +105,11 @@ public class WmsHppStorageDetailVo implements Serializable { private Date updateTime; private String storePlaceCode; private String materialCode; - private Long minParkingTime; - private Long maxParkingTime; - + private double minParkingTime; + private double maxParkingTime; + private Date minTime; + private Date maxTime; + private String unitName; + private double outNumber; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java index 1cc10fb..979244a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.vo.BaseMaterialInfoVo; +import org.springframework.stereotype.Repository; /** * 物料信息Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.BaseMaterialInfoVo; * @author zangch * @date 2025-01-07 */ +@Repository public interface BaseMaterialInfoMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java index 9d062fd..ce49968 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java @@ -3,6 +3,8 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsHppOutStockDetail; import org.dromara.wms.domain.vo.WmsHppOutStockDetailVo; +import org.springframework.stereotype.Repository; + /** * 半成品出库Mapper接口 @@ -10,6 +12,8 @@ import org.dromara.wms.domain.vo.WmsHppOutStockDetailVo; * @author LionLi * @date 2025-01-14 */ +@Repository public interface WmsHppOutStockDetailMapper extends BaseMapperPlus { + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java index fd4cceb..ca16b80 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java @@ -1,6 +1,7 @@ package org.dromara.wms.mapper; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsHppStorageDetail; import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; @@ -14,5 +15,8 @@ import org.springframework.stereotype.Repository; */ @Repository public interface WmsHppStorageDetailMapper extends BaseMapperPlus { - + @Select("select top 1 obj_id, card_no,shelf_no,material_id,storage_num,material_code,unit_name,create_time," + + " dateadd(hh, min_parking_time, create_time) as min_time,dateadd(hh, max_parking_time, create_time) as max_time " + + "from wms_hpp_storage_detail where card_no=#{code} ") + WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java index f1c379c..cf6002b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java @@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsHppStorePlace; import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; +import org.springframework.stereotype.Repository; /** * 半成品库位Mapper接口 @@ -11,6 +12,7 @@ import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; * @author LionLi * @date 2025-01-14 */ +@Repository public interface WmsHppStorePlaceMapper extends BaseMapperPlus { @Select("select top 1 obj_id,store_id,store_place_code,store_place_name from wms_hpp_store_place where store_place_code=#{storePlaceCode}") WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java index acaf077..eb1da3b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java @@ -1,6 +1,7 @@ package org.dromara.wms.service; import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; +import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; import org.dromara.wms.domain.vo.WmsPsmInLoadVo; @@ -20,4 +21,8 @@ public interface IWmsPdaApiService { WmsHppInStockDetailVo semiSelectVehicleInfo(String code); Boolean updataInStoreRecord(WmsHppInStockDetailVo vo); + + WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code); + + Boolean semiSubmitOutInfo(WmsHppStorageDetailVo vo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java index c2bb03d..36b2c90 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.wms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; @@ -9,14 +10,12 @@ import org.dromara.common.core.utils.DateUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.translation.annotation.Translation; import org.dromara.wms.domain.*; -import org.dromara.wms.domain.vo.BaseMaterialInfoVo; -import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; -import org.dromara.wms.domain.vo.WmsOutstockRecordVo; -import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import org.dromara.wms.domain.vo.*; import org.dromara.wms.mapper.*; import org.dromara.wms.service.IWmsPdaApiService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; + import java.util.List; @RequiredArgsConstructor @@ -68,14 +67,10 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { apiMapper.bindVehicleSubmitInsertInLoadDetail(wmsPsmInLoad.getInLoadId(), productList); return true; } - - return false; } - - @Translation(type = "Exception") @Override public Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo) { @@ -87,7 +82,6 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { wmsPsmInStock.setCreateBy(LoginHelper.getUserId() + "");//创建人 int insert = wmsPsmInStockMapper.insert(wmsPsmInStock); if (insert == 1) { - System.out.println(); // 查询成品条码表 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("in_load_id", vo.getInLoadId()); @@ -115,6 +109,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { private final WmsHppInStockDetailMapper hppInStockDetailMapper;//入库记录 private final WmsHppStorageDetailMapper hppStorageDetailMapper;//库存表 private final BaseMaterialInfoMapper baseMaterialInfoMapper;//物料基础信息 + @Override public Boolean updataInStoreRecord(WmsHppInStockDetailVo vo) { LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); @@ -129,7 +124,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { BeanUtils.copyProperties(vo, hppStorageDetail); hppStorageDetail.setObjId(null); hppStorageDetail.setStorageNum(vo.getInstockNum()); - BaseMaterialInfoVo baseMaterialInfoVo= baseMaterialInfoMapper.selectVoById(vo.getMaterialId()); + BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoMapper.selectVoById(vo.getMaterialId()); hppStorageDetail.setMinParkingTime(baseMaterialInfoVo.getMinParkingTime()); hppStorageDetail.setMaxParkingTime(baseMaterialInfoVo.getMaxParkingTime()); hppStorageDetailMapper.insert(hppStorageDetail); @@ -138,4 +133,34 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService { return false; } + + /** + * 查询半成品库存信息 + * + * @param code 流水卡号 + * @return WmsHppStorageDetailVo + */ + @Override + public WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code) { + return hppStorageDetailMapper.selectHppStorageDetailInfobyCode(code); + } + private final WmsHppOutStockDetailMapper hppOutStockDetailMapper;//半成品出库记录 + @Override + public Boolean semiSubmitOutInfo(WmsHppStorageDetailVo vo) { + if (vo.getStorageNum() == vo.getOutNumber()) { + hppStorageDetailMapper.deleteById(vo.getStorePlaceId()); + } else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(WmsHppStorageDetail::getObjId, vo.getObjId()) + .set(WmsHppStorageDetail::getStorageNum, vo.getStorageNum() - vo.getOutNumber()) + .set(WmsHppStorageDetail::getUpdateTime, DateUtils.getTime()); + hppStorageDetailMapper.update(updateWrapper); + } + WmsHppOutStockDetail outStockDetail = new WmsHppOutStockDetail(); + BeanUtils.copyProperties(vo, outStockDetail); + outStockDetail.setObjId(null); + outStockDetail.setCreateBy(LoginHelper.getUsername()); + hppOutStockDetailMapper.insert(outStockDetail); + return true; + } } From 331a254762a75062444d71e0f0b40b4a2e62dd9b Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 10 Feb 2025 10:58:29 +0800 Subject: [PATCH 60/69] =?UTF-8?q?add(mes):=20=E7=94=9F=E4=BA=A7=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=96=B0=E5=A2=9E=E7=94=9F=E4=BA=A7=E6=B4=BE=E5=B7=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增生产工单新增生产派工的接口和实现 - 添加 MesProductPlanEditVo 类用于处理生产派工编辑信息 - 在控制器中添加 orderAddProductPlanList 方法处理生产派工列表新增 - 在服务实现类中添加 orderAddMesProductPlanList 方法实现生产派工列表新增逻辑 --- .../controller/ProdPlanInfoController.java | 9 +++ .../mes/domain/vo/MesProductPlanEditVo.java | 25 ++++++++ .../mes/service/IProdPlanInfoService.java | 19 +++++- .../service/impl/ProdPlanInfoServiceImpl.java | 60 ++++++++++++++++++- 4 files changed, 109 insertions(+), 4 deletions(-) create mode 100644 ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java index ef7f2ec..5da868d 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java @@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; import org.dromara.mes.domain.ProdBaseRouteProcess; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.dromara.mes.service.IProdBaseRouteProcessService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; @@ -152,4 +153,12 @@ public class ProdPlanInfoController extends BaseController { return R.ok(list); } + /** + * 生产工单新增生产派工List + */ + @PostMapping("/orderAddProductPlanList") + public R orderAddProductPlanList(@RequestBody MesProductPlanEditVo productPlanEditVo) { + return toAjax(prodPlanInfoService.orderAddMesProductPlanList(productPlanEditVo)); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java new file mode 100644 index 0000000..110646f --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java @@ -0,0 +1,25 @@ +package org.dromara.mes.domain.vo; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.bo.ProdPlanInfoBo; + +import java.util.List; + +@Data +public class MesProductPlanEditVo { + //生产工单ID + @NotBlank(message = "生产工单Id必须输入") + private Long productOrderId; + + //此次生产派工数量 + private int dispatchAmount; + + //保存的生产计划 + @NotBlank(message = "没有修改的生产派工提交") + private List mesProductPlanList; + + //待删除的生产计划ID + private Long[] toDeletedPlanIds; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java index e7758d0..74ae0f1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java @@ -1,6 +1,7 @@ package org.dromara.mes.service; import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -75,6 +76,22 @@ public interface IProdPlanInfoService { */ public String getDispatchCode(); - + /** + * 查询生产派工列表,join process + * + * @param bo 生产派工 + * @return 生产派工 + */ public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); + + + /** + * 批量新增生产工单信息 + * + * @param boList 生产工单信息列表 + * @return 是否新增成功 + */ +/* public Boolean insertBatchList(List boList);*/ + + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index e2491ea..64df864 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -1,6 +1,8 @@ package org.dromara.mes.service.impl; import org.dromara.common.constant.DatabaseConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.uuid.Seq; @@ -11,16 +13,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.mes.domain.ProdPlanInfo; import org.dromara.mes.mapper.ProdPlanInfoMapper; import org.dromara.mes.service.IProdPlanInfoService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 生产工单信息Service业务层处理 @@ -198,4 +203,53 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { } + /** + * 生产工单新增生产派工List + * + * @param mesProductPlanEditVo 生产派工VO对象 + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo) { + List prodPlanInfoList = new ArrayList<>(); +/* Long userId = LoginHelper.getUserId(); // 获取当前用户ID + Long deptId = LoginHelper.getDeptId(); // 获取当前部门ID*/ + + List mesProductPlanList = mesProductPlanEditVo.getMesProductPlanList(); + if (!ObjectUtils.isEmpty(mesProductPlanList)) { + for (ProdPlanInfoBo mesProductPlanBo : mesProductPlanList) { +/* mesProductPlanBo.setCreateBy(userId);*/ +// mesProductPlanBo.setCreateTime(DateUtils.getNowDate()); + mesProductPlanBo.setPlanCode(Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode)); + + + prodPlanInfoList.add(mesProductPlanBo); + } + } + + if (prodPlanInfoList.isEmpty()) { + throw new ServiceException("无有效的派工数据提交"); + } + + int successCount = 0; + for (ProdPlanInfoBo mesProductPlanBo : prodPlanInfoList) { + String planCode = Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode); + mesProductPlanBo.setPlanCode(planCode); + ProdPlanInfo add = MapstructUtils.convert(mesProductPlanBo, ProdPlanInfo.class); + validEntityBeforeSave(add); + //TODO:后期需调用insertByBo,会分表插入 + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + mesProductPlanBo.setPlanId(add.getPlanId()); + successCount++; + } + } + if (successCount == 0) { + throw new ServiceException("派工数据保存失败"); + } + return successCount; + } + + } From d1f4a613b2f9cc04880e30d059b8862f9b32fde0 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 10 Feb 2025 17:28:10 +0800 Subject: [PATCH 61/69] =?UTF-8?q?=E4=BB=93=E5=82=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/wms/domain/WmsConfiguration.java | 4 ++++ .../java/org/dromara/wms/domain/bo/WmsConfigurationBo.java | 4 ++++ .../java/org/dromara/wms/domain/vo/WmsConfigurationVo.java | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java index e7cfa55..014c017 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java @@ -88,6 +88,10 @@ public class WmsConfiguration { @TableField(exist = false) private String warehouseCode;//字段映射 + /** + * 审核人 + */ + private String auditBy; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java index 8acefc6..06be7de 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java @@ -72,6 +72,10 @@ public class WmsConfigurationBo extends BaseEntity { * 租户id */ private String tenantId; + /** + * 审核人 + */ + private String auditBy; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java index 96d2e5e..e87f767 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java @@ -104,5 +104,9 @@ public class WmsConfigurationVo implements Serializable { */ private String tenantId; private String warehouseCode; + /** + * 审核人 + */ + private String auditBy; } From 217276059855a63ffae07b13d7b12f8af9a02b4b Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 10 Feb 2025 19:46:21 +0800 Subject: [PATCH 62/69] =?UTF-8?q?change(mes):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=8D=95=E6=96=B0=E5=A2=9E=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E6=B4=BE=E5=B7=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ProdPlanInfoController 中为新增方法添加了 @RepeatSubmit 注解,美团GTIS防重 - 优化了 ProdPlanInfoServiceImpl 中的 orderAddMesProductPlanList 方法实现 - 增加了对空派工数据的校验 - 添加了对删除生产计划的逻辑处理 - 修改了派工数据的保存流程 --- .../controller/ProdPlanInfoController.java | 1 + .../mes/service/IProdPlanInfoService.java | 7 +++ .../service/impl/ProdPlanInfoServiceImpl.java | 45 +++++++++++-------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java index 5da868d..9f2440f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java @@ -157,6 +157,7 @@ public class ProdPlanInfoController extends BaseController { * 生产工单新增生产派工List */ @PostMapping("/orderAddProductPlanList") + @RepeatSubmit(message = "正在提交,请稍后") public R orderAddProductPlanList(@RequestBody MesProductPlanEditVo productPlanEditVo) { return toAjax(prodPlanInfoService.orderAddMesProductPlanList(productPlanEditVo)); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java index 74ae0f1..d054333 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java @@ -93,5 +93,12 @@ public interface IProdPlanInfoService { */ /* public Boolean insertBatchList(List boList);*/ + + /** + * 生产工单新增生产派工List + * + * @param mesProductPlanEditVo 生产派工VO对象 + * @return + */ public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index 64df864..027574c 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -212,42 +212,49 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { @Override @Transactional(rollbackFor = Exception.class) public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo) { - List prodPlanInfoList = new ArrayList<>(); -/* Long userId = LoginHelper.getUserId(); // 获取当前用户ID - Long deptId = LoginHelper.getDeptId(); // 获取当前部门ID*/ - + //要新增的派工数据列表 List mesProductPlanList = mesProductPlanEditVo.getMesProductPlanList(); - if (!ObjectUtils.isEmpty(mesProductPlanList)) { + if (ObjectUtils.isEmpty(mesProductPlanList)) { + throw new ServiceException("无有效的派工数据提交"); + }else { for (ProdPlanInfoBo mesProductPlanBo : mesProductPlanList) { -/* mesProductPlanBo.setCreateBy(userId);*/ -// mesProductPlanBo.setCreateTime(DateUtils.getNowDate()); + //设置编号 + mesProductPlanBo.setProductOrderId(mesProductPlanEditVo.getProductOrderId()); mesProductPlanBo.setPlanCode(Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode)); - - - prodPlanInfoList.add(mesProductPlanBo); + // 设置派工数量,从MesProductPlanEditVo获取,也可以考虑前端赋值 + mesProductPlanBo.setDispatchAmount(mesProductPlanEditVo.getDispatchAmount()); } } - if (prodPlanInfoList.isEmpty()) { - throw new ServiceException("无有效的派工数据提交"); + // 待删除的生产计划ID列表 + Long[] toDeletedPlanIds = mesProductPlanEditVo.getToDeletedPlanIds(); + Boolean isValid = false; + //是否删除成功标志 + Boolean deleteFlag = false; + if (!ObjectUtils.isEmpty(toDeletedPlanIds)) { + //TODO 待删除的生产计划ID列表是否有效,加一些验证逻辑 + isValid = true; + deleteFlag = deleteWithValidByIds(Arrays.asList(toDeletedPlanIds), isValid); + if (!deleteFlag) { + throw new ServiceException("待删除的生产工单不存在"); + } } int successCount = 0; - for (ProdPlanInfoBo mesProductPlanBo : prodPlanInfoList) { - String planCode = Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode); - mesProductPlanBo.setPlanCode(planCode); - ProdPlanInfo add = MapstructUtils.convert(mesProductPlanBo, ProdPlanInfo.class); + for (ProdPlanInfoBo productPlanBo : mesProductPlanList) { + /*TODO:后期需调用insertByBo,会分表插入*/ + ProdPlanInfo add = MapstructUtils.convert(productPlanBo, ProdPlanInfo.class); validEntityBeforeSave(add); - //TODO:后期需调用insertByBo,会分表插入 boolean flag = baseMapper.insert(add) > 0; if (flag) { - mesProductPlanBo.setPlanId(add.getPlanId()); + productPlanBo.setPlanId(add.getPlanId()); successCount++; } } - if (successCount == 0) { + if (successCount == 0 || !deleteFlag) { throw new ServiceException("派工数据保存失败"); } + return successCount; } From 716ee3d252ab8febd1c400697d13097205d0ad6b Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 10 Feb 2025 19:57:17 +0800 Subject: [PATCH 63/69] =?UTF-8?q?change(mes):=20=E5=B0=86=20MesProductPlan?= =?UTF-8?q?EditVo=20=E4=B8=AD=E7=9A=84=20dispatchAmount=20=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=BB=8E=20int=20=E6=94=B9=E4=B8=BA=20Long?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java index 110646f..87bb1dc 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java @@ -14,7 +14,7 @@ public class MesProductPlanEditVo { private Long productOrderId; //此次生产派工数量 - private int dispatchAmount; + private Long dispatchAmount; //保存的生产计划 @NotBlank(message = "没有修改的生产派工提交") From 9c5061d9d57c04059288ff1e1639445be2b02340 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Mon, 10 Feb 2025 20:56:22 +0800 Subject: [PATCH 64/69] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/dromara/wms/domain/WmsMoveOrder.java | 4 ++++ .../main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java | 1 + .../wms/service/impl/WmsAllocateOrderDetailServiceImpl.java | 2 ++ .../dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java | 2 ++ .../dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java | 1 + .../dromara/wms/service/impl/WmsInstockPrintServiceImpl.java | 2 ++ .../dromara/wms/service/impl/WmsInstockRecordServiceImpl.java | 2 ++ .../wms/service/impl/WmsInventoryCheckServiceImpl.java | 1 + .../org/dromara/wms/service/impl/WmsInventoryServiceImpl.java | 2 ++ .../org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java | 1 + .../wms/service/impl/WmsOutstockDetailServiceImpl.java | 1 + .../dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java | 1 + .../wms/service/impl/WmsPsmInLoadDetailServiceImpl.java | 2 ++ .../org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java | 2 ++ .../wms/service/impl/WmsPsmInStockDetailServiceImpl.java | 2 ++ .../dromara/wms/service/impl/WmsPsmInStockServiceImpl.java | 2 ++ .../dromara/wms/service/impl/WmsPsmStorageServiceImpl.java | 2 ++ .../wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java | 2 ++ .../dromara/wms/service/impl/WmsReturnOrderServiceImpl.java | 2 ++ 19 files changed, 34 insertions(+) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java index f455344..fbd30b3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java @@ -104,6 +104,10 @@ public class WmsMoveOrder{ */ @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + @TableField(fill = FieldFill.INSERT_UPDATE) + private String createBy; @TableField(exist = false) private String warehouseCode; @TableField(exist = false) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java index bbb5774..70e395f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java @@ -61,6 +61,7 @@ public class WmsMoveOrderBo extends BaseEntity { * 审核人 */ private String auditBy; + private String updateBy; /** * 审核时间 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java index 4c3b0c2..bc7e192 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -10,6 +10,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsAllocateOrderDetail; import org.dromara.wms.domain.WmsBaseWarehouse; @@ -129,6 +130,7 @@ public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetai public Boolean updateByBo(WmsAllocateOrderDetailBo bo) { WmsAllocateOrderDetail update = MapstructUtils.convert(bo, WmsAllocateOrderDetail.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java index 4aceeaf..01f871a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -10,6 +10,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsAllocateOrder; import org.dromara.wms.domain.WmsBaseWarehouse; @@ -191,6 +192,7 @@ public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { public Boolean updateByBo(WmsAllocateOrderBo bo) { WmsAllocateOrder update = MapstructUtils.convert(bo, WmsAllocateOrder.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java index 5e90cc5..6b0e83e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java @@ -120,6 +120,7 @@ public class WmsDeliveryNoteServiceImpl implements IWmsDeliveryNoteService { public Boolean updateByBo(WmsDeliveryNoteBo bo) { WmsDeliveryNote update = MapstructUtils.convert(bo, WmsDeliveryNote.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUserId()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java index 3c3bc18..827d2ba 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java @@ -8,6 +8,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsInstockDetail; import org.dromara.wms.domain.WmsInstockPrint; import org.dromara.wms.domain.bo.WmsInstockDetailBo; @@ -127,6 +128,7 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService { public Boolean updateByBo(WmsInstockPrintBo bo) { WmsInstockPrint update = MapstructUtils.convert(bo, WmsInstockPrint.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java index dfa06b3..f566909 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.springframework.stereotype.Service; import org.dromara.wms.domain.bo.WmsInstockRecordBo; import org.dromara.wms.domain.vo.WmsInstockRecordVo; @@ -115,6 +116,7 @@ public class WmsInstockRecordServiceImpl implements IWmsInstockRecordService { public Boolean updateByBo(WmsInstockRecordBo bo) { WmsInstockRecord update = MapstructUtils.convert(bo, WmsInstockRecord.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUserId()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java index c16ad8b..a08c6af 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java @@ -174,6 +174,7 @@ public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { public Boolean updateByBo(WmsInventoryCheckBo bo) { WmsInventoryCheck update = MapstructUtils.convert(bo, WmsInventoryCheck.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java index 13160a2..4aae4cd 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java @@ -10,6 +10,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsConfiguration; @@ -136,6 +137,7 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { public Boolean updateByBo(WmsInventoryBo bo) { WmsInventory update = MapstructUtils.convert(bo, WmsInventory.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java index dc681a8..1b7d9d3 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java @@ -161,6 +161,7 @@ public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { public Boolean updateByBo(WmsMoveOrderBo bo) { WmsMoveOrder update = MapstructUtils.convert(bo, WmsMoveOrder.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java index 10bee34..5806998 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java @@ -146,6 +146,7 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { public Boolean updateByBo(WmsOutstockDetailBo bo) { WmsOutstockDetail update = MapstructUtils.convert(bo, WmsOutstockDetail.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java index 4c2ddc5..ef5eca8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java @@ -175,6 +175,7 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { public Boolean updateByBo(WmsOutstockOrderBo bo) { WmsOutstockOrder update = MapstructUtils.convert(bo, WmsOutstockOrder.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java index cedc10c..9b015d9 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmInLoadDetail; import org.dromara.wms.domain.bo.WmsPsmInLoadDetailBo; import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; @@ -110,6 +111,7 @@ public class WmsPsmInLoadDetailServiceImpl implements IWmsPsmInLoadDetailService public Boolean updateByBo(WmsPsmInLoadDetailBo bo) { WmsPsmInLoadDetail update = MapstructUtils.convert(bo, WmsPsmInLoadDetail.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java index a9d7f2b..caef71a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmInLoad; import org.dromara.wms.domain.bo.WmsPsmInLoadBo; import org.dromara.wms.domain.vo.WmsPsmInLoadVo; @@ -114,6 +115,7 @@ public class WmsPsmInLoadServiceImpl implements IWmsPsmInLoadService { public Boolean updateByBo(WmsPsmInLoadBo bo) { WmsPsmInLoad update = MapstructUtils.convert(bo, WmsPsmInLoad.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java index 1d7a105..524d3ac 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmInStockDetail; import org.dromara.wms.domain.bo.WmsPsmInStockDetailBo; import org.dromara.wms.domain.vo.WmsPsmInStockDetailVo; @@ -110,6 +111,7 @@ public class WmsPsmInStockDetailServiceImpl implements IWmsPsmInStockDetailServi public Boolean updateByBo(WmsPsmInStockDetailBo bo) { WmsPsmInStockDetail update = MapstructUtils.convert(bo, WmsPsmInStockDetail.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java index ca64c32..7029644 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmInStock; import org.dromara.wms.domain.bo.WmsPsmInStockBo; import org.dromara.wms.domain.vo.WmsPsmInStockVo; @@ -114,6 +115,7 @@ public class WmsPsmInStockServiceImpl implements IWmsPsmInStockService { public Boolean updateByBo(WmsPsmInStockBo bo) { WmsPsmInStock update = MapstructUtils.convert(bo, WmsPsmInStock.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java index 1146d56..46e132e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsPsmStorage; import org.dromara.wms.domain.bo.WmsPsmStorageBo; import org.dromara.wms.domain.vo.WmsPsmStorageVo; @@ -112,6 +113,7 @@ public class WmsPsmStorageServiceImpl implements IWmsPsmStorageService { public Boolean updateByBo(WmsPsmStorageBo bo) { WmsPsmStorage update = MapstructUtils.convert(bo, WmsPsmStorage.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java index dc2cbfe..d7f7e69 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsInstockDetail; import org.dromara.wms.domain.bo.BaseMaterialInfoBo; import org.dromara.wms.domain.bo.WmsInstockDetailBo; @@ -128,6 +129,7 @@ public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetai public Boolean updateByBo(WmsPurchaseOrderDetailBo bo) { WmsPurchaseOrderDetail update = MapstructUtils.convert(bo, WmsPurchaseOrderDetail.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUserId()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java index 80b1ced..3302b34 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java @@ -10,6 +10,7 @@ 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.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsOutstockRecord; @@ -152,6 +153,7 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { public Boolean updateByBo(WmsReturnOrderBo bo) { WmsReturnOrder update = MapstructUtils.convert(bo, WmsReturnOrder.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } From 269f41892329cae568cf7fa3f0ca54f5ccc90e2b Mon Sep 17 00:00:00 2001 From: zch Date: Mon, 10 Feb 2025 21:04:54 +0800 Subject: [PATCH 65/69] =?UTF-8?q?add(hwmom-mes):=E4=B8=BA=20BaseClassTeamI?= =?UTF-8?q?nfo=20=E5=8F=8A=E5=85=B6=20VO=20=E7=B1=BB=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=8F=AD=E7=BB=84=E8=B4=9F=E8=B4=A3=E4=BA=BA=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 BaseClassTeamInfo 和 BaseClassTeamInfoVo 类中添加 teamHeadName 字段,用于存储班组负责人的名称 - 为映射字段添加注释 --- .../org/dromara/mes/domain/BaseClassTeamInfo.java | 12 +++++++++--- .../dromara/mes/domain/vo/BaseClassTeamInfoVo.java | 14 ++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java index 90d9920..f6f17cf 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java @@ -72,18 +72,24 @@ public class BaseClassTeamInfo extends TenantEntity { * BaseShiftInfo的班次名称 */ @TableField(exist = false) - private String shiftName; + private String shiftName;//映射字段 /** * ProdBaseStationInfo工位名称 */ @TableField(exist = false) - private String stationName; + private String stationName;//映射字段 /** * ProdBaseProcessInfo工序名称 */ @TableField(exist = false) - private String processName; + private String processName;//映射字段 + + /** + * 班组负责人 + */ + @TableField(exist = false) + private String teamHeadName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java index 55e675a..411bd94 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java @@ -116,23 +116,29 @@ public class BaseClassTeamInfoVo implements Serializable { * 更新时间 */ @ExcelProperty(value = "更新时间") - private Date updateTime; + private Date updateTime;//映射字段 /** * 班次名称 */ @ExcelProperty(value = "班次名称") - private String shiftName; + private String shiftName;//映射字段 /** * 工位名称 */ @ExcelProperty(value = "工位名称") - private String stationName; + private String stationName;//映射字段 /** * 工序名称 */ @ExcelProperty(value = "工序名称") - private String processName; + private String processName;//映射字段 + + /** + * 班组负责人名称 + */ + @ExcelProperty(value = "班组负责人名称") + private String teamHeadName;//映射字段 } From 97d0d53509e5842e6d0b29e110ebb750f024b90d Mon Sep 17 00:00:00 2001 From: yinq Date: Wed, 12 Feb 2025 10:54:55 +0800 Subject: [PATCH 66/69] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E5=88=99=E3=80=81=E7=94=9F=E6=88=90=E7=BC=96?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysCodeRuleController.java | 127 ++++++++++++ .../dromara/system/domain/SysCodeRule.java | 80 +++++++ .../system/domain/bo/SysCodeRuleBo.java | 84 ++++++++ .../system/domain/vo/SysCodeRuleVo.java | 100 +++++++++ .../system/mapper/SysCodeRuleMapper.java | 15 ++ .../system/service/ISysCodeRuleService.java | 77 +++++++ .../service/impl/SysCodeRuleServiceImpl.java | 196 ++++++++++++++++++ .../mapper/system/SysCodeRuleMapper.xml | 7 + 8 files changed, 686 insertions(+) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java new file mode 100644 index 0000000..e8c12f0 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java @@ -0,0 +1,127 @@ +package org.dromara.system.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.system.service.ISysCodeRuleService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 编码规则 + * 前端访问路由地址为:/system/codeRule + * + * @author Yinq + * @date 2025-02-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/codeRule") +public class SysCodeRuleController extends BaseController { + + private final ISysCodeRuleService sysCodeRuleService; + + /** + * 查询编码规则列表 + */ + @SaCheckPermission("system:codeRule:list") + @GetMapping("/list") + public TableDataInfo list(SysCodeRuleBo bo, PageQuery pageQuery) { + return sysCodeRuleService.queryPageList(bo, pageQuery); + } + + /** + * 导出编码规则列表 + */ + @SaCheckPermission("system:codeRule:export") + @Log(title = "编码规则", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysCodeRuleBo bo, HttpServletResponse response) { + List list = sysCodeRuleService.queryList(bo); + ExcelUtil.exportExcel(list, "编码规则", SysCodeRuleVo.class, response); + } + + /** + * 获取编码规则详细信息 + * + * @param codeRuleId 主键 + */ + @SaCheckPermission("system:codeRule:query") + @GetMapping("/{codeRuleId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long codeRuleId) { + return R.ok(sysCodeRuleService.queryById(codeRuleId)); + } + + /** + * 新增编码规则 + */ + @SaCheckPermission("system:codeRule:add") + @Log(title = "编码规则", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysCodeRuleBo bo) { + return toAjax(sysCodeRuleService.insertByBo(bo)); + } + + /** + * 修改编码规则 + */ + @SaCheckPermission("system:codeRule:edit") + @Log(title = "编码规则", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysCodeRuleBo bo) { + return toAjax(sysCodeRuleService.updateByBo(bo)); + } + + /** + * 删除编码规则 + * + * @param codeRuleIds 主键串 + */ + @SaCheckPermission("system:codeRule:remove") + @Log(title = "编码规则", businessType = BusinessType.DELETE) + @DeleteMapping("/{codeRuleIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] codeRuleIds) { + return toAjax(sysCodeRuleService.deleteWithValidByIds(List.of(codeRuleIds), true)); + } + + + /** + * 下拉框查询编码规则列表 + */ + @GetMapping("/getSysCodeRuleList") + public R> getSysCodeRuleList(SysCodeRuleBo bo) { + List list = sysCodeRuleService.queryList(bo); + return R.ok(list); + } + + /** + * 获取生成的编码规则 + * @param bo 编码规则编码 + * @return + */ + @GetMapping("/getRuleGenerateCode") + public R getRuleGenerateCode(SysCodeRuleBo bo) { + return R.ok(sysCodeRuleService.getRuleGenerateCode(bo)); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java new file mode 100644 index 0000000..8173162 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java @@ -0,0 +1,80 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 编码规则对象 sys_code_rule + * + * @author Yinq + * @date 2025-02-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_code_rule") +public class SysCodeRule extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编码规则ID + */ + @TableId(value = "code_rule_id", type = IdType.AUTO) + private Long codeRuleId; + + /** + * 编码规则编码 + */ + private String codeRuleCode; + + /** + * 编码规则字段 + */ + private String codeRuleName; + + /** + * 规则前缀 + */ + private String rulePrefix; + + /** + * 序列号初始长度 + */ + private Long sequenceLength; + + /** + * 规则模板 + */ + private String ruleTemplate; + + /** + * 更新标识(1不更新 2每日更新) + */ + private String renewFlag; + + /** + * 当前编码 + */ + private String currentCode; + + /** + * 下个编码 + */ + private String nextCode; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java new file mode 100644 index 0000000..ed07c92 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java @@ -0,0 +1,84 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysCodeRule; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 编码规则业务对象 sys_code_rule + * + * @author Yinq + * @date 2025-02-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysCodeRule.class, reverseConvertGenerate = false) +public class SysCodeRuleBo extends BaseEntity { + + /** + * 编码规则ID + */ + private Long codeRuleId; + + /** + * 编码规则编码 + */ + @NotBlank(message = "编码规则编码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String codeRuleCode; + + /** + * 编码规则字段 + */ + @NotBlank(message = "编码规则字段不能为空", groups = {AddGroup.class, EditGroup.class}) + private String codeRuleName; + + /** + * 规则前缀 + */ + @NotBlank(message = "规则前缀不能为空", groups = {AddGroup.class, EditGroup.class}) + private String rulePrefix; + + /** + * 序列号初始长度 + */ + private Long sequenceLength; + + /** + * 规则模板 + */ + private String ruleTemplate; + + /** + * 更新标识(1不更新 2每日更新) + */ + @NotBlank(message = "更新标识(1不更新 2每日更新)不能为空", groups = {AddGroup.class, EditGroup.class}) + private String renewFlag; + + /** + * 当前编码 + */ + private String currentCode; + + /** + * 下个编码 + */ + private String nextCode; + + /** + * 激活标识(1是 0否) + */ + @NotBlank(message = "激活标识(1是 0否)不能为空", groups = {AddGroup.class, EditGroup.class}) + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java new file mode 100644 index 0000000..aaf6c63 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java @@ -0,0 +1,100 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysCodeRule; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 编码规则视图对象 sys_code_rule + * + * @author Yinq + * @date 2025-02-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysCodeRule.class) +public class SysCodeRuleVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编码规则ID + */ + @ExcelProperty(value = "编码规则ID") + private Long codeRuleId; + + /** + * 编码规则编码 + */ + @ExcelProperty(value = "编码规则编码") + private String codeRuleCode; + + /** + * 编码规则字段 + */ + @ExcelProperty(value = "编码规则字段") + private String codeRuleName; + + /** + * 规则前缀 + */ + @ExcelProperty(value = "规则前缀") + private String rulePrefix; + + /** + * 序列号初始长度 + */ + @ExcelProperty(value = "序列号初始长度") + private Long sequenceLength; + + /** + * 规则模板 + */ + @ExcelProperty(value = "规则模板") + private String ruleTemplate; + + /** + * 更新标识(1不更新 2每日更新) + */ + @ExcelProperty(value = "更新标识(1不更新 2每日更新)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "renew_flag") + private String renewFlag; + + /** + * 当前编码 + */ + @ExcelProperty(value = "当前编码") + private String currentCode; + + /** + * 下个编码 + */ + @ExcelProperty(value = "下个编码") + private String nextCode; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java new file mode 100644 index 0000000..4bd84b4 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysCodeRule; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 编码规则Mapper接口 + * + * @author Yinq + * @date 2025-02-11 + */ +public interface SysCodeRuleMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java new file mode 100644 index 0000000..d5c6b57 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java @@ -0,0 +1,77 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysCodeRule; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 编码规则Service接口 + * + * @author Yinq + * @date 2025-02-11 + */ +public interface ISysCodeRuleService { + + /** + * 查询编码规则 + * + * @param codeRuleId 主键 + * @return 编码规则 + */ + SysCodeRuleVo queryById(Long codeRuleId); + + /** + * 分页查询编码规则列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 编码规则分页列表 + */ + TableDataInfo queryPageList(SysCodeRuleBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的编码规则列表 + * + * @param bo 查询条件 + * @return 编码规则列表 + */ + List queryList(SysCodeRuleBo bo); + + /** + * 新增编码规则 + * + * @param bo 编码规则 + * @return 是否新增成功 + */ + Boolean insertByBo(SysCodeRuleBo bo); + + /** + * 修改编码规则 + * + * @param bo 编码规则 + * @return 是否修改成功 + */ + Boolean updateByBo(SysCodeRuleBo bo); + + /** + * 校验并批量删除编码规则信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取生成的编码规则 + * @param bo 编码规则编码 + * @return + */ + String getRuleGenerateCode(SysCodeRuleBo bo); + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java new file mode 100644 index 0000000..4ba6880 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java @@ -0,0 +1,196 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.system.domain.SysCodeRule; +import org.dromara.system.mapper.SysCodeRuleMapper; +import org.dromara.system.service.ISysCodeRuleService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 编码规则Service业务层处理 + * + * @author Yinq + * @date 2025-02-11 + */ +@RequiredArgsConstructor +@Service +public class SysCodeRuleServiceImpl implements ISysCodeRuleService { + + private final SysCodeRuleMapper baseMapper; + + /** + * 查询编码规则 + * + * @param codeRuleId 主键 + * @return 编码规则 + */ + @Override + public SysCodeRuleVo queryById(Long codeRuleId) { + return baseMapper.selectVoById(codeRuleId); + } + + /** + * 分页查询编码规则列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 编码规则分页列表 + */ + @Override + public TableDataInfo queryPageList(SysCodeRuleBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的编码规则列表 + * + * @param bo 查询条件 + * @return 编码规则列表 + */ + @Override + public List queryList(SysCodeRuleBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(SysCodeRuleBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysCodeRule.class) + .selectAll(SysCodeRule.class) + .eq(bo.getCodeRuleId() != null, SysCodeRule::getCodeRuleId, bo.getCodeRuleId()) + .eq(StringUtils.isNotBlank(bo.getCodeRuleCode()), SysCodeRule::getCodeRuleCode, bo.getCodeRuleCode()) + .like(StringUtils.isNotBlank(bo.getCodeRuleName()), SysCodeRule::getCodeRuleName, bo.getCodeRuleName()) + .eq(StringUtils.isNotBlank(bo.getRulePrefix()), SysCodeRule::getRulePrefix, bo.getRulePrefix()) + .eq(StringUtils.isNotBlank(bo.getRuleTemplate()), SysCodeRule::getRuleTemplate, bo.getRuleTemplate()) + .eq(StringUtils.isNotBlank(bo.getRenewFlag()), SysCodeRule::getRenewFlag, bo.getRenewFlag()) + .eq(StringUtils.isNotBlank(bo.getCurrentCode()), SysCodeRule::getCurrentCode, bo.getCurrentCode()) + .eq(StringUtils.isNotBlank(bo.getNextCode()), SysCodeRule::getNextCode, bo.getNextCode()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysCodeRule::getActiveFlag, bo.getActiveFlag()) + .orderByAsc(SysCodeRule::getCreateTime); + return lqw; + } + + /** + * 新增编码规则 + * + * @param bo 编码规则 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysCodeRuleBo bo) { + SysCodeRule add = MapstructUtils.convert(bo, SysCodeRule.class); + validEntityBeforeSave(add); + generateCode(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setCodeRuleId(add.getCodeRuleId()); + } + return flag; + } + + /** + * 修改编码规则 + * + * @param bo 编码规则 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysCodeRuleBo bo) { + SysCodeRule update = MapstructUtils.convert(bo, SysCodeRule.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysCodeRule entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除编码规则信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 获取生成的编码规则 + * @param bo 编码规则编码 + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String getRuleGenerateCode(SysCodeRuleBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + SysCodeRule sysCodeRule = baseMapper.selectOne(lqw); + SysCodeRule codeRule = generateCode(sysCodeRule); + baseMapper.updateById(codeRule); + return codeRule.getCurrentCode(); + } + + public SysCodeRule generateCode(SysCodeRule sysCodeRule) { + if (StringUtils.isNull(sysCodeRule)){ + return null; + } + Long sequenceLength = sysCodeRule.getSequenceLength(); + String ruleTemplate = sysCodeRule.getRuleTemplate(); + String rulePrefix = sysCodeRule.getRulePrefix(); + String nextCode = sysCodeRule.getNextCode(); + StringBuilder code = new StringBuilder(); + code.append(rulePrefix); + if (sysCodeRule.getRenewFlag().equals("2")){ + //每日更新 + String dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date()); + code.append(dateToStr); + } + long seq = 1L; + // 截取序列号的前 sequenceLength 位 + if (StringUtils.isNotEmpty(nextCode)){ + String substring = nextCode.substring(nextCode.length() - sequenceLength.intValue()); + seq = Long.parseLong(substring) + 1; + } + //序列号 + code.append(formatSequence(sequenceLength, seq)); + sysCodeRule.setCurrentCode(sysCodeRule.getNextCode()); + sysCodeRule.setNextCode(code.toString()); + return sysCodeRule; + } + + public static String formatSequence(Long sequenceLength, Long seq) { + String seqStr = String.valueOf(seq); + if (seqStr.length() >= sequenceLength) { + return seqStr; + } + return String.format("%0" + sequenceLength + "d", seq); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml new file mode 100644 index 0000000..ea6f5a5 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml @@ -0,0 +1,7 @@ + + + + + From f24e2ecb97cc0abe96e478b7ea5a714be8ab6fe0 Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 14 Feb 2025 13:53:17 +0800 Subject: [PATCH 67/69] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=BC=96=E7=A0=81=E8=A7=84=E5=88=99=E3=80=81Dubbo?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E7=94=9F=E6=88=90=E8=AE=A2=E5=8D=95=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/api/RemoteCodeRuleService.java | 17 ++++++++++ .../common/core/constant/SysConstants.java | 21 ++++++++++++ .../mes/domain/bo/ProdOrderInfoBo.java | 1 - .../impl/ProdOrderInfoServiceImpl.java | 11 +++++++ .../dubbo/RemoteCodeRuleServiceImpl.java | 33 +++++++++++++++++++ .../service/impl/SysCodeRuleServiceImpl.java | 21 ++++++++---- 6 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java new file mode 100644 index 0000000..cbab9e4 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java @@ -0,0 +1,17 @@ +package org.dromara.system.api; + +/** + * 编码规则服务 + * + * @author Yinq + */ +public interface RemoteCodeRuleService { + + /** + * 通过编码规则编码获取编码 + * @param codeRuleCode 编码规则编码 + * @return currentCode + */ + String selectCodeRuleCode(String codeRuleCode); + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java new file mode 100644 index 0000000..429b078 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java @@ -0,0 +1,21 @@ +package org.dromara.common.core.constant; + +/** + * SYS通用常量信息 + * + * @author ruoyi + */ +public interface SysConstants { + + /** + * SYS规则编码:更新标识(1不更新) + */ + String SYS_RENEW_FLAG_NO = "1"; + + /** + * SYS规则编码:(2每日更新) + */ + String SYS_RENEW_FLAG_DAY = "2"; + +} + diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java index 1d3e926..28b495e 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java @@ -32,7 +32,6 @@ public class ProdOrderInfoBo extends BaseEntity { /** * 订单编号 */ - @NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class}) private String orderCode; /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java index fb05555..4dcb0ef 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -11,6 +12,7 @@ import lombok.RequiredArgsConstructor; import org.dromara.mes.domain.*; import org.dromara.mes.domain.vo.BaseMaterialInfoVo; import org.dromara.mes.mapper.*; +import org.dromara.system.api.RemoteCodeRuleService; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; @@ -33,9 +35,16 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { private final ProdOrderInfoMapper baseMapper; private final ProdBaseProdLineInfoMapper prodBaseProdLineInfoMapper; + private final ProdBaseRouteMapper prodBaseRouteMapper; + private final ProdBaseProcessInfoMapper prodBaseProcessInfoMapper; + private final BaseMaterialInfoMapper baseMaterialInfoMapper; + + @DubboReference + private final RemoteCodeRuleService remoteCodeRuleService; + /** * 查询生产订单信息 * @@ -140,6 +149,8 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { */ @Override public Boolean insertByBo(ProdOrderInfoBo bo) { + String orderCode = remoteCodeRuleService.selectCodeRuleCode("1"); + bo.setOrderCode(orderCode); ProdOrderInfo add = MapstructUtils.convert(bo, ProdOrderInfo.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java new file mode 100644 index 0000000..35eb56b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java @@ -0,0 +1,33 @@ +package org.dromara.system.dubbo; + +import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.system.api.RemoteCodeRuleService; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.system.service.ISysCodeRuleService; +import org.springframework.stereotype.Service; + +/** + * 编码规则服务 + * + * @author Yinq + */ +@RequiredArgsConstructor +@Service +@DubboService +public class RemoteCodeRuleServiceImpl implements RemoteCodeRuleService { + + private final ISysCodeRuleService sysCodeRuleService; + + /** + * 通过编码规则编码获取编码 + * @param codeRuleCode 编码规则编码 + * @return currentCode + */ + @Override + public String selectCodeRuleCode(String codeRuleCode) { + SysCodeRuleBo bo = new SysCodeRuleBo(); + bo.setCodeRuleCode(codeRuleCode); + return sysCodeRuleService.getRuleGenerateCode(bo); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java index 4ba6880..eb41a21 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.system.service.impl; +import org.dromara.common.core.constant.SysConstants; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -8,7 +9,6 @@ import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.dromara.system.domain.bo.SysCodeRuleBo; @@ -158,7 +158,7 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService { } public SysCodeRule generateCode(SysCodeRule sysCodeRule) { - if (StringUtils.isNull(sysCodeRule)){ + if (StringUtils.isNull(sysCodeRule)) { return null; } Long sequenceLength = sysCodeRule.getSequenceLength(); @@ -167,14 +167,23 @@ public class SysCodeRuleServiceImpl implements ISysCodeRuleService { String nextCode = sysCodeRule.getNextCode(); StringBuilder code = new StringBuilder(); code.append(rulePrefix); - if (sysCodeRule.getRenewFlag().equals("2")){ + String dateToStr = null; + if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_DAY)) { //每日更新 - String dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date()); + dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date()); code.append(dateToStr); + // 如果 nextCode 不包含 dateToStr,说明是新的日期 + if (nextCode == null || !nextCode.contains(dateToStr)) { + String cCode = code + formatSequence(sequenceLength, 1L); + String nCode = code + formatSequence(sequenceLength, 2L); + sysCodeRule.setCurrentCode(cCode); + sysCodeRule.setNextCode(nCode); + return sysCodeRule; + } } long seq = 1L; - // 截取序列号的前 sequenceLength 位 - if (StringUtils.isNotEmpty(nextCode)){ + if ((StringUtils.isNotEmpty(nextCode) && StringUtils.isNotEmpty(dateToStr) && nextCode.contains(dateToStr)) + || sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_NO)) { String substring = nextCode.substring(nextCode.length() - sequenceLength.intValue()); seq = Long.parseLong(substring) + 1; } From ff7b0e4c43b65a6ad6ddba6ec1dca6d831e69696 Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Fri, 14 Feb 2025 14:43:27 +0800 Subject: [PATCH 68/69] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java index 70e395f..af99c2d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java @@ -61,7 +61,7 @@ public class WmsMoveOrderBo extends BaseEntity { * 审核人 */ private String auditBy; - private String updateBy; +// private String updateBy; /** * 审核时间 From 4b02b3f775628b670a2472af9ad58421b34ec24b Mon Sep 17 00:00:00 2001 From: "maxw@mesnac.com" Date: Fri, 14 Feb 2025 16:53:52 +0800 Subject: [PATCH 69/69] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsAllocateOrderDetailController.java | 12 ++++++++++-- .../wms/service/impl/WmsInventoryServiceImpl.java | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java index 61ad983..87d909e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java @@ -103,7 +103,11 @@ public class WmsAllocateOrderDetailController extends BaseController { @PathVariable Long[] aoDIds) { return toAjax(wmsAllocateOrderDetailService.deleteWithValidByIds(List.of(aoDIds), true)); } - + /** + * 根据主键删除调拨子 + * + * @param aoDId 主键串 + */ @SaCheckPermission("system:allocateOrderDetail:remove") @Log(title = "调拨子", businessType = BusinessType.DELETE) @DeleteMapping("removeDetail/{aoDId}") @@ -111,7 +115,11 @@ public class WmsAllocateOrderDetailController extends BaseController { @PathVariable Long aoDId) { return toAjax(wmsAllocateOrderDetailService.deleteById(aoDId)); } - + /** + * 根据调拨单主键查询调拨单明细 + * + * @param aoDId 主键串 + */ @GetMapping("selectAllocateDetails") public R> selectAllocateDetails(Long aoDId){ return R.ok(wmsAllocateOrderDetailService.selectAllocateDetails()); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java index 4aae4cd..6a6cdbb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java @@ -175,7 +175,8 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { MPJLambdaWrapper lqw = new MPJLambdaWrapper<>(); lqw.selectAll(WmsInventory.class).select(BaseMaterialInfo::getMaterialCode) .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsInventory::getMaterialId); - lqw.eq(WmsInventory::getLocationCode,bo.getLocationCode()); + lqw.eq(WmsInventory::getLocationCode,bo.getLocationCode()) + .eq(WmsInventory::getMaterialCategories,bo.getMaterialCategories()); return baseMapper.selectVoList(lqw); }