package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Specifications;
import com.yuanchu.limslaboratory.service.SpecificationsService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.MyUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
import com.yuanchu.limslaboratory.vo.Result;
import com.yuanchu.limslaboratory.vo.UpdateSpeStateSpecifications;
import com.yuanchu.limslaboratory.vo.UpdateSpecificationsInformation;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
*
* 前端控制器
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2023-07-11
*/
@Api(tags = "标准库-->型号-->产品规格")
@RestController
@RequestMapping("/specifications")
public class SpecificationsController {
@Autowired
private SpecificationsService specificationsService;
@ApiOperation("标准库-->产品规格")
@PostMapping("/add")
public Result> addSpecificationsInformation(@RequestHeader("X-Token") String token,@RequestBody Specifications specifications) throws Exception {
Object object = RedisUtil.get(token);
Map unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
specifications.setUserId((Integer) unmarshal.get("id"));
Integer isStandardsSuccess = specificationsService.addSpecificationsInformation(specifications);
if (isStandardsSuccess == 1) {
return Result.success("添加【"+ specifications.getName() +"】成功!");
}
return Result.fail("添加【"+ specifications.getName() +"】失败!");
}
@ApiOperation("标准库-->根据型号查询产品规格")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "pageNo", value = "起始页", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "pageSize", value = "每一页数量", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "specificationsName", value = "规格名称", dataTypeClass = String.class),
@ApiImplicitParam(name = "serialNumberId", value = "型号ID", dataTypeClass = String.class,required = true)
})
@GetMapping("/list")
public Result> listSpecificationsInformation(Integer pageNo,
Integer pageSize,
String specificationsName,
String serialNumberId){
IPage