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.Instrument;
import com.yuanchu.limslaboratory.pojo.dto.UpdateInstrumentDto;
import com.yuanchu.limslaboratory.service.InstrumentService;
import com.yuanchu.limslaboratory.service.UserService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
import com.yuanchu.limslaboratory.vo.Result;
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.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
*
* 前端控制器
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2023-07-20
*/
@Api(tags = "实验室-->设备台账-->2、仪器模块")
@RestController
@RequestMapping("/instrument")
public class InstrumentController {
@Autowired
private InstrumentService instrumentService;
@Autowired
private UserService userService;
@ApiOperation("添加仪器设备")
@PostMapping("/add")
public Result> addInstrumentInformation(@RequestHeader("X-Token") String token, @RequestBody Instrument instrument) throws Exception {
Object object = RedisUtil.get(token);
Map unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
instrument.setCreateUserId((Integer) unmarshal.get("id"));
Integer isInsertSuccess = instrumentService.addInstrumentInformation(instrument);
if (isInsertSuccess == 1){
return Result.success("添加【" + instrument.getEquipmentName() + "】成功!");
}
return Result.fail("仪器设备编号重复,添加【" + instrument.getEquipmentName() + "】失败! ");
}
@ApiOperation("根据分类Id:分页列表展示")
@GetMapping("/list")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "classifyId", value = "分类Id", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "pageNo", value = "起始页", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "pageSize", value = "每一页数量", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "conditions", value = "查询状态:默认全部", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "whetherWhether", value = "是否已过期", dataTypeClass = Boolean.class),
@ApiImplicitParam(name = "numberOrNameOrSpecifications", value = "编号/设备名称/规格型号", dataTypeClass = String.class)
})
public Result> getListInstrumentInformation(Integer pageNo,
Integer pageSize,
Integer conditions,
Integer classifyId,
Boolean whetherWhether,
String numberOrNameOrSpecifications) {
IPage