diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/BaseMaterialCategoryController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/BaseMaterialCategoryController.java new file mode 100644 index 00000000..130929f7 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/BaseMaterialCategoryController.java @@ -0,0 +1,118 @@ +package org.dromara.wms.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +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.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.wms.domain.bo.BaseMaterialCategoryBo; +import org.dromara.wms.domain.vo.BaseMaterialCategoryVo; +import org.dromara.wms.service.IBaseMaterialCategoryService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 物料大类信息 + * 前端访问路由地址为:/wms/baseMaterialCategory + * + * @author xins + * @date 2025-02-21 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/baseMaterialCategory") +public class BaseMaterialCategoryController extends BaseController { + + private final IBaseMaterialCategoryService baseMaterialCategoryService; + + /** + * 查询物料大类信息列表 + */ + @SaCheckPermission("mes:baseMaterialCategory:list") + @GetMapping("/list") + public TableDataInfo list(BaseMaterialCategoryBo bo, PageQuery pageQuery) { + return baseMaterialCategoryService.queryPageList(bo, pageQuery); + } + + /** + * 导出物料大类信息列表 + */ + @SaCheckPermission("mes:baseMaterialCategory:export") + @Log(title = "物料大类信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseMaterialCategoryBo bo, HttpServletResponse response) { + List list = baseMaterialCategoryService.queryList(bo); + ExcelUtil.exportExcel(list, "物料大类信息", BaseMaterialCategoryVo.class, response); + } + + /** + * 获取物料大类信息详细信息 + * + * @param materialCategoryId 主键 + */ + @SaCheckPermission("mes:baseMaterialCategory:query") + @GetMapping("/{materialCategoryId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long materialCategoryId) { + return R.ok(baseMaterialCategoryService.queryById(materialCategoryId)); + } + + /** + * 新增物料大类信息 + */ + @SaCheckPermission("mes:baseMaterialCategory:add") + @Log(title = "物料大类信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseMaterialCategoryBo bo) { + return toAjax(baseMaterialCategoryService.insertByBo(bo)); + } + + /** + * 修改物料大类信息 + */ + @SaCheckPermission("mes:baseMaterialCategory:edit") + @Log(title = "物料大类信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseMaterialCategoryBo bo) { + return toAjax(baseMaterialCategoryService.updateByBo(bo)); + } + + /** + * 删除物料大类信息 + * + * @param materialCategoryIds 主键串 + */ + @SaCheckPermission("mes:baseMaterialCategory:remove") + @Log(title = "物料大类信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{materialCategoryIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] materialCategoryIds) { + return toAjax(baseMaterialCategoryService.deleteWithValidByIds(List.of(materialCategoryIds), true)); + } + + + /** + * 下拉框查询物料大类信息列表 + */ + + @GetMapping("/getBaseMaterialCategoryList") + public R> getBaseMaterialCategoryList(BaseMaterialCategoryBo bo) { + List list = baseMaterialCategoryService.queryList(bo); + return R.ok(list); + } +} 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 57099d18..925ee63e 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 @@ -84,8 +84,8 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { @Override public TableDataInfo queryPageList(WmsInstockOrderBo bo, PageQuery pageQuery) { // LambdaQueryWrapper lqw = buildQueryWrapper(bo); - MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); - lqw.orderByDesc(WmsInstockOrder::getCreateTime); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); +/* lqw.orderByDesc(WmsInstockOrder::getCreateTime);*/ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -98,23 +98,47 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { */ @Override public List queryList(WmsInstockOrderBo bo) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - private MPJLambdaWrapper buildJoinQueryWrapper(WmsInstockOrderBo bo) { + + private MPJLambdaWrapper buildQueryWrapper(WmsInstockOrderBo bo) { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInstockOrder.class) + .selectAll(WmsInstockOrder.class) // 关联表查询物料大类名称 .select(BaseMaterialCategory::getMaterialCategoryName) .leftJoin(BaseMaterialCategory.class, BaseMaterialCategory::getMaterialCategoryId, WmsInstockOrder::getMaterialCategoryId) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsInstockOrder::getWarehouseId) + + .eq(bo.getInstockId() != null, WmsInstockOrder::getInstockId, bo.getInstockId()) + .eq(StringUtils.isNotBlank(bo.getInstockCode()), WmsInstockOrder::getInstockCode, bo.getInstockCode()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsInstockOrder::getMaterialCategoryId, bo.getMaterialCategoryId()) + .eq(StringUtils.isNotBlank(bo.getInstockType()), WmsInstockOrder::getInstockType, bo.getInstockType()) + .eq(StringUtils.isNotBlank(bo.getOrderNo()), WmsInstockOrder::getOrderNo, bo.getOrderNo()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInstockOrder::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInstockOrder::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInstockOrder::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInstockOrder::getAuditComments, bo.getAuditComments()) + .eq(bo.getWarehouseId() != null, WmsInstockOrder::getWarehouseId, bo.getWarehouseId()) + .orderByDesc(WmsInstockOrder::getCreateTime); + return lqw; + } + + + private MPJLambdaWrapper buildJoinQueryWrapper(WmsInstockOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInstockOrder.class) + .selectAll(WmsInstockOrder.class) .select(WmsBaseWarehouse::getWarehouseCode) .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsInstockOrder::getWarehouseId); lqw.eq(bo.getInstockId() != null, WmsInstockOrder::getInstockId, bo.getInstockId()); lqw.eq(StringUtils.isNotBlank(bo.getInstockCode()), WmsInstockOrder::getInstockCode, bo.getInstockCode()); - lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsInstockOrder::getMaterialCategoryId, bo.getMaterialCategoryId()); + lqw.eq(bo.getMaterialCategoryId() != null, WmsInstockOrder::getMaterialCategoryId, bo.getMaterialCategoryId()); lqw.eq(StringUtils.isNotBlank(bo.getInstockType()), WmsInstockOrder::getInstockType, bo.getInstockType()); lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), WmsInstockOrder::getOrderNo, bo.getOrderNo()); lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInstockOrder::getAuditBy, bo.getAuditBy()); @@ -124,7 +148,9 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { lqw.eq(bo.getWarehouseId() != null, WmsInstockOrder::getWarehouseId, bo.getWarehouseId()); return lqw; } - private LambdaQueryWrapper buildQueryWrapper(WmsInstockOrderBo bo) { + + +/* private LambdaQueryWrapper buildQueryWrapper(WmsInstockOrderBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(bo.getInstockId() != null, WmsInstockOrder::getInstockId, bo.getInstockId()); @@ -138,7 +164,7 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInstockOrder::getAuditComments, bo.getAuditComments()); lqw.eq(bo.getWarehouseId() != null, WmsInstockOrder::getWarehouseId, bo.getWarehouseId()); return lqw; - } + }*/ /** * 新增入库单 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 4b45ed5a..492ca052 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 @@ -61,7 +61,7 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService { public TableDataInfo queryPageList(WmsInstockPrintBo bo, PageQuery pageQuery) { /* LambdaQueryWrapper lqw = buildQueryWrapper(bo);*/ MPJLambdaWrapper lqw = buildQueryWrapper(bo); - lqw.orderByDesc(WmsInstockPrint::getCreateTime); +/* lqw.orderByDesc(WmsInstockPrint::getCreateTime);*/ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } 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 425a14f0..7b09a6f2 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 @@ -103,6 +103,11 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventory.class) .selectAll(WmsInventory.class) + + // 关联表查询物料大类名称 + .select(BaseMaterialCategory::getMaterialCategoryName) + .leftJoin(BaseMaterialCategory.class, BaseMaterialCategory::getMaterialCategoryId, WmsInventory::getMaterialCategoryId) + .select(WmsBaseWarehouse::getWarehouseCode) .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsInventory::getStoreId); lqw.eq(bo.getInventoryId() != null, WmsInventory::getInventoryId, bo.getInventoryId()); 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 0606b890..1d1f3251 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 @@ -29,13 +29,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" MAX(x.lock_state) lock_state, MAX(x.material_categories) material_categories, MAX(x.location_code) locationCode, - MAX(x.batch_code) batchCode + MAX(x.batch_code) batchCode, + MAX(bmc.material_category_name) material_category_name FROM hwmom.dbo.wms_inventory x left join base_material_info b on x.material_id = b.material_id left join wms_base_warehouse c on x.warehouse_id = c.warehouse_id + left join base_material_category bmc on + x.material_categories = bmc.material_category_id and x.warehouse_id = #{entity.warehouseId}