package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.pojo.InspectionProductList;
import com.yuanchu.limslaboratory.pojo.Product;
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.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
* 前端控制器
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2023-07-17
*/
@Api(tags = "检验模块")
@RestController
@RequestMapping("/inspection")
public class InspectionController {
@Autowired
private InspectionService inspectionService;
@Autowired
private InspectionMaterialListService inspectionMaterialListService;
@Autowired
private InspectionProductListService inspectionProductListService;
@Autowired
private MaterialService materialService;
@ApiOperation("添加检验申请单")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "type", value = "检验类型", dataTypeClass = Integer.class, required = true),
})
@PostMapping("/addInspection")
public Result addInspection(@RequestHeader("X-Token") String token, int type) throws Exception {
Object object = RedisUtil.get(token);
Map unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
return Result.success(inspectionService.addInspection("" + unmarshal.get("name"), type));
}
@ApiOperation("查询所有检验单列表")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "state", value = "状态(为空=全部)", dataTypeClass = Integer.class)
})
@GetMapping("/selectAllInspection")
public Result selectAllInspection(int pageSize, int countSize, Integer state) {
return Result.success(inspectionService.selectAllInspection(pageSize, countSize, state));
}
@ApiOperation("查询检验单里面的物料信息")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "inspectionId", value = "报检单ID", dataTypeClass = String.class, required = true),
})
@PostMapping("/selectMaterialByInsId")
public Result selectMaterialByInsId(String inspectionId) {
return Result.success(inspectionMaterialListService.selectInspectionMaterialListByInsId(inspectionId));
}
@ApiOperation("查询物料信息")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
@ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true)
})
@GetMapping("/selectMaterialLimit")
public Result selectMaterialLimit(int pageSize, int countSize) {
return Result.success(materialService.selectMaterialLimit(pageSize, countSize));
}
@ApiOperation("选择物料信息")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "materialId", value = "物料ID", dataTypeClass = Integer.class, required = true),
})
@PostMapping("/selectMaterialById")
public Result selectMaterialById(String materialId) {
return Result.success(materialService.selectMaterialById(materialId));
}
}