| | |
| | | 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.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 java.util.Map; |
| | | |
| | | /** |
| | | * @Description: 线边库物料信息 |
| | | * @Author: jeecg-boot |
| | | * @Date: 2025-06-30 |
| | | * @Version: V1.0 |
| | | */ |
| | | @Api(tags="线边库物料信息") |
| | | * @Description: 线边库物料信息 |
| | | * @Author: jeecg-boot |
| | | * @Date: 2025-06-30 |
| | | * @Version: V1.0 |
| | | */ |
| | | @Api(tags = "线边库物料信息") |
| | | @RestController |
| | | @RequestMapping("/lswmaterial/lswMaterial") |
| | | @Slf4j |
| | | public class LswMaterialController { |
| | | @Autowired |
| | | private ILswMaterialService lswMaterialService; |
| | | @Autowired |
| | | private ILswMaterialInventoryService lswMaterialInventoryService; |
| | | @Autowired |
| | | private ILswMaterialService lswMaterialService; |
| | | @Autowired |
| | | private ILswMaterialInventoryService lswMaterialInventoryService; |
| | | @Autowired |
| | | private ILineSideWarehouseService lineSideWarehouseService; |
| | | |
| | | /** |
| | | * 分页列表查询 |
| | | * |
| | | * @param lswMaterial |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @param req |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "线边库物料信息-分页列表查询") |
| | | @ApiOperation(value="线边库物料信息-分页列表查询", notes="线边库物料信息-分页列表查询") |
| | | @GetMapping(value = "/list") |
| | | public Result<IPage<LswMaterial>> queryPageList(LswMaterial lswMaterial, |
| | | @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, |
| | | @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, |
| | | HttpServletRequest req) { |
| | | QueryWrapper<LswMaterial> queryWrapper = QueryGenerator.initQueryWrapper(lswMaterial, req.getParameterMap()); |
| | | Page<LswMaterial> page = new Page<LswMaterial>(pageNo, pageSize); |
| | | IPage<LswMaterial> pageList = lswMaterialService.page(page, queryWrapper); |
| | | return Result.OK(pageList); |
| | | } |
| | | /** |
| | | * 分页列表查询 |
| | | * |
| | | * @param lswMaterial |
| | | * @param pageNo |
| | | * @param pageSize |
| | | * @param req |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "线边库物料信息-分页列表查询") |
| | | @ApiOperation(value = "线边库物料信息-分页列表查询", notes = "线边库物料信息-分页列表查询") |
| | | @GetMapping(value = "/list") |
| | | public Result<IPage<LswMaterial>> queryPageList(LswMaterial lswMaterial, |
| | | @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, |
| | | HttpServletRequest req) { |
| | | QueryWrapper<LswMaterial> queryWrapper = QueryGenerator.initQueryWrapper(lswMaterial, req.getParameterMap()); |
| | | Page<LswMaterial> page = new Page<LswMaterial>(pageNo, pageSize); |
| | | IPage<LswMaterial> pageList = lswMaterialService.page(page, queryWrapper); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param lswMaterialPage |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-添加") |
| | | @ApiOperation(value="线边库物料信息-添加", notes="线边库物料信息-添加") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:add") |
| | | @PostMapping(value = "/add") |
| | | public Result<String> add(@RequestBody LswMaterialPage lswMaterialPage) { |
| | | LswMaterial lswMaterial = new LswMaterial(); |
| | | BeanUtils.copyProperties(lswMaterialPage, lswMaterial); |
| | | lswMaterialService.saveMain(lswMaterial, lswMaterialPage.getLswMaterialInventoryList()); |
| | | return Result.OK("添加成功!"); |
| | | } |
| | | /** |
| | | * 添加 |
| | | * |
| | | * @param lswMaterialPage |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-添加") |
| | | @ApiOperation(value = "线边库物料信息-添加", notes = "线边库物料信息-添加") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:add") |
| | | @PostMapping(value = "/add") |
| | | public Result<String> add(@RequestBody LswMaterialPage lswMaterialPage) { |
| | | LswMaterial lswMaterial = new LswMaterial(); |
| | | BeanUtils.copyProperties(lswMaterialPage, lswMaterial); |
| | | lswMaterialService.saveMain(lswMaterial, lswMaterialPage.getLswMaterialInventoryList()); |
| | | return Result.OK("添加成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 编辑 |
| | | * |
| | | * @param lswMaterialPage |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-编辑") |
| | | @ApiOperation(value="线边库物料信息-编辑", notes="线边库物料信息-编辑") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:edit") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) |
| | | public Result<String> edit(@RequestBody LswMaterialPage lswMaterialPage) { |
| | | LswMaterial lswMaterial = new LswMaterial(); |
| | | BeanUtils.copyProperties(lswMaterialPage, lswMaterial); |
| | | LswMaterial lswMaterialEntity = lswMaterialService.getById(lswMaterial.getId()); |
| | | if(lswMaterialEntity==null) { |
| | | return Result.error("未找到对应数据"); |
| | | } |
| | | lswMaterialService.updateMain(lswMaterial, lswMaterialPage.getLswMaterialInventoryList()); |
| | | return Result.OK("编辑成功!"); |
| | | } |
| | | /** |
| | | * 编辑 |
| | | * |
| | | * @param lswMaterialPage |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-编辑") |
| | | @ApiOperation(value = "线边库物料信息-编辑", notes = "线边库物料信息-编辑") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:edit") |
| | | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
| | | public Result<String> edit(@RequestBody LswMaterialPage lswMaterialPage) { |
| | | LswMaterial lswMaterial = new LswMaterial(); |
| | | BeanUtils.copyProperties(lswMaterialPage, lswMaterial); |
| | | LswMaterial lswMaterialEntity = lswMaterialService.getById(lswMaterial.getId()); |
| | | if (lswMaterialEntity == null) { |
| | | return Result.error("未找到对应数据"); |
| | | } |
| | | lswMaterialService.updateMain(lswMaterial, lswMaterialPage.getLswMaterialInventoryList()); |
| | | return Result.OK("编辑成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 通过id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-通过id删除") |
| | | @ApiOperation(value="线边库物料信息-通过id删除", notes="线边库物料信息-通过id删除") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:delete") |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<String> delete(@RequestParam(name="id",required=true) String id) { |
| | | lswMaterialService.delMain(id); |
| | | return Result.OK("删除成功!"); |
| | | } |
| | | /** |
| | | * 通过id删除 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-通过id删除") |
| | | @ApiOperation(value = "线边库物料信息-通过id删除", notes = "线边库物料信息-通过id删除") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:delete") |
| | | @DeleteMapping(value = "/delete") |
| | | public Result<String> delete(@RequestParam(name = "id", required = true) String id) { |
| | | lswMaterialService.delMain(id); |
| | | return Result.OK("删除成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-批量删除") |
| | | @ApiOperation(value="线边库物料信息-批量删除", notes="线边库物料信息-批量删除") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:deleteBatch") |
| | | @DeleteMapping(value = "/deleteBatch") |
| | | public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { |
| | | this.lswMaterialService.delBatchMain(Arrays.asList(ids.split(","))); |
| | | return Result.OK("批量删除成功!"); |
| | | } |
| | | /** |
| | | * 批量删除 |
| | | * |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @AutoLog(value = "线边库物料信息-批量删除") |
| | | @ApiOperation(value = "线边库物料信息-批量删除", notes = "线边库物料信息-批量删除") |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:deleteBatch") |
| | | @DeleteMapping(value = "/deleteBatch") |
| | | public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { |
| | | this.lswMaterialService.delBatchMain(Arrays.asList(ids.split(","))); |
| | | return Result.OK("批量删除成功!"); |
| | | } |
| | | |
| | | /** |
| | | * 通过id查询 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "线边库物料信息-通过id查询") |
| | | @ApiOperation(value="线边库物料信息-通过id查询", notes="线边库物料信息-通过id查询") |
| | | @GetMapping(value = "/queryById") |
| | | public Result<LswMaterial> 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 = "/queryById") |
| | | public Result<LswMaterial> 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<List<LswMaterialInventory>> queryLswMaterialInventoryListByMainId(@RequestParam(name="id",required=true) String id) { |
| | | List<LswMaterialInventory> lswMaterialInventoryList = lswMaterialInventoryService.selectByMainId(id); |
| | | return Result.OK(lswMaterialInventoryList); |
| | | } |
| | | /** |
| | | * 通过id查询 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | //@AutoLog(value = "物料库存信息通过主表ID查询") |
| | | @ApiOperation(value = "物料库存信息主表ID查询", notes = "物料库存信息-通主表ID查询") |
| | | @GetMapping(value = "/queryLswMaterialInventoryByMainId") |
| | | public Result<List<LswMaterialInventory>> queryLswMaterialInventoryListByMainId(@RequestParam(name = "id", required = true) String id) { |
| | | List<LswMaterialInventory> 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<LswMaterial> queryWrapper = QueryGenerator.initQueryWrapper(lswMaterial, request.getParameterMap()); |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | /** |
| | | * 导出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<LswMaterial> queryWrapper = QueryGenerator.initQueryWrapper(lswMaterial, request.getParameterMap()); |
| | | LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | //配置选中数据查询条件 |
| | | String selections = request.getParameter("selections"); |
| | | if(oConvertUtils.isNotEmpty(selections)) { |
| | | List<String> selectionList = Arrays.asList(selections.split(",")); |
| | | queryWrapper.in("id",selectionList); |
| | | } |
| | | //Step.2 获取导出数据 |
| | | List<LswMaterial> lswMaterialList = lswMaterialService.list(queryWrapper); |
| | | //配置选中数据查询条件 |
| | | String selections = request.getParameter("selections"); |
| | | if (oConvertUtils.isNotEmpty(selections)) { |
| | | List<String> selectionList = Arrays.asList(selections.split(",")); |
| | | queryWrapper.in("id", selectionList); |
| | | } |
| | | //Step.2 获取导出数据 |
| | | List<LswMaterial> lswMaterialList = lswMaterialService.list(queryWrapper); |
| | | |
| | | // Step.3 组装pageList |
| | | List<LswMaterialPage> pageList = new ArrayList<LswMaterialPage>(); |
| | | for (LswMaterial main : lswMaterialList) { |
| | | LswMaterialPage vo = new LswMaterialPage(); |
| | | BeanUtils.copyProperties(main, vo); |
| | | List<LswMaterialInventory> lswMaterialInventoryList = lswMaterialInventoryService.selectByMainId(main.getId()); |
| | | vo.setLswMaterialInventoryList(lswMaterialInventoryList); |
| | | pageList.add(vo); |
| | | } |
| | | // Step.3 组装pageList |
| | | List<LswMaterialPage> pageList = new ArrayList<LswMaterialPage>(); |
| | | for (LswMaterial main : lswMaterialList) { |
| | | LswMaterialPage vo = new LswMaterialPage(); |
| | | BeanUtils.copyProperties(main, vo); |
| | | List<LswMaterialInventory> 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; |
| | | } |
| | | // 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; |
| | | } |
| | | |
| | | /** |
| | | * 通过excel导入数据 |
| | | * |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:importExcel") |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
| | | for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
| | | // 获取上传文件对象 |
| | | MultipartFile file = entity.getValue(); |
| | | ImportParams params = new ImportParams(); |
| | | params.setTitleRows(2); |
| | | params.setHeadRows(1); |
| | | params.setNeedSave(true); |
| | | try { |
| | | List<LswMaterialPage> list = ExcelImportUtil.importExcel(file.getInputStream(), LswMaterialPage.class, params); |
| | | for (LswMaterialPage page : list) { |
| | | LswMaterial po = new LswMaterial(); |
| | | BeanUtils.copyProperties(page, po); |
| | | lswMaterialService.saveMain(po, page.getLswMaterialInventoryList()); |
| | | } |
| | | return Result.OK("文件导入成功!数据行数:" + list.size()); |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(),e); |
| | | return Result.error("文件导入失败:"+e.getMessage()); |
| | | } finally { |
| | | try { |
| | | file.getInputStream().close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | return Result.OK("文件导入失败!"); |
| | | } |
| | | /** |
| | | * 通过excel导入数据 |
| | | * |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | //@RequiresPermissions("org.jeecg.modules:lsw_material:importExcel") |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
| | | Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
| | | for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
| | | // 获取上传文件对象 |
| | | MultipartFile file = entity.getValue(); |
| | | ImportParams params = new ImportParams(); |
| | | params.setTitleRows(2); |
| | | params.setHeadRows(1); |
| | | params.setNeedSave(true); |
| | | try { |
| | | List<LswMaterialPage> list = ExcelImportUtil.importExcel(file.getInputStream(), LswMaterialPage.class, params); |
| | | for (LswMaterialPage page : list) { |
| | | LswMaterial po = new LswMaterial(); |
| | | BeanUtils.copyProperties(page, po); |
| | | lswMaterialService.saveMain(po, page.getLswMaterialInventoryList()); |
| | | } |
| | | return Result.OK("文件导入成功!数据行数:" + list.size()); |
| | | } catch (Exception e) { |
| | | log.error(e.getMessage(), e); |
| | | return Result.error("文件导入失败:" + e.getMessage()); |
| | | } finally { |
| | | try { |
| | | file.getInputStream().close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | return Result.OK("文件导入失败!"); |
| | | } |
| | | |
| | | @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<Map<String, Object>> pageList = lswMaterialService.getLswMaterialListData(pageNo, pageSize, req); |
| | | return Result.OK(pageList); |
| | | } |
| | | |
| | | } |