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.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.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.enums.MaterialCategoryEnum; import org.jeecg.modules.lsw.service.ILswMaterialService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * @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 IFactoryService factoryService; /** * 分页列表查询 * * @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); } @ApiOperation(value = "线边库物料信息-通过产线类型查询线边库物料", notes = "线边库物料信息-通过产线类型查询线边库物料") @GetMapping(value = "/queryLswMaterialByProductionType") public Result> queryLswMaterialByProductionType(@RequestParam("factoryId") String factoryId) { Factory factory = factoryService.getById(factoryId); ProductionTypeEnum productionType = ProductionTypeEnum.fromName(factory.getProductionType()); List lswMaterialList = CollectionUtil.newArrayList(); if (productionType == null) { throw new JeecgBootException("产线类型未设置,无法查询相应物料信息!"); } switch (productionType) { case ASSEMBLE: //装配线,查询成品物料 lswMaterialList = lswMaterialService.list(new LambdaQueryWrapper() .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() .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() .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); } @ApiOperation(value = "线边库物料信息-根据物料类型查询", notes = "线边库物料信息-根据物料类型查询") @GetMapping(value = "/queryByMaterialCategory") public Result> queryByMaterialCategory(@RequestParam("materialCategory") String materialCategory) { LambdaQueryWrapper 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 lswMaterialList = lswMaterialService.list(queryWrapper); return Result.ok(lswMaterialList); } }