package com.yuanchu.limslaboratory.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; 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.LinkDetectionMapper; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; import com.yuanchu.limslaboratory.pojo.LinkDetection; import com.yuanchu.limslaboratory.pojo.vo.InspectionVo; import com.yuanchu.limslaboratory.service.InspectionService; import com.yuanchu.limslaboratory.service.LinkBasicInformationService; 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 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; /** *

* 前端控制器 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2023-08-03 */ @Api(tags = "报检管理-->委托检验") @RestController @RequestMapping("/link-basic-table") public class LinkBasicInformationController { @Autowired private LinkBasicInformationService linkBasicInformationService; @Resource private InspectionService inspectionService; @Resource private LinkDetectionMapper linkDetectionMapper; @ApiOperation("链接-->获取链接") @GetMapping("/link") @AuthHandler public Result getLink() { Object link1 = null; try { link1 = RedisUtil.get("link"); } catch (Exception e) { String uuid = IdWorker.get32UUID(); RedisUtil.set("link", uuid, 60 * 24); return Result.success("success", uuid); } return Result.success(link1); } @ApiOperation(value = "分页表格") @ApiImplicitParams(value = { @ApiImplicitParam(name = "pageNo", value = "起始页", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "pageSize", value = "每一页数量", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "entrustCoding", value = "委托编号", dataTypeClass = String.class), @ApiImplicitParam(name = "sampleName", value = "样品名称", dataTypeClass = String.class), @ApiImplicitParam(name = "entrusted", value = "委托单位", dataTypeClass = String.class), @ApiImplicitParam(name = "inspectionStatus", value = "检验状态", dataTypeClass = Integer.class) }) @GetMapping("/page") @AuthHandler public Result getLinkBasicPage(Integer pageNo, Integer pageSize, String entrustCoding, String sampleName, String entrusted, Integer inspectionStatus) { IPage> linkBasicPage = linkBasicInformationService.getLinkBasicPage(new Page(pageNo, pageSize), entrustCoding, sampleName, entrusted, inspectionStatus); Map map = new HashMap<>(); map.put("total", linkBasicPage.getTotal()); map.put("row", linkBasicPage.getRecords()); return Result.success(map); } @ApiOperation("根据id查询Specifications表的Name") @GetMapping("/getSpecificationsName") public Result getSpecificationsName(String id){ return Result.success(linkBasicInformationService.getSpecificationsName(id)); } @ApiOperation("删除") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "委托样品id", dataTypeClass = Integer.class, required = true) }) @PostMapping("/delLink") @AuthHandler(type = InterfaceType.DELETE,menuId = MenuEnums.commissionInspection,isAdd = true) public Result delLink(Integer id){ linkBasicInformationService.delLink(id); return Result.success("删除成功!"); } @ApiOperation("选择版本") @GetMapping("/chooseVer") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "id", dataTypeClass = String.class, required = true), }) @AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.commissionInspection,isAdd = true) public Result chooseVer(String name, String id, String specifications) { LinkDetection linkDetection = linkDetectionMapper.selectById(id); return Result.success(linkBasicInformationService.chooseVer(linkDetection)); } @ApiOperation(value = "查看该版本下我们要做的项目要求") @ApiImplicitParams(value = { @ApiImplicitParam(name = "name", value = "产品名称", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "mcode", value = "产品编号", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "specifications", value = "规格型号", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "version", value = "版本(默认最新版本)", dataTypeClass = Integer.class,required = true ), @ApiImplicitParam(name = "id", value = "委托信息id", dataTypeClass = Integer.class,required = true ) }) @GetMapping("/lookProByVer") @AuthHandler(type = InterfaceType.SELECT,menuId = MenuEnums.commissionInspection,isAdd = true) public Result lookProByVer(String name, String mcode, String specifications,Integer version,Integer id) { return Result.success(linkBasicInformationService.lookProByVer(name,mcode, specifications,version,id)); } @ApiOperation(value = "委托品生成报检单") @PostMapping("/addInspect") @AuthHandler(type = InterfaceType.ADD,menuId = MenuEnums.commissionInspection,isAdd = true) public Result addInspect(@RequestHeader("X-Token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception { Object object = RedisUtil.get(token); Map unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); LinkDetection linkDetection = linkDetectionMapper.selectById(inspectionVo.getId()); inspectionVo.setMcode(linkDetection.getSampleNumber()); inspectionVo.setExperiment(linkDetection.getExperiment()); inspectionVo.setSpecificationId(linkDetection.getSpecificationsModels()); inspectionVo.setUnit(linkDetection.getUnit()); return Result.success(inspectionService.addInspect((Integer) unmarshal.get("id"), inspectionVo)); } }