package com.yuanchu.limslaboratory.controller;
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 com.yuanchu.limslaboratory.annotation.AuthHandler;
import com.yuanchu.limslaboratory.enums.InterfaceType;
import com.yuanchu.limslaboratory.enums.MenuEnums;
import com.yuanchu.limslaboratory.mapper.ProductMapper;
import com.yuanchu.limslaboratory.pojo.Material;
import com.yuanchu.limslaboratory.pojo.Product;
import com.yuanchu.limslaboratory.pojo.RawMaterial;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.*;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
*
* 前端控制器
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2023-07-28
*/
@Api(tags = "报检管理-->原材料报检-->页面版本表")
@RestController
@RequestMapping("/raw-material")
public class RawMaterialController {
@Autowired
private RawMaterialService rawMaterialService;
@Autowired
private StandardService standardService;
@Autowired
private MaterialService materialService;
@Resource
private ProductMapper productMapper;
@Resource
private InspectionService inspectionService;
@ApiOperation("查询所有检验计划分配")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "pageNo", value = "起始页", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "pageSize", value = "每一页数量", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "materialCoding", value = "材料编码", dataTypeClass = String.class),
@ApiImplicitParam(name = "materialName", value = "材料名称", dataTypeClass = String.class),
@ApiImplicitParam(name = "type", value = "状态", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "createTime", value = "来料日期", dataTypeClass = String.class)
})
@GetMapping("/selectAll")
@AuthHandler
public Result> selectRawMaterial(Integer pageSize, Integer pageNo, String materialCoding, String materialName, Integer type, String createTime) {
IPage iPage = rawMaterialService.selectRawMaterial(materialCoding, materialName, type, createTime, new Page(pageNo, pageSize));
Map map = new HashMap<>();
map.put("row", iPage.getRecords());
map.put("total", iPage.getTotal());
return Result.success(map);
}
@ApiOperation("原材料报检添加")
@PostMapping("/add")
@AuthHandler(type = InterfaceType.ADD,menuId = MenuEnums.reportForInspection,isAdd = true)
public Result> insertRawMaterial(@Validated @RequestBody RawMaterial rawMaterial) {
Integer integer = rawMaterialService.insertRawMaterial(rawMaterial);
if (integer >= 1) {
return Result.success("添加成功");
}
return Result.fail("添加失败");
}
@ApiOperation("原材料报检删除")
@PostMapping("/delete")
@AuthHandler(type = InterfaceType.DELETE,menuId = MenuEnums.reportForInspection,isAdd = true)
public Result> deleteRawMaterial(String deleteId) {
Integer integer = rawMaterialService.deleteRawMaterial(deleteId);
if (integer >= 1) {
return Result.success("删除成功");
}
return Result.fail("删除失败");
}
@ApiOperation("获取物料名称")
@GetMapping("/getMaterielName")
@AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.reportForInspection,isAdd = true)
public Result> getMaterielName(){
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.select(Material::getId, Material::getName, Material::getCode)
.eq(Material::getType,0).eq(Material::getState,1);
List