no message

main
HUOJIN\92525 2026-03-13 20:21:48 +08:00
parent b3c5a94cfe
commit cdaf0fce14
6 changed files with 297 additions and 379 deletions

View File

@ -4,7 +4,10 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.cpte.modules.basic.dto.AreaDTO; import org.cpte.modules.basic.dto.AreaDTO;
import org.cpte.modules.basic.entity.Area; import org.cpte.modules.basic.entity.Area;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
@ -18,6 +21,8 @@ import org.springframework.beans.BeanUtils;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
@ -47,90 +52,26 @@ public class AreaController extends JeecgController<Area, IAreaService> {
*/ */
@Operation(summary = "库区 - 分页列表查询") @Operation(summary = "库区 - 分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<AreaDTO>> queryPageList(Area area, public Result<IPage<Area>> queryPageList(Area area,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "keyword", required = false) String keyword, @RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name = "areaCode", required = false) String areaCode, @RequestParam(name = "areaCode", required = false) String areaCode,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<Area> queryWrapper = QueryGenerator.initQueryWrapper(area, req.getParameterMap()); QueryWrapper<Area> queryWrapper = QueryGenerator.initQueryWrapper(area, req.getParameterMap());
// 如果提供了 keyword则同时对 areaCode 和 areaName 进行模糊搜索 // 如果提供了 keyword则同时对 areaCode 和 areaName 进行模糊搜索
if (StringUtils.isNotBlank(keyword)) { if (StringUtils.isNotBlank(keyword)) {
queryWrapper.and(wrapper -> wrapper.likeRight("area_code", keyword).or().likeRight("area_name", keyword)); queryWrapper.and(wrapper -> wrapper.likeRight("area_code", keyword).or().likeRight("area_name", keyword));
} }
if(StringUtils.isNotBlank(areaCode)){ if (StringUtils.isNotBlank(areaCode)) {
List<String> areaCodes= Arrays.asList(areaCode.split(",")); List<String> areaCodes = Arrays.asList(areaCode.split(","));
queryWrapper.in("area_code", areaCodes); queryWrapper.in("area_code", areaCodes);
} }
queryWrapper.orderByAsc("create_time"); queryWrapper.orderByAsc("create_time");
Page<Area> page = new Page<Area>(pageNo, pageSize); Page<Area> page = new Page<Area>(pageNo, pageSize);
IPage<Area> pageList = areaService.page(page, queryWrapper); IPage<Area> pageList = areaService.page(page, queryWrapper);
// 将 Entity 转换为 DTO
IPage<AreaDTO> dtoPage = pageList.convert(entity -> {
AreaDTO dto = new AreaDTO();
BeanUtils.copyProperties(entity, dto);
return dto;
});
return Result.OK(dtoPage);
}
/** return Result.OK(pageList);
*
*
* @param area
* @return
*/
@AutoLog(value = "库区 - 添加")
@Operation(summary = "库区 - 添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Area area) {
areaService.save(area);
return Result.OK("添加成功!");
}
/**
*
*
* @param area
* @return
*/
@AutoLog(value = "库区 - 编辑")
@Operation(summary = "库区 - 编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody Area area) {
areaService.updateById(area);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "库区 - 通过 id 删除")
@Operation(summary = "库区 - 通过 id 删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
areaService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "库区 - 批量删除")
@Operation(summary = "库区 - 批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.areaService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
} }
/** /**
@ -168,4 +109,91 @@ public class AreaController extends JeecgController<Area, IAreaService> {
BeanUtils.copyProperties(area, dto); BeanUtils.copyProperties(area, dto);
return Result.OK(dto); return Result.OK(dto);
} }
/**
*
*
* @param area
* @return
*/
@AutoLog(value = "库区 - 添加")
@Operation(summary = "库区 - 添加")
@RequiresPermissions("base:base_area:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Area area) {
areaService.save(area);
return Result.OK("添加成功!");
}
/**
*
*
* @param area
* @return
*/
@AutoLog(value = "库区 - 编辑")
@Operation(summary = "库区 - 编辑")
@RequiresPermissions("base:base_area:edit")
@RequestMapping(value = "/edit", method = { RequestMethod.PUT, RequestMethod.POST })
public Result<String> edit(@RequestBody Area area) {
areaService.updateById(area);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "库区 - 通过 id 删除")
@Operation(summary = "库区 - 通过 id 删除")
@RequiresPermissions("base:base_area:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
areaService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "库区 - 批量删除")
@Operation(summary = "库区 - 批量删除")
@RequiresPermissions("base:base_area:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.areaService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* excel
*
* @param request
* @param area
*/
@RequiresPermissions("base:base_area:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, Area area) {
return super.exportXls(request, area, Area.class, "库区");
}
/**
* excel
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("base:base_area:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, Area.class);
}
} }

View File

@ -2,7 +2,9 @@ package org.cpte.modules.basic.controller;
import java.util.Arrays; import java.util.Arrays;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.cpte.modules.basic.dto.ItemDTO; import org.cpte.modules.basic.dto.ItemDTO;
import org.cpte.modules.basic.entity.Item; import org.cpte.modules.basic.entity.Item;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
@ -16,16 +18,11 @@ import org.springframework.beans.BeanUtils;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description:
* @author: cpte
* @Date: 2025-10-27
* @Version: V1.0
*/
@Tag(name = "物料") @Tag(name = "物料")
@RestController @RestController
@RequestMapping("/api/wms/basic/item") @RequestMapping("/api/wms/basic/item")
@ -34,105 +31,25 @@ public class ItemController extends JeecgController<Item, IItemService> {
@Autowired @Autowired
private IItemService itemService; private IItemService itemService;
/**
*
*
* @param item
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Operation(summary = "物料 - 分页列表查询") @Operation(summary = "物料 - 分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<ItemDTO>> queryPageList(Item item, public Result<IPage<Item>> queryPageList(Item item,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "keyword", required = false) String keyword, @RequestParam(name = "keyword", required = false) String keyword,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<Item> queryWrapper = QueryGenerator.initQueryWrapper(item, req.getParameterMap()); QueryWrapper<Item> queryWrapper = QueryGenerator.initQueryWrapper(item, req.getParameterMap());
// 如果提供了 keyword则同时对 itemCode 和 itemName 进行模糊搜索 if (StringUtils.isNotBlank(keyword)) {
if (StringUtils.isNotBlank(keyword)) { queryWrapper.and(wrapper -> wrapper.likeRight("item_code", keyword).or().likeRight("item_name", keyword));
queryWrapper.and(wrapper -> wrapper.likeRight("item_code", keyword).or().likeRight("item_name", keyword)); }
}
queryWrapper.orderByAsc("item_code"); queryWrapper.orderByAsc("item_code");
Page<Item> page = new Page<Item>(pageNo, pageSize); Page<Item> page = new Page<Item>(pageNo, pageSize);
IPage<Item> pageList = itemService.page(page, queryWrapper); IPage<Item> pageList = itemService.page(page, queryWrapper);
// 将 Entity 转换为 DTO return Result.OK(pageList);
IPage<ItemDTO> dtoPage = pageList.convert(entity -> {
ItemDTO dto = new ItemDTO();
BeanUtils.copyProperties(entity, dto);
return dto;
});
return Result.OK(dtoPage);
} }
/**
*
*
* @param item
* @return
*/
@AutoLog(value = "物料 - 添加")
@Operation(summary = "物料 - 添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Item item) {
itemService.save(item);
return Result.OK("添加成功!");
}
/**
*
*
* @param item
* @return
*/
@AutoLog(value = "物料 - 编辑")
@Operation(summary = "物料 - 编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody Item item) {
itemService.updateById(item);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "物料 - 通过 id 删除")
@Operation(summary = "物料 - 通过 id 删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
itemService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "物料 - 批量删除")
@Operation(summary = "物料 - 批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.itemService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* id
*
* @param id
* @return
*/
@Operation(summary = "物料 - 通过 id 查询") @Operation(summary = "物料 - 通过 id 查询")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public Result<ItemDTO> queryById(@PathVariable("id") Long id) { public Result<ItemDTO> queryById(@PathVariable("id") Long id) {
@ -145,12 +62,6 @@ public class ItemController extends JeecgController<Item, IItemService> {
return Result.OK(dto); return Result.OK(dto);
} }
/**
*
*
* @param itemCode
* @return
*/
@Operation(summary = "物料 - 通过编码查询") @Operation(summary = "物料 - 通过编码查询")
@GetMapping(value = "/code/{itemCode}") @GetMapping(value = "/code/{itemCode}")
public Result<ItemDTO> queryByCode(@PathVariable("itemCode") String itemCode) { public Result<ItemDTO> queryByCode(@PathVariable("itemCode") String itemCode) {
@ -163,4 +74,53 @@ public class ItemController extends JeecgController<Item, IItemService> {
return Result.OK(dto); return Result.OK(dto);
} }
@AutoLog(value = "物料 - 添加")
@Operation(summary = "物料 - 添加")
@RequiresPermissions("base:base_item:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Item item) {
itemService.save(item);
return Result.OK("添加成功!");
}
@AutoLog(value = "物料 - 编辑")
@Operation(summary = "物料 - 编辑")
@RequiresPermissions("base:base_item:edit")
@RequestMapping(value = "/edit", method = { RequestMethod.PUT, RequestMethod.POST })
public Result<String> edit(@RequestBody Item item) {
itemService.updateById(item);
return Result.OK("编辑成功!");
}
@AutoLog(value = "物料 - 通过 id 删除")
@Operation(summary = "物料 - 通过 id 删除")
@RequiresPermissions("base:base_item:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
itemService.removeById(id);
return Result.OK("删除成功!");
}
@AutoLog(value = "物料 - 批量删除")
@Operation(summary = "物料 - 批量删除")
@RequiresPermissions("base:base_item:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.itemService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
@RequiresPermissions("base:base_item:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, Item item) {
return super.exportXls(request, item, Item.class, "物料");
}
@RequiresPermissions("base:base_item:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, Item.class);
}
} }

View File

@ -6,8 +6,10 @@ import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.cpte.modules.basic.dto.PointDTO; import org.cpte.modules.basic.dto.PointDTO;
import org.cpte.modules.basic.entity.Area; import org.cpte.modules.basic.entity.Area;
import org.cpte.modules.basic.entity.Point; import org.cpte.modules.basic.entity.Point;
@ -21,21 +23,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description:
* @author: cpte
* @Date: 2025-10-28
* @Version: V1.0
*/
@Tag(name = "库位") @Tag(name = "库位")
@RestController @RestController
@RequestMapping("/api/wms/basic/point") @RequestMapping("/api/wms/basic/point")
@ -47,32 +44,22 @@ public class PointController extends JeecgController<Point, IPointService> {
@Autowired @Autowired
private IAreaService areaService; private IAreaService areaService;
/**
*
*
* @param point
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Operation(summary = "库位 - 分页列表查询") @Operation(summary = "库位 - 分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<Point>> queryPageList(Point point, public Result<IPage<Point>> queryPageList(Point point,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "keyword", required = false) String keyword, @RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name = "areaCode", required = false) String areaCode, @RequestParam(name = "areaCode", required = false) String areaCode,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<Point> queryWrapper = QueryGenerator.initQueryWrapper(point, req.getParameterMap()); QueryWrapper<Point> queryWrapper = QueryGenerator.initQueryWrapper(point, req.getParameterMap());
// 如果提供了 keyword则同时对 pointCode 模糊搜索
if (StringUtils.isNotBlank(keyword)) { if (StringUtils.isNotBlank(keyword)) {
queryWrapper.and(wrapper -> wrapper.likeRight("point_code", keyword)); queryWrapper.and(wrapper -> wrapper.likeRight("point_code", keyword));
} }
if(StringUtils.isNotBlank(areaCode)){ if (StringUtils.isNotBlank(areaCode)) {
LambdaQueryWrapper<Area> areaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Area> areaQueryWrapper = new LambdaQueryWrapper<>();
List<String> areaCodes= Arrays.asList(areaCode.split(",")); List<String> areaCodes = Arrays.asList(areaCode.split(","));
areaQueryWrapper.in(Area::getAreaCode, areaCodes); areaQueryWrapper.in(Area::getAreaCode, areaCodes);
List<Area> areaList = areaService.list(areaQueryWrapper); List<Area> areaList = areaService.list(areaQueryWrapper);
List<Long> areaIds = areaList.stream().map(Area::getId).distinct().toList(); List<Long> areaIds = areaList.stream().map(Area::getId).distinct().toList();
@ -84,93 +71,28 @@ public class PointController extends JeecgController<Point, IPointService> {
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
*
*
* @param point
* @return
*/
@AutoLog(value = "库位 - 添加")
@Operation(summary = "库位 - 添加")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Point point) {
pointService.save(point);
return Result.OK("添加成功!");
}
/**
*
*
* @param point
* @return
*/
@AutoLog(value = "库位 - 编辑")
@Operation(summary = "库位 - 编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody Point point) {
pointService.updateById(point);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "库位 - 通过 id 删除")
@Operation(summary = "库位 - 通过 id 删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
pointService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "库位 - 批量删除")
@Operation(summary = "库位 - 批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.pointService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* id
*
* @param id
* @return
*/
@Operation(summary = "库位 - 通过 id 查询") @Operation(summary = "库位 - 通过 id 查询")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public Result<Point> queryById(@PathVariable("id") Long id) { public Result<PointDTO> queryById(@PathVariable("id") Long id) {
Point point = pointService.getById(id); Point point = pointService.getById(id);
if (point == null) { if (point == null) {
return Result.error("未找到对应数据"); return Result.error("未找到对应数据");
} }
return Result.OK(point); PointDTO dto = new PointDTO();
BeanUtils.copyProperties(point, dto);
return Result.OK(dto);
} }
/**
*
*
* @param pointCode
* @return
*/
@Operation(summary = "库位 - 通过编码查询") @Operation(summary = "库位 - 通过编码查询")
@GetMapping(value = "/code/{pointCode}") @GetMapping(value = "/code/{pointCode}")
public Result<Point> queryByCode(@PathVariable("pointCode") String pointCode) { public Result<PointDTO> queryByCode(@PathVariable("pointCode") String pointCode) {
Point point = pointService.validatePoint(pointCode); Point point = pointService.validatePoint(pointCode);
if (point == null) { if (point == null) {
return Result.error("未找到对应数据"); return Result.error("未找到对应数据");
} }
return Result.OK(point); PointDTO dto = new PointDTO();
BeanUtils.copyProperties(point, dto);
return Result.OK(dto);
} }
@Operation(summary = "查询出库工作站") @Operation(summary = "查询出库工作站")
@ -184,4 +106,53 @@ public class PointController extends JeecgController<Point, IPointService> {
return Result.OK(pointCodes); return Result.OK(pointCodes);
} }
@AutoLog(value = "库位 - 添加")
@Operation(summary = "库位 - 添加")
@RequiresPermissions("base:base_point:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Point point) {
pointService.save(point);
return Result.OK("添加成功!");
}
@AutoLog(value = "库位 - 编辑")
@Operation(summary = "库位 - 编辑")
@RequiresPermissions("base:base_point:edit")
@RequestMapping(value = "/edit", method = { RequestMethod.PUT, RequestMethod.POST })
public Result<String> edit(@RequestBody Point point) {
pointService.updateById(point);
return Result.OK("编辑成功!");
}
@AutoLog(value = "库位 - 通过 id 删除")
@Operation(summary = "库位 - 通过 id 删除")
@RequiresPermissions("base:base_point:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
pointService.removeById(id);
return Result.OK("删除成功!");
}
@AutoLog(value = "库位 - 批量删除")
@Operation(summary = "库位 - 批量删除")
@RequiresPermissions("base:base_point:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.pointService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
@RequiresPermissions("base:base_point:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, Point point) {
return super.exportXls(request, point, Point.class, "库位");
}
@RequiresPermissions("base:base_point:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, Point.class);
}
} }

View File

@ -4,16 +4,15 @@ import java.util.Arrays;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.cpte.modules.basic.entity.Stock; import org.cpte.modules.basic.entity.Stock;
import org.cpte.modules.basic.service.IStockService; import org.cpte.modules.basic.service.IStockService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -21,14 +20,7 @@ import org.springframework.web.servlet.ModelAndView;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
* @Description:
* @author: cpte
* @Date: 2025-10-28
* @Version: V1.0
*/
@Tag(name = "容器") @Tag(name = "容器")
@RestController @RestController
@RequestMapping("/api/wms/basic/stock") @RequestMapping("/api/wms/basic/stock")
@ -37,25 +29,15 @@ public class StockController extends JeecgController<Stock, IStockService> {
@Autowired @Autowired
private IStockService stockService; private IStockService stockService;
/**
*
*
* @param stock
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Operation(summary = "容器 - 分页列表查询") @Operation(summary = "容器 - 分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<Stock>> queryPageList(Stock stock, public Result<IPage<Stock>> queryPageList(Stock stock,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "keyword", required = false) String keyword, @RequestParam(name = "keyword", required = false) String keyword,
@RequestParam(name = "izScan", required = false) boolean izScan, @RequestParam(name = "izScan", required = false) boolean izScan,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<Stock> queryWrapper = QueryGenerator.initQueryWrapper(stock, req.getParameterMap()); QueryWrapper<Stock> queryWrapper = QueryGenerator.initQueryWrapper(stock, req.getParameterMap());
// 如果提供了 keyword则同时对 stock_code 模糊搜索
if (StringUtils.isNotBlank(keyword)) { if (StringUtils.isNotBlank(keyword)) {
queryWrapper.and(wrapper -> wrapper.likeRight("stock_code", keyword)); queryWrapper.and(wrapper -> wrapper.likeRight("stock_code", keyword));
} }
@ -66,14 +48,9 @@ public class StockController extends JeecgController<Stock, IStockService> {
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
*
*
* @param stock
* @return
*/
@AutoLog(value = "容器 - 添加") @AutoLog(value = "容器 - 添加")
@Operation(summary = "容器 - 添加") @Operation(summary = "容器 - 添加")
@RequiresPermissions("base:base_stock:add")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<String> add(@RequestBody Stock stock) { public Result<String> add(@RequestBody Stock stock) {
stockService.save(stock); stockService.save(stock);
@ -81,54 +58,33 @@ public class StockController extends JeecgController<Stock, IStockService> {
return Result.OK("添加成功!"); return Result.OK("添加成功!");
} }
/**
*
*
* @param stock
* @return
*/
@AutoLog(value = "容器 - 编辑") @AutoLog(value = "容器 - 编辑")
@Operation(summary = "容器 - 编辑") @Operation(summary = "容器 - 编辑")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) @RequiresPermissions("base:base_stock:edit")
@RequestMapping(value = "/edit", method = { RequestMethod.PUT, RequestMethod.POST })
public Result<String> edit(@RequestBody Stock stock) { public Result<String> edit(@RequestBody Stock stock) {
stockService.updateById(stock); stockService.updateById(stock);
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "容器 - 通过 id 删除") @AutoLog(value = "容器 - 通过 id 删除")
@Operation(summary = "容器 - 通过 id 删除") @Operation(summary = "容器 - 通过 id 删除")
@RequiresPermissions("base:base_stock:delete")
@DeleteMapping(value = "/delete") @DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) Long id) { public Result<String> delete(@RequestParam(name = "id", required = true) Long id) {
stockService.removeById(id); stockService.removeById(id);
return Result.OK("删除成功!"); return Result.OK("删除成功!");
} }
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "容器 - 批量删除") @AutoLog(value = "容器 - 批量删除")
@Operation(summary = "容器 - 批量删除") @Operation(summary = "容器 - 批量删除")
@RequiresPermissions("base:base_stock:deleteBatch")
@DeleteMapping(value = "/deleteBatch") @DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.stockService.removeByIds(Arrays.asList(ids.split(","))); this.stockService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!"); return Result.OK("批量删除成功!");
} }
/**
* id
*
* @param id
* @return
*/
@Operation(summary = "容器 - 通过 id 查询") @Operation(summary = "容器 - 通过 id 查询")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public Result<Stock> queryById(@PathVariable("id") Long id) { public Result<Stock> queryById(@PathVariable("id") Long id) {
@ -139,12 +95,6 @@ public class StockController extends JeecgController<Stock, IStockService> {
return Result.OK(stock); return Result.OK(stock);
} }
/**
*
*
* @param stockCode
* @return
*/
@Operation(summary = "容器 - 通过编码查询") @Operation(summary = "容器 - 通过编码查询")
@GetMapping(value = "/code/{stockCode}") @GetMapping(value = "/code/{stockCode}")
public Result<Stock> queryByCode(@PathVariable("stockCode") String stockCode) { public Result<Stock> queryByCode(@PathVariable("stockCode") String stockCode) {
@ -155,4 +105,16 @@ public class StockController extends JeecgController<Stock, IStockService> {
return Result.OK(stock); return Result.OK(stock);
} }
@RequiresPermissions("base:base_stock:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, Stock stock) {
return super.exportXls(request, stock, Stock.class, "容器");
}
@RequiresPermissions("base:base_stock:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, Stock.class);
}
} }

View File

@ -23,10 +23,10 @@ import java.util.Map;
* WMS * WMS
*/ */
@Slf4j @Slf4j
@SpringBootApplication(scanBasePackages = {"org.jeecg", "org.cpte", "org.cpte.modules"}) @SpringBootApplication(scanBasePackages = { "org.jeecg", "org.cpte", "org.cpte.modules" })
@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class}) @EnableAutoConfiguration(exclude = { MongoAutoConfiguration.class })
@ImportAutoConfiguration(JustAuthAutoConfiguration.class) // spring boot 3.x justauth 兼容性处理 @ImportAutoConfiguration(JustAuthAutoConfiguration.class) // spring boot 3.x justauth 兼容性处理
@EnableFeignClients(basePackages = {"org.cpte.feign"}) // 启用 Feign 客户端,包含 client 和 config 包 @EnableFeignClients(basePackages = { "org.cpte.feign" }) // 启用 Feign 客户端,包含 client 和 config 包
public class WmsInboundApplication extends SpringBootServletInitializer { public class WmsInboundApplication extends SpringBootServletInitializer {
@Override @Override
@ -39,13 +39,13 @@ public class WmsInboundApplication extends SpringBootServletInitializer {
Map<String, Object> defaultProperties = new HashMap<>(); Map<String, Object> defaultProperties = new HashMap<>();
defaultProperties.put("management.health.elasticsearch.enabled", false); defaultProperties.put("management.health.elasticsearch.enabled", false);
app.setDefaultProperties(defaultProperties); app.setDefaultProperties(defaultProperties);
ConfigurableApplicationContext application = app.run(args); ConfigurableApplicationContext application = app.run(args);
Environment env = application.getEnvironment(); Environment env = application.getEnvironment();
String ip = InetAddress.getLocalHost().getHostAddress(); String ip = InetAddress.getLocalHost().getHostAddress();
String port = env.getProperty("server.port"); String port = env.getProperty("server.port");
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path")); String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
log.info("\n----------------------------------------------------------\n\t" + log.info("\n----------------------------------------------------------\n\t" +
"WMS Inbound Service is running! Access URLs:\n\t" + "WMS Inbound Service is running! Access URLs:\n\t" +
"Local: \t\thttp://localhost:" + port + path + "\n\t" + "Local: \t\thttp://localhost:" + port + path + "\n\t" +

View File

@ -41,7 +41,6 @@ import io.swagger.v3.oas.annotations.Operation;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
/** /**
* @Description: * @Description:
* @author: cpte * @author: cpte
@ -50,7 +49,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
*/ */
@Tag(name = "入库单") @Tag(name = "入库单")
@RestController @RestController
@RequestMapping("/inbound/asn") @RequestMapping("/api/wms/inbound/asn")
@Slf4j @Slf4j
public class AsnController { public class AsnController {
@ -73,9 +72,9 @@ public class AsnController {
@Operation(summary = "入库单 - 分页列表查询") @Operation(summary = "入库单 - 分页列表查询")
@GetMapping(value = "/list") @GetMapping(value = "/list")
public Result<IPage<Asn>> queryPageList(Asn asn, public Result<IPage<Asn>> queryPageList(Asn asn,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
QueryWrapper<Asn> queryWrapper = QueryGenerator.initQueryWrapper(asn, req.getParameterMap()); QueryWrapper<Asn> queryWrapper = QueryGenerator.initQueryWrapper(asn, req.getParameterMap());
String stockId = req.getParameter("stockId"); String stockId = req.getParameter("stockId");
if (stockId != null) { if (stockId != null) {
@ -88,6 +87,36 @@ public class AsnController {
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
* id
*
* @param id
* @return
*/
@Operation(summary = "入库单 - 通过 id 查询")
@GetMapping(value = "/queryById")
public Result<Asn> queryById(@RequestParam(name = "id", required = true) Long id) {
Asn asn = asnService.getById(id);
if (asn == null) {
return Result.error("未找到对应数据");
}
return Result.OK(asn);
}
/**
* id
*
* @param id
* @return
*/
@Operation(summary = "入库明细主表 ID 查询")
@GetMapping(value = "/queryAsnDetailByMainId")
public Result<List<AsnDetail>> queryAsnDetailListByMainId(@RequestParam(name = "id", required = true) Long id) {
List<AsnDetail> asnDetailList = asnDetailService.selectByMainId(id);
return Result.OK(asnDetailList);
}
/** /**
* *
* *
@ -114,7 +143,7 @@ public class AsnController {
@AutoLog(value = "入库单 - 编辑") @AutoLog(value = "入库单 - 编辑")
@Operation(summary = "入库单 - 编辑") @Operation(summary = "入库单 - 编辑")
@RequiresPermissions("inbound:data_asn:edit") @RequiresPermissions("inbound:data_asn:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) @RequestMapping(value = "/edit", method = { RequestMethod.PUT, RequestMethod.POST })
public Result<String> edit(@RequestBody AsnPage asnPage) { public Result<String> edit(@RequestBody AsnPage asnPage) {
Asn existingAsn = asnService.getById(asnPage.getId()); Asn existingAsn = asnService.getById(asnPage.getId());
if (existingAsn == null) { if (existingAsn == null) {
@ -156,38 +185,6 @@ public class AsnController {
return Result.OK("批量删除成功!"); return Result.OK("批量删除成功!");
} }
/**
* id
*
* @param id
* @return
*/
//@AutoLog(value = "入库单 - 通过 id 查询")
@Operation(summary = "入库单 - 通过 id 查询")
@GetMapping(value = "/queryById")
public Result<Asn> queryById(@RequestParam(name = "id", required = true) Long id) {
Asn asn = asnService.getById(id);
if (asn == null) {
return Result.error("未找到对应数据");
}
return Result.OK(asn);
}
/**
* id
*
* @param id
* @return
*/
//@AutoLog(value = "入库明细通过主表 ID 查询")
@Operation(summary = "入库明细主表 ID 查询")
@GetMapping(value = "/queryAsnDetailByMainId")
public Result<List<AsnDetail>> queryAsnDetailListByMainId(@RequestParam(name = "id", required = true) Long id) {
List<AsnDetail> asnDetailList = asnDetailService.selectByMainId(id);
return Result.OK(asnDetailList);
}
/** /**
* excel * excel
* *
@ -202,13 +199,13 @@ public class AsnController {
QueryWrapper<Asn> queryWrapper = QueryGenerator.initQueryWrapper(asn, request.getParameterMap()); QueryWrapper<Asn> queryWrapper = QueryGenerator.initQueryWrapper(asn, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//配置选中数据查询条件 // 配置选中数据查询条件
String selections = request.getParameter("selections"); String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) { if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(",")); List<String> selectionList = Arrays.asList(selections.split(","));
queryWrapper.in("id", selectionList); queryWrapper.in("id", selectionList);
} }
//Step.2 获取导出数据 // Step.2 获取导出数据
List<Asn> asnList = asnService.list(queryWrapper); List<Asn> asnList = asnService.list(queryWrapper);
// Step.3 组装 pageList // Step.3 组装 pageList