package org.jeecg.modules.lsw.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.base.entity.LineSideWarehouse; import org.jeecg.modules.base.service.ILineSideWarehouseService; import org.jeecg.modules.lsw.entity.LswMaterial; import org.jeecg.modules.lsw.entity.LswMaterialInventory; import org.jeecg.modules.lsw.service.ILswMaterialInventoryService; import org.jeecg.modules.lsw.service.ILswMaterialService; import org.jeecg.modules.lsw.vo.LswMaterialPage; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; /** * @Description: 线边库物料信息 * @Author: jeecg-boot * @Date: 2025-06-30 * @Version: V1.0 */ @Api(tags = "线边库物料信息") @RestController @RequestMapping("/lsw/lswMaterial") @Slf4j public class LswMaterialController { @Autowired private ILswMaterialService lswMaterialService; @Autowired private ILswMaterialInventoryService lswMaterialInventoryService; @Autowired private ILineSideWarehouseService lineSideWarehouseService; /** * 分页列表查询 * * @param lswMaterial * @param pageNo * @param pageSize * @param req * @return */ @ApiOperation(value = "线边库物料信息-分页列表查询", notes = "线边库物料信息-分页列表查询") @GetMapping(value = "/list") public Result> queryPageList(LswMaterial lswMaterial, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lswMaterial, req.getParameterMap()); if (lswMaterial.isMaterialCategoryNull()) { queryWrapper.isNull("material_category"); } Page page = new Page<>(pageNo, pageSize); IPage pageList = lswMaterialService.page(page, queryWrapper); return Result.OK(pageList); } /** * 编辑 * * @param lswMaterial * @return */ @AutoLog(value = "线边库物料信息-编辑") @ApiOperation(value = "线边库物料信息-编辑", notes = "线边库物料信息-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result edit(@RequestBody LswMaterial lswMaterial) { boolean b = lswMaterialService.editMaterial(lswMaterial); if (!b) { return Result.error("编辑失败"); } return Result.OK("编辑成功!"); } @AutoLog(value = "线边库物料信息-启用") @ApiOperation(value = "线边库物料信息-启用", notes = "线边库物料信息-启用") @GetMapping("/active") public Result active(@RequestParam("id") String id) { LswMaterial entity = lswMaterialService.getById(id); if (entity == null) { return Result.error("数据不存在"); } entity.setMaterialStatus(CommonConstant.STATUS_1); lswMaterialService.updateById(entity); return Result.OK("操作成功"); } @AutoLog(value = "线边库物料信息-禁用") @ApiOperation(value = "线边库物料信息-禁用", notes = "线边库物料信息-禁用") @GetMapping("/inactive") public Result inactive(@RequestParam("id") String id) { LswMaterial entity = lswMaterialService.getById(id); if (entity == null) { return Result.error("数据不存在"); } entity.setMaterialStatus(CommonConstant.STATUS_0); lswMaterialService.updateById(entity); return Result.OK("操作成功"); } /** * 通过id查询 * * @param id * @return */ //@AutoLog(value = "线边库物料信息-通过id查询") @ApiOperation(value = "线边库物料信息-通过id查询", notes = "线边库物料信息-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { LswMaterial lswMaterial = lswMaterialService.getById(id); if (lswMaterial == null) { return Result.error("未找到对应数据"); } return Result.OK(lswMaterial); } /** * 通过id查询 * * @param id * @return */ //@AutoLog(value = "物料库存信息通过主表ID查询") @ApiOperation(value = "物料库存信息主表ID查询", notes = "物料库存信息-通主表ID查询") @GetMapping(value = "/queryLswMaterialInventoryByMainId") public Result> queryLswMaterialInventoryListByMainId(@RequestParam(name = "id", required = true) String id) { List lswMaterialInventoryList = lswMaterialInventoryService.selectByMainId(id); for (LswMaterialInventory lswMaterialInventory : lswMaterialInventoryList) { if (StringUtils.isNotEmpty(lswMaterialInventory.getWarehouseId())) { String warehouseId = lswMaterialInventory.getWarehouseId(); LineSideWarehouse warehouse = lineSideWarehouseService.getById(warehouseId); lswMaterialInventory.setWarehouseName(warehouse.getWarehouseName()); } } return Result.OK(lswMaterialInventoryList); } /** * 导出excel * * @param request * @param lswMaterial */ //@RequiresPermissions("org.jeecg.modules:lsw_material:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, LswMaterial lswMaterial) { // Step.1 组装查询条件查询数据 QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lswMaterial, request.getParameterMap()); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); //配置选中数据查询条件 String selections = request.getParameter("selections"); if (oConvertUtils.isNotEmpty(selections)) { List selectionList = Arrays.asList(selections.split(",")); queryWrapper.in("id", selectionList); } //Step.2 获取导出数据 List lswMaterialList = lswMaterialService.list(queryWrapper); // Step.3 组装pageList List pageList = new ArrayList(); for (LswMaterial main : lswMaterialList) { LswMaterialPage vo = new LswMaterialPage(); BeanUtils.copyProperties(main, vo); List lswMaterialInventoryList = lswMaterialInventoryService.selectByMainId(main.getId()); vo.setLswMaterialInventoryList(lswMaterialInventoryList); pageList.add(vo); } // Step.4 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); mv.addObject(NormalExcelConstants.FILE_NAME, "线边库物料信息列表"); mv.addObject(NormalExcelConstants.CLASS, LswMaterialPage.class); mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("线边库物料信息数据", "导出人:" + sysUser.getRealname(), "线边库物料信息")); mv.addObject(NormalExcelConstants.DATA_LIST, pageList); return mv; } @GetMapping(value = "/searchlikeQuery") public Result searchlikeQuery(LswMaterial lswMaterial, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { IPage> pageList = lswMaterialService.getLswMaterialListData(pageNo, pageSize, req); return Result.OK(pageList); } }