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<ProcessRouteDto> 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<Long> 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]));
|
}
|
}
|
}
|