| | |
| | | package org.jeecg.modules.lsw.controller; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.base.entity.Factory; |
| | | import org.jeecg.modules.base.enums.ProductionTypeEnum; |
| | | import org.jeecg.modules.base.service.IFactoryService; |
| | | 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.enums.MaterialCategoryEnum; |
| | | 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: 线边库物料信息 |
| | |
| | | @Autowired |
| | | private ILswMaterialService lswMaterialService; |
| | | @Autowired |
| | | private ILswMaterialInventoryService lswMaterialInventoryService; |
| | | @Autowired |
| | | private ILineSideWarehouseService lineSideWarehouseService; |
| | | private IFactoryService factoryService; |
| | | |
| | | /** |
| | | * 分页列表查询 |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 通过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()); |
| | | } |
| | | @ApiOperation(value = "线边库物料信息-通过产线类型查询线边库物料", notes = "线边库物料信息-通过产线类型查询线边库物料") |
| | | @GetMapping(value = "/queryLswMaterialByProductionType") |
| | | public Result<List<LswMaterial>> queryLswMaterialByProductionType(@RequestParam("factoryId") String factoryId) { |
| | | Factory factory = factoryService.getById(factoryId); |
| | | ProductionTypeEnum productionType = ProductionTypeEnum.fromName(factory.getProductionType()); |
| | | List<LswMaterial> lswMaterialList = CollectionUtil.newArrayList(); |
| | | if (productionType == null) { |
| | | throw new JeecgBootException("产线类型未设置,无法查询相应物料信息!"); |
| | | } |
| | | return Result.OK(lswMaterialInventoryList); |
| | | switch (productionType) { |
| | | case ASSEMBLE: |
| | | //装配线,查询成品物料 |
| | | lswMaterialList = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>() |
| | | .eq(LswMaterial::getMaterialCategory, MaterialCategoryEnum.FINISHED_PRODUCT.name()) |
| | | .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0) |
| | | .eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1) |
| | | .orderByAsc(LswMaterial::getMaterialNumber)); |
| | | break; |
| | | case INNERFLANGE: |
| | | //内法兰机加线,查询内法兰物料 |
| | | lswMaterialList = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>() |
| | | .eq(LswMaterial::getMaterialCategory, MaterialCategoryEnum.INNER_FLANGE.name()) |
| | | .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0) |
| | | .eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1) |
| | | .orderByAsc(LswMaterial::getMaterialNumber)); |
| | | break; |
| | | case OUTERFLANGE: |
| | | //外法兰机加线,查询外法兰物料 |
| | | lswMaterialList = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>() |
| | | .eq(LswMaterial::getMaterialCategory, MaterialCategoryEnum.OUTER_FLANGE.name()) |
| | | .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0) |
| | | .eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1) |
| | | .orderByAsc(LswMaterial::getMaterialNumber)); |
| | | break; |
| | | } |
| | | return Result.OK(lswMaterialList); |
| | | } |
| | | |
| | | /** |
| | | * 导出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 获取导出数据 |
| | | @ApiOperation(value = "线边库物料信息-根据物料类型查询", notes = "线边库物料信息-根据物料类型查询") |
| | | @GetMapping(value = "/queryByMaterialCategory") |
| | | public Result<List<LswMaterial>> queryByMaterialCategory(@RequestParam("materialCategory") String materialCategory) { |
| | | LambdaQueryWrapper<LswMaterial> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(LswMaterial::getMaterialCategory, materialCategory); |
| | | queryWrapper.eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0); |
| | | queryWrapper.eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1); |
| | | queryWrapper.orderByAsc(LswMaterial::getMaterialNumber); |
| | | 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.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; |
| | | return Result.ok(lswMaterialList); |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | |
| | | } |