package com.ruoyi.production.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.production.dto.ProcessRouteDto; import com.ruoyi.production.pojo.ProcessRoute; import com.ruoyi.production.service.ProcessRouteService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping("/processRoute") @Api(tags = "工艺路线") public class ProcessRouteController { @Autowired private ProcessRouteService processRouteService; @GetMapping("/page") @ApiOperation("分页查询") public R page(Page page, ProcessRouteDto processRouteDto) { return R.ok(processRouteService.pageProcessRouteDto(page, processRouteDto)); } @ApiOperation("新增工艺路线") @PostMapping public R add(@RequestBody ProcessRoute processRoute) { normalizeProductBinding(processRoute); return R.ok(processRouteService.saveProcessRoute(processRoute)); } @ApiOperation("修改工艺路线") @PutMapping public R update(@RequestBody ProcessRoute processRoute) { normalizeProductBinding(processRoute); return R.ok(processRouteService.updateById(processRoute)); } @ApiOperation("删除工艺路线") @DeleteMapping("/{ids}") public R delete(@PathVariable("ids") Long[] ids) { return R.ok(processRouteService.batchDelete(Arrays.asList(ids))); } private void normalizeProductBinding(ProcessRoute processRoute) { if (processRoute == null) { return; } String ids = null; List idList = processRoute.getProductModelIdList(); if (idList != null && !idList.isEmpty()) { ids = idList.stream() .filter(item -> item != null && item > 0) .distinct() .map(String::valueOf) .collect(Collectors.joining(",")); } else if (StringUtils.hasText(processRoute.getProductModelIds())) { ids = Arrays.stream(processRoute.getProductModelIds().split(",")) .map(String::trim) .filter(StringUtils::hasText) .distinct() .collect(Collectors.joining(",")); } else if (processRoute.getProductModelId() != null) { ids = String.valueOf(processRoute.getProductModelId()); } processRoute.setProductModelIds(ids); if (StringUtils.hasText(ids)) { processRoute.setProductModelId(Long.valueOf(ids.split(",")[0])); } } }