zss
2023-08-07 8f6ffe3ec5691fe2eb1ab6caf49748ff94d8e0fb
检验单
已修改29个文件
已删除31个文件
已添加15个文件
3439 ■■■■■ 文件已修改
inspection-server/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialListController.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductListController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionRecordsController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMaterialListMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMaterialMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductListMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionRecordsMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Inspection.java 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterialList.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProductList.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Plan.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionDto.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionMaterialListDto.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionProductListDto.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionRecordsDto.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/FinPlanVo.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InsProductVo.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectDetailVo.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionProductListVo.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionMaterialListService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionMaterialService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionProductListService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionProductService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionRecordsService.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionMaterialListServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionMaterialServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductListServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionRecordsServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java 231 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMapper.xml 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMaterialListMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMaterialMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionProductListMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionProductMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionRecordsMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/PlanMapper.xml 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/RawMaterialMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Instrument.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/InstrumentService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Standard.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/MaterialMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/ProductMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/pom.xml
@@ -32,5 +32,10 @@
            <artifactId>laboratory-server</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.12</version>
        </dependency>
    </dependencies>
</project>
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
@@ -1,36 +1,35 @@
package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import java.text.ParseException;
import java.util.*;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.pojo.InspectionMaterialList;
import com.yuanchu.limslaboratory.pojo.InspectionProductList;
import com.yuanchu.limslaboratory.pojo.Product;
import com.yuanchu.limslaboratory.service.*;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
import com.yuanchu.limslaboratory.service.RawMaterialService;
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.*;
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.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.service.InspectionService;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 * ç”³è¯·è¡¨(Inspection)表控制层
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 * @author zss
 * @since 2023-08-03 13:03:36
 */
@Api(tags = "检验模块-->检验单")
@Api(tags = "试验管理-->检验申请")
@RestController
@RequestMapping("/inspection")
public class InspectionController {
@@ -38,83 +37,103 @@
    @Autowired
    private InspectionService inspectionService;
    @Autowired
    private InspectionMaterialListService inspectionMaterialListService;
    @Resource
    RawMaterialService rawMaterialService;
    @Autowired
    private InspectionProductListService inspectionProductListService;
    @Resource
    LinkBasicInformationService linkBasicInformationService;
    @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<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
        return Result.success(inspectionService.addInspection("" + unmarshal.get("name"), type));
    }
    @ApiOperation("查询所有检验单列表")
    @ApiOperation(value = "查询检验申请单列表")
    @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)
            @ApiImplicitParam(name = "message", value = "申请单号/原材料名称", dataTypeClass = String.class)
    })
    @GetMapping("/selectAllInspection")
    public Result selectAllInspection(int pageSize, int countSize, Integer state) {
        return Result.success(inspectionService.selectAllInspection(pageSize, countSize, state));
    @GetMapping("/selectInspectsList")
    public Result selectInspectsList(int pageSize, int countSize, String message) {
        IPage<Map<String, Object>> inspectionPage = inspectionService.selectInspectsList(new Page<Object>(pageSize, countSize), message);
        Map<String, Object> map = new HashMap<>();
        map.put("total", inspectionPage.getTotal());
        map.put("row", inspectionPage.getRecords());
        return Result.success(map);
    }
    @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("查询物料信息")
    @ApiOperation(value = "查询所有报检")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "type", value = "类型", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/selectMaterialLimit")
    public Result selectMaterialLimit(int pageSize, int countSize, int type) {
        return Result.success(materialService.selectMaterialLimit(pageSize, countSize, type));
    @GetMapping("/selectAll")
    public Result selectAll(Integer type) {
        switch (type) {
            case 0 :
                //原材料
                return Result.success(rawMaterialService.selectRawmaAll());
            case 1 :
                //委托单
                return Result.success(linkBasicInformationService.selectLinkAll());
            case 2 :
                //成品检验
                return Result.success("请输入检验信息!");
        }
        return Result.fail("类型错误!");
    }
    @ApiOperation("选择物料信息")
    @ApiOperation(value = "选择原材料报检")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "materialId", value = "物料ID", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "id", value = "原材料报检单id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "startTime", value = "检验开始日期", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "endTime", value = "检验结束日期", dataTypeClass = String.class, required = true)
    })
    @PostMapping("/selectMaterialById")
    public Result selectMaterialById(String materialId) {
        return Result.success(materialService.selectMaterialById(materialId));
    @GetMapping("/selectRawmaById")
    public Result selectRawmaById(Integer id, String startTime, String endTime) throws ParseException {
        return Result.success(rawMaterialService.selectRawmaById(id,startTime,endTime));
    }
    @ApiOperation("提交检验单申请")
    @ApiOperation(value = "选择委托报检和样品")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "inspectionId", value = "检验单ID", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "bid", value = "委托报检单id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "did", value = "委托报检样品id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/submitInspection")
    public Result submitInspection(String inspectionId) {
        inspectionService.subInspectionByInsId(inspectionId);
        return Result.success();
    @GetMapping("/selectLinkByid")
    public Result selectLinkByid(Integer bid, Integer did) {
        return Result.success(linkBasicInformationService.selectLinkByid(bid, did));
    }
    @ApiOperation("作废检验单申请")
    @ApiOperation(value = "新增检验单")
    @PostMapping("/addInspect")
    public Result addInspect(@RequestHeader("token") String token, @RequestBody InspectionVo inspectionVo) throws Exception {
        Object object = RedisUtil.get(token);
        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
        return Result.success(inspectionService.addInspect((Integer) unmarshal.get("id"), inspectionVo));
    }
    @ApiOperation(value = "根据检验单id查询原材料检验单详情")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "inspectionId", value = "检验单ID", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/delInspection")
    public Result delInspection(String inspectionId) {
        inspectionService.delInspectionByInsId(inspectionId);
        return Result.success();
    @GetMapping("/selectInspectsListById")
    public Result selectInspectsListById(Integer id) {
        return Result.success(inspectionService.selectInspectsListById(id));
    }
    @ApiOperation(value = "上报(更新检验状态)")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/updateInspectsById")
    public Result updateInspectsById(Integer id) {
        //如果已经上报了不能再一次上报
        Inspection inspection = inspectionService.getById(id);
        if (ObjectUtils.isNotEmpty(inspection.getInspectionStatus())) {
            return Result.fail("已经上报过了,不能再次上报!");
}
        return Result.success(inspectionService.updateInspectsById(id));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.ApiController;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.service.InspectionMaterialService;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
/**
 * (样品)检验单里面的物料(InspectionMaterial)表控制层
 *
 * @author zss
 * @since 2023-08-03 13:04:28
 */
@Api(tags = "(样品)检验单里面的物料接口")
@RestController
@RequestMapping("/inspectionMaterial")
public class InspectionMaterialController {
    @Autowired
    private InspectionMaterialService inspectionMaterialService;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialListController.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.api.ApiController;
import java.util.List;
import com.yuanchu.limslaboratory.pojo.InspectionProduct;
import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
import com.yuanchu.limslaboratory.service.InstrumentService;
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.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.service.InspectionProductService;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
 * ç”³è¯·å•下物料中的项目(InspectionProduct)表控制层
 *
 * @author zss
 * @since 2023-08-03 13:04:54
 */
@Api(tags = "试验管理-->检验申请-->检验项目")
@RestController
@RequestMapping("/inspectionProduct")
public class InspectionProductController {
    @Autowired
    private InspectionProductService inspectionProductService;
    @Resource
    InstrumentService instrumentService;
    @ApiOperation(value = "查询所有设备")
    @GetMapping("/selectInstrument")
    public Result selectInstrument() {
        return Result.success(instrumentService.selectInstrument());
    }
    @ApiOperation("选择设备信息")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "设备ID", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/selectInstrumentById")
    public Result selectInstrumentById(Integer id) {
        String equipmentName = instrumentService.getById(id).getEquipmentName();
        return Result.success(equipmentName);
    }
    @ApiOperation(value = "更新检验项目")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "testValue", value = "检测值", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "required", value = "标准值", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "internal", value = "内控值", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "name", value = "项目名称", dataTypeClass = String.class, required = true),
            @ApiImplicitParam(name = "inspectionMaterialId", value = "内控值", dataTypeClass = Integer.class, required = true)
    })
    @PostMapping("/updateInsProduct")
    public Result updateInsProduct(@RequestHeader("token") String token, @RequestBody InspectionProduct inspectionProduct) throws Exception {
        Object object = RedisUtil.get(token);
        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
        Integer userId = (Integer) unmarshal.get("id");
        return Result.success(inspectionProductService.updateInsProduct(userId,inspectionProduct));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductListController.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionRecordsController.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/RawMaterialController.java
@@ -29,7 +29,7 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-28
 */
@Api(tags = "1、物料表")
@Api(tags = "报检管理-->原材料报检")
@RestController
@RequestMapping("/raw-material")
public class RawMaterialController {
@@ -43,11 +43,11 @@
            @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 = "condition", value = "状态", dataTypeClass = String.class),
            @ApiImplicitParam(name = "condition", value = "状态", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "createTime", value = "来料日期", dataTypeClass = String.class)
    })
    @GetMapping("/selectAll")
    public Result<?> selectRawMaterial(Integer pageSize, Integer pageNo, String materialCoding, String materialName, String condition, String createTime) {
    public Result<?> selectRawMaterial(Integer pageSize, Integer pageNo, String materialCoding, String materialName, Integer condition, String createTime) {
        IPage<RawMaterial> iPage = rawMaterialService.selectRawMaterial(materialCoding, materialName, condition, createTime, new Page<Objects>(pageNo, pageSize));
        Map<String, Object> map = new HashMap<>();
        map.put("row", iPage.getRecords());
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
@@ -1,23 +1,28 @@
package com.yuanchu.limslaboratory.mapper;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.dto.InspectionDto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 * ç”³è¯·è¡¨(Inspection)表数据库访问层
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 * @author zss
 * @since 2023-08-03 13:03:36
 */
public interface InspectionMapper extends BaseMapper<Inspection> {
    //查询所有检验单列表
    List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state);
    /**
     * æŸ¥è¯¢æ£€éªŒç”³è¯·å•列表
     * @param page
     * @param message
     * @return
     */
    IPage<Map<String, Object>> selectInspectsList(Page<Object> page, String message);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMaterialListMapper.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMaterialMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.yuanchu.limslaboratory.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
/**
 * (样品)检验单里面的物料(InspectionMaterial)表数据库访问层
 *
 * @author zss
 * @since 2023-08-03 13:04:28
 */
public interface InspectionMaterialMapper extends BaseMapper<InspectionMaterial> {
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductListMapper.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.yuanchu.limslaboratory.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.InspectionProduct;
/**
 * ç”³è¯·å•下物料中的项目(InspectionProduct)表数据库访问层
 *
 * @author zss
 * @since 2023-08-03 13:04:54
 */
public interface InspectionProductMapper extends BaseMapper<InspectionProduct> {
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionRecordsMapper.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/LinkBasicInformationMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import java.util.List;
import java.util.Map;
@@ -19,4 +20,18 @@
public interface LinkBasicInformationMapper extends BaseMapper<LinkBasicInformation> {
    IPage<Map<String, Object>> getLinkBasicPage(Page<Object> page, String entrustCoding, String sampleName, String entrusted, Integer inspectionStatus);
    /**
     * æŸ¥è¯¢æ‰€æœ‰å§”托申请和样品
     * @return
     */
    List<Map<String, Object>> selectLinkAll();
    /**
     * é€‰æ‹©å§”托申请和样品
     * @param bid
     * @param did
     * @return
     */
    InspectionVo selectLinkByid(Integer bid, Integer did);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/RawMaterialMapper.java
@@ -4,7 +4,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.RawMaterial;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -18,5 +21,10 @@
 */
public interface RawMaterialMapper extends BaseMapper<RawMaterial> {
    IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, String condition, String createTime, Page<Objects> page);
    IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, Integer condition, String createTime, Page<Objects> page);
    List<RawMaterial> selectRawmaAll();
    InspectionVo selectRawmaById(Integer id);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Inspection.java
@@ -1,83 +1,89 @@
package com.yuanchu.limslaboratory.pojo;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * <p>
 * ç”³è¯·è¡¨(Inspection)表实体类
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 * @author zss
 * @since 2023-08-03 13:04:05
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Inspection对象", description="")
@Builder
@TableName("inspection")
public class Inspection implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "报检编号")
    private String id;
    /**
     * ç”³è¯·å•编号
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "报检类型")
    /**
     * ç”³è¯·å•编码
     **/
    private String code;
    /**
     * æ£€éªŒç±»åž‹ 0:原材料;1:产品;2:半成品;
     **/
    private Integer type;
    @ApiModelProperty(value = "报检状态 1:已检验;0未检验")
    /**
     * æ£€éªŒçŠ¶æ€ï¼š1:合格;0:不合格
     **/
    private Integer inspectionStatus;
    @ApiModelProperty(value = "是否合格 1:是;0否")
    private Integer qualifiedState;
    @ApiModelProperty(value = "1:待提交;2:已提交;0:已作废")
    /**
     * ${column.comment}
     **/
    private Integer state;
    /**
     * ç™»è®°æ—¥æœŸ
     **/
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    /**
     * ${column.comment}
     **/
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
    private Integer version;
    /**
     * å…³è” ç™»è®°äººï¼ˆç”¨æˆ·id)
     **/
    private Integer userId;
    @ApiModelProperty(value = "报检人")
    private String userName;
    /**
     * æ£€éªŒå¼€å§‹æ—¥æœŸ
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    @ApiModelProperty(value = "关联 æ£€éªŒäººï¼ˆç”¨æˆ·id)")
    private Integer inspectUserId;
    @ApiModelProperty(value = "检验开始日期")
    private LocalDateTime inspectStartTime;
    @ApiModelProperty(value = "检验结束日期")
    private LocalDateTime inspectEndTime;
    public Inspection(Integer type, Integer inspectionStatus, Integer state, Integer version, String userName) {
        this.type = type;
        this.inspectionStatus = inspectionStatus;
        this.state = state;
        this.version = version;
        this.userName = userName;
    /**
     * æ£€éªŒç»“束日期
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterial.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.yuanchu.limslaboratory.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * (样品)检验单里面的物料(InspectionMaterial)表实体类
 *
 * @author zss
 * @since 2023-08-03 13:04:28
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Builder
@TableName("inspection_material")
public class InspectionMaterial implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * ç‰©æ–™ç¼–码
     **/
    private String code;
    /**
     * ç‰©æ–™åç§°
     **/
    private String name;
    /**
     * æŠ¥æ£€æ•°é‡-物料数量
     **/
    private Integer num;
    /**
     * å•位
     **/
    private String unit;
    /**
     * ä¾›åº”商
     **/
    private String supplier;
    /**
     * è§„格名称-型号名称
     **/
    private String specifications;
    /**
     * æ¥æ–™æ—¥æœŸ
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date formTime;
    /**
     * ${column.comment}
     **/
    private Integer state;
    /**
     * ${column.comment}
     **/
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    /**
     * ${column.comment}
     **/
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
    /**
     * å…³è” ç”³è¯·å•id
     **/
    private Integer inspectionId;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterialList.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProduct.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
package com.yuanchu.limslaboratory.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.io.Serializable;
/**
 * ç”³è¯·å•下物料中的项目(InspectionProduct)表实体类
 *
 * @author zss
 * @since 2023-08-03 13:04:55
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Builder
@TableName("inspection_product")
public class InspectionProduct implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * é¡¹ç›®id
     **/
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * é¡¹ç›®åç§°
     **/
    private String name;
    /**
     * å•位
     **/
    private String unit;
    /**
     * è¦æ±‚值
     **/
    private String required;
    /**
     * å†…控值
     **/
    private String internal;
    /**
     * æ£€æµ‹å€¼
     **/
    private String testValue;
    /**
     * ç»“论 0:不合格;1:合格
     **/
    private Integer testState;
    /**
     * ${column.comment}
     **/
    private Integer state;
    /**
     * ${column.comment}
     **/
    @TableField(fill = FieldFill.INSERT)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;
    /**
     * ${column.comment}
     **/
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date updateTime;
    /**
     * å…³è” æŠ¥æ£€ç‰©æ–™id
     **/
    private Integer inspectionMaterialId;
    /**
     * å…³è” ç”¨æˆ·id è¯•验员
     **/
    private Integer userId;
    /**
     * å…³è” è®¾å¤‡id
     **/
    private Integer instrumentId;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProductList.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionRecords.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Plan.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/RawMaterial.java
@@ -60,10 +60,10 @@
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDateTime dateSurvey;
    @ApiModelProperty(value = "状态")
    @ApiModelProperty(value = "状态0:待检测;1:已检测")
    private Integer condition;
    @TableLogic(value = "1", delval = "0")
//    @TableLogic(value = "1", delval = "0")
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionDto.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionMaterialListDto.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionProductListDto.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionRecordsDto.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/FinPlanVo.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InsProductVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.yuanchu.limslaboratory.pojo.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import java.io.Serializable;
@Data
public class InsProductVo implements Serializable {
    /**
     * é¡¹ç›®åç§°
     **/
    @JsonSerialize
    private String name;
    /**
     * å•位
     **/
    @JsonSerialize
    private String unit;
    /**
     * æ ‡å‡†å€¼
     **/
    @JsonSerialize
    private String required;
    /**
     * å†…控值
     **/
    @JsonSerialize
    private String internal;
    /**
     * æ£€æµ‹å€¼
     **/
    @JsonSerialize
    private String testValue;
    /**
     * ç»“论 0:不合格;1:合格
     **/
    @JsonSerialize
    private Integer testState;
    /**
     * è®¾å¤‡åç§°
     **/
    @JsonSerialize
    private String instrumentName;
    /**
     * å…³è” ç”³è¯·å•id
     **/
    @JsonSerialize
    private Integer inspectionMaterialId;
    /**
     *  æ£€éªŒå‘˜
     **/
    @JsonSerialize
    private String userName;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectDetailVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.yuanchu.limslaboratory.pojo.vo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
//查询检验单详情(检验基本信息以及检验项目信息)
public class InspectDetailVo implements Serializable {
    /* æ£€éªŒè¯¦æƒ… */
    /**
     * æ¥æ–™æ—¥æœŸ
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date formTime;
    /**
     * ä¾›åº”商
     **/
    @JsonSerialize
    private String supplier;
    /**
     * åŽŸææ–™ç¼–ç 
     */
    @JsonSerialize
    private String code;
    /**
     * åŽŸææ–™åç§°
     */
    @JsonSerialize
    private String name;
    /**
     * åž‹å·è§„æ ¼
     */
    @JsonSerialize
    private String specifications;
    /**
     * å•位
     */
    @JsonSerialize
    private String unit;
    /**
     * æ•°é‡
     */
    @JsonSerialize
    private Integer num;
    /**
     * æ£€éªŒå¼€å§‹æ—¥æœŸ
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    /**
     * æ£€éªŒç»“束日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    /**
     * æŠ¥æ£€äººï¼ˆå½“前用户名)
     */
    @JsonSerialize
    private String userName;
    /* æ£€éªŒé¡¹ç›® */
    @JsonSerialize
    private List<InsProductVo> insProducts;
    /* æ£€éªŒç»“论 */
    /**
     * åˆæ ¼çŠ¶æ€ 0:不合格;1:合格
     */
    @JsonSerialize
    private Integer inspectionStatus;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionProductListVo.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
package com.yuanchu.limslaboratory.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
//新增检验单
@Data
public class InspectionVo implements Serializable {
    /**
     *检验类型 0:原材料;1:产品;2:半成品;
     **/
    @JsonSerialize
    private Integer type;
    /**
     * æ¥æ–™æ—¥æœŸ
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date formTime;
    /**
     * ä¾›åº”商
     **/
    @JsonSerialize
    private String supplier;
    /**
     * ç‰©æ–™ç¼–码
     **/
    @JsonSerialize
    private String mcode;
    /**
     * ç‰©æ–™åç§°
     **/
    @JsonSerialize
    private String name;
    /**
     * è§„格名称-型号名称
     **/
    @JsonSerialize
    private String specifications;
    /**
     * å•位
     **/
    @JsonSerialize
    private String unit;
    /**
     * æŠ¥æ£€æ•°é‡-物料数量
     **/
    @JsonSerialize
    private Integer num;
    /**
     * æ£€éªŒå¼€å§‹æ—¥æœŸ
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    /**
     * æ£€éªŒç»“束日期
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/PlanVo.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionMaterialListService.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionMaterialService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.yuanchu.limslaboratory.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
/**
 * (样品)检验单里面的物料(InspectionMaterial)表服务接口
 *
 * @author zss
 * @since 2023-08-03 13:04:28
 */
public interface InspectionMaterialService extends IService<InspectionMaterial> {
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionProductListService.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionProductService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.yuanchu.limslaboratory.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.InspectionProduct;
import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
/**
 * ç”³è¯·å•下物料中的项目(InspectionProduct)表服务接口
 *
 * @author zss
 * @since 2023-08-03 13:04:54
 */
public interface InspectionProductService extends IService<InspectionProduct> {
    /**
     * æ›´æ–°æ£€éªŒé¡¹ç›®
     * @param userId
     * @param inspectionProduct
     * @return
     */
    boolean updateInsProduct(Integer userId, InspectionProduct inspectionProduct);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionRecordsService.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
@@ -1,51 +1,53 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.dto.InspectionDto;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.pojo.vo.InspectDetailVo;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 * ç”³è¯·è¡¨(Inspection)表服务接口
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 * @author zss
 * @since 2023-08-03 13:03:36
 */
public interface InspectionService extends IService<Inspection> {
    /**
     * æ·»åŠ æ£€éªŒå•
     * @param userName
     * @param type
     * @return
     */
    Inspection addInspection(String userName,int type);
    /**
     * åˆ†é¡µæŸ¥è¯¢æ‰€æœ‰æ£€éªŒå•
     * @param pageSize
     * @param countSize
     * @param state
     *查询检验申请单列表
     * @param page
     * @param message
     * @return
     */
    List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state);
    IPage<Map<String, Object>> selectInspectsList(Page<Object> page, String message);
    /**
     *根据检验单id作废检验单申请
     * @param inspectionId
     * æ–°å¢žæ£€éªŒç”³è¯·è¡¨
     * @param id
     * @param
     * @return
     */
    void delInspectionByInsId(String inspectionId);
    Integer addInspect(Integer id, InspectionVo inspectionVo);
    /**
     * æ ¹æ®æ£€éªŒå•id提交检验申请
     * @param inspectionId
     *根据检验单id查询原材料检验单详情
     * @param id
     * @return
     */
    void subInspectionByInsId(String inspectionId);
    InspectDetailVo selectInspectsListById(Integer id);
    /**
     * ä¸ŠæŠ¥(更新检验单检验结果)
     * @param id
     * @return
     */
    boolean updateInspectsById(Integer id);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/LinkBasicInformationService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -23,4 +24,18 @@
    String addLinkBasicInformation(LinkBasicInformation linkBasicInformation);
    IPage<Map<String, Object>> getLinkBasicPage(Page<Object> page, String entrustCoding, String sampleName, String entrusted, Integer inspectionStatus);
    /**
     *查询所有委托检验和样品
     * @return
     */
    List<Map<String, Object>> selectLinkAll();
    /**
     * æ ¹æ®å§”托检验id和样品id查询委托检验和样品
     * @param bid
     * @param did
     * @return
     */
    InspectionVo selectLinkByid(Integer bid, Integer did);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/RawMaterialService.java
@@ -4,7 +4,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.RawMaterial;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -18,5 +22,20 @@
 */
public interface RawMaterialService extends IService<RawMaterial> {
    IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, String condition, String createTime, Page<Objects> page);
    IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, Integer condition, String createTime, Page<Objects> page);
    /**
     * æŸ¥è¯¢åŽŸææ–™æ£€éªŒ
     *
     * @return
     */
    List<RawMaterial> selectRawmaAll();
    /**
     * é€‰æ‹©åŽŸææ–™æŠ¥æ£€
     *
     * @param id
     * @return
     */
    InspectionVo selectRawmaById(Integer id, String startTime, String endTime) throws ParseException;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionMaterialListServiceImpl.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionMaterialServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.mapper.InspectionMaterialMapper;
import com.yuanchu.limslaboratory.pojo.InspectionMaterial;
import com.yuanchu.limslaboratory.service.InspectionMaterialService;
import org.springframework.stereotype.Service;
/**
 * (样品)检验单里面的物料(InspectionMaterial)表服务实现类
 *
 * @author zss
 * @since 2023-08-03 13:04:28
 */
@Service
public class InspectionMaterialServiceImpl extends ServiceImpl<InspectionMaterialMapper, InspectionMaterial> implements InspectionMaterialService {
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductListServiceImpl.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.mapper.InspectionProductMapper;
import com.yuanchu.limslaboratory.pojo.InspectionProduct;
import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
import com.yuanchu.limslaboratory.service.InspectionProductService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * ç”³è¯·å•下物料中的项目(InspectionProduct)表服务实现类
 *
 * @author zss
 * @since 2023-08-03 13:04:54
 */
@Service
public class InspectionProductServiceImpl extends ServiceImpl<InspectionProductMapper, InspectionProduct> implements InspectionProductService {
    @Resource
    InspectionProductMapper inspectionProductMapper;
    //更新检验项目
    @Override
    public boolean updateInsProduct(Integer userId, InspectionProduct inspectionProduct) {
        //赋值检验员id
        inspectionProduct.setUserId(userId);
        //判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格0
        String testValue = inspectionProduct.getTestValue();//检验值
        String required = inspectionProduct.getRequired();//标准值
        String internal = inspectionProduct.getInternal();//内控值
        inspectionProduct.setTestState(checkValues(required, internal, testValue));
        //根据检验项目名和关联的检验物料id来查询检验项目的数据
        LambdaUpdateWrapper<InspectionProduct> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(InspectionProduct::getInspectionMaterialId, inspectionProduct.getInspectionMaterialId())
                .eq(InspectionProduct::getName, inspectionProduct.getName());
        inspectionProductMapper.update(inspectionProduct, updateWrapper);
        return true;
    }
    /*判断检测值是否满足标准值和内控值的要求,如果不满足则检验结论为不合格*/
    private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
        boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
        boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
        if (isStandardValueSatisfied && isControlValueSatisfied) {
            return 1;
        } else {
            return 0;
        }
    }
    private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
        String substring = valueStr.substring(1, 2);
        if (substring.equals("=")) {
            String operator = valueStr.substring(0, 2);
            Double standardValue = Double.parseDouble(valueStr.substring(2));
            Double detectionValue = Double.parseDouble(detectionValueStr);
            switch (operator) {
                case ">=":
                    return detectionValue >= standardValue;
                case "<=":
                    return detectionValue <= standardValue;
                default:
                    return false;
            }
        } else {
            String operator = valueStr.substring(0, 1);
            Double standardValue = Double.parseDouble(valueStr.substring(1));
            Double detectionValue = Double.parseDouble(detectionValueStr);
            switch (operator) {
                case ">":
                    return detectionValue > standardValue;
                case "≥":
                    return detectionValue >= standardValue;
                case "≤":
                    return detectionValue <= standardValue;
                case "<":
                    return detectionValue < standardValue;
                case "=":
                    return detectionValue.equals(standardValue);
                default:
                    return false;
            }
        }
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionRecordsServiceImpl.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -1,102 +1,199 @@
package com.yuanchu.limslaboratory.service.impl;
import cn.hutool.core.lang.Snowflake;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yuanchu.limslaboratory.mapper.InspectionMaterialListMapper;
import com.yuanchu.limslaboratory.mapper.InspectionProductListMapper;
import com.yuanchu.limslaboratory.mapper.PlanMapper;
import com.yuanchu.limslaboratory.pojo.Inspection;
import com.yuanchu.limslaboratory.mapper.InspectionMapper;
import com.yuanchu.limslaboratory.pojo.InspectionMaterialList;
import com.yuanchu.limslaboratory.pojo.InspectionProductList;
import com.yuanchu.limslaboratory.pojo.Plan;
import com.yuanchu.limslaboratory.pojo.dto.InspectionDto;
import com.yuanchu.limslaboratory.service.InspectionProductListService;
import com.yuanchu.limslaboratory.service.InspectionService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.mapper.*;
import com.yuanchu.limslaboratory.pojo.*;
import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
import com.yuanchu.limslaboratory.pojo.vo.InspectDetailVo;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * <p>
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 * ç”³è¯·è¡¨(Inspection)表服务实现类
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 * @author zss
 * @since 2023-08-03 13:03:36
 */
@Service
public class InspectionServiceImpl extends ServiceImpl<InspectionMapper, Inspection> implements InspectionService {
    @Resource
    private InspectionMapper inspectionMapper;
    InspectionMapper inspectionMapper;
    @Resource
    private PlanMapper planMapper;
    InspectionMaterialMapper inspectionMaterialMapper;
    @Resource
    InspectionMaterialListMapper inspectionMaterialListMapper;
    InspectionProductService inspectionProductService;
    @Resource
    InspectionProductListService inspectionProductListService;
    InspectionProductMapper inspectionProductMapper;
    //添加检验申请单
    @Resource
    MaterialMapper materialMapper;
    @Resource
    StandardService standardService;
    @Resource
    SpecificationsService specificationsService;
    @Resource
    ProductMapper productMapper;
    @Resource
    InstrumentService instrumentService;
    @Resource
    UserMapper userMapper;
    /**
     * æŸ¥è¯¢æ£€éªŒç”³è¯·å•列表
     *
     * @param message
     * @return
     */
    @Override
    public Inspection addInspection(String userName, int type) {
        Inspection inspection = new Inspection(type, 0, 1, 1, userName);
        int judge = inspectionMapper.insert(inspection);
        return judge > 0 ? inspection : null;
    public IPage<Map<String, Object>> selectInspectsList(Page<Object> page, String message) {
        return inspectionMapper.selectInspectsList(page, message);
    }
    //查询所有检验单列表
    /**
     * æ–°å¢žæ£€éªŒç”³è¯·è¡¨
     *
     * @param id
     * @param
     * @return
     */
    @Override
    public List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state) {
        return inspectionMapper.selectAllInspection((pageSize - 1) * countSize, pageSize * countSize, state);
    public Integer addInspect(Integer id, InspectionVo inspectionVo) {
        /*新增检验申请表*/
        Inspection inspection = Inspection.builder()
                .startTime(inspectionVo.getStartTime())
                .endTime(inspectionVo.getEndTime())
                .type(inspectionVo.getType())
                .code(new Snowflake(1, 1).nextIdStr())
                .userId(id)
                .build();
        inspectionMapper.insert(inspection);
        /*新增检验样品表*/
        InspectionMaterial inspectionMaterial = InspectionMaterial.builder()
                .code(inspectionVo.getMcode())
                .name(inspectionVo.getName())
                .num(inspectionVo.getNum())
                .unit(inspectionVo.getUnit())
                .supplier(inspectionVo.getSupplier())
                .specifications(inspectionVo.getSpecifications())
                .formTime(inspectionVo.getFormTime())
                .inspectionId(inspection.getId())
                .build();
        inspectionMaterialMapper.insert(inspectionMaterial);
        /*新增检验项目表*/
        //获取物料id
        Material material = materialMapper.selectOne(Wrappers.<Material>query()
                .eq("name", inspectionVo.getName())
                .eq("code", inspectionVo.getMcode()));
        //获取规格名称和型号名称
        String specification = inspectionVo.getSpecifications();
        String[] split = specification.split("-");
        String stName = split[0];
        String spName = split[1];
        //获取规格id
        Standard standard = standardService.getOne(Wrappers.<Standard>query()
                .eq("name", stName)
                .eq("material_id", material.getId()));
        //获取型号id
        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
                .eq("name", spName)
                .eq("standard_id", standard.getId()));
        //根据型号id查询项目信息
        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId()));
        ArrayList<InspectionProduct> list = new ArrayList<>();
        for (Product product : productList) {
            InspectionProduct rawInsProduct = InspectionProduct.builder()
                    .name(product.getName())
                    .unit(product.getUnit())
                    .required(product.getRequired())
                    .internal(product.getInternal())
                    .inspectionMaterialId(material.getId())
                    .build();
            list.add(rawInsProduct);
        }
        //检验项目批量添加
        inspectionProductService.saveBatch(list);
        return inspection.getId();
    }
    //作废申请检验单
    //根据检验单id查询原材料检验单详情
    @Override
    public void delInspectionByInsId(String inspectionId) {
        /*检验单作废*/
        Inspection inspection = inspectionMapper.selectById(inspectionId);
        inspection.setState(0);
    public InspectDetailVo selectInspectsListById(Integer id) {
        /*将检验单基本信息查询出来并封装到RawInspectVo对象中*/
        Inspection inspection = inspectionMapper.selectById(id);
        InspectDetailVo inspectDetailVo = new InspectDetailVo();
        //报检人
        User user = userMapper.selectById(inspection.getUserId());
        inspectDetailVo.setUserName(user.getName());
        //报检开始时间和结束时间
        inspectDetailVo.setStartTime(inspection.getStartTime());
        inspectDetailVo.setEndTime(inspection.getEndTime());
        //检验结论
        inspectDetailVo.setInspectionStatus(inspection.getInspectionStatus());
        //查询检验物料
        InspectionMaterial inspectionMaterial = inspectionMaterialMapper.selectOne(Wrappers.<InspectionMaterial>query().eq("inspection_id", id));
        //来料日期,供应商名称,原材料编码,原材料名称,规格型号,单位,数量
        BeanUtils.copyProperties(inspectionMaterial, inspectDetailVo);
        /*查询检验单里面的检验项目,并封装到RawInspectVo对象中*/
        LambdaQueryWrapper<InspectionProduct> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(InspectionProduct::getInspectionMaterialId, inspectionMaterial.getId());
        List<InspectionProduct> inspectionProducts = inspectionProductMapper.selectList(queryWrapper);
        //这里查到的设备id和检验员id要查询名称
        List<InsProductVo> insProductVos = inspectionProducts.stream().map(insProduct -> {
            //将一个对象的值赋值给另一个对象
            InsProductVo insProductVo = new InsProductVo();
            BeanUtils.copyProperties(insProduct, insProductVo);
            //获取设备名(前提是如果存在)
            if (insProduct.getInstrumentId() != null) {
                String equipmentName = instrumentService.getById(insProduct.getInstrumentId()).getEquipmentName();
                insProductVo.setInstrumentName(equipmentName);
            }
            //获取用户名(前提是如果存在)
            if (insProduct.getUserId() != null) {
                String userName = userMapper.selectById(insProduct.getUserId()).getName();
                insProductVo.setUserName(userName);
            }
            //项目关联物料id
            insProductVo.setInspectionMaterialId(inspectionMaterial.getId());
            return insProductVo;
        }).collect(Collectors.toList());
        inspectDetailVo.setInsProducts(insProductVos);
        return inspectDetailVo;
    }
    //更新检验单检验结果
    @Override
    public boolean updateInspectsById(Integer id) {
        //更新检验单里面的检验状态和检验结论
        InspectDetailVo inspectDetailVo = selectInspectsListById(id);
        Inspection inspection = Inspection.builder()
                .id(id)
                .inspectionStatus(inspectDetailVo.getInspectionStatus())
                .build();
        inspectionMapper.updateById(inspection);
        /*检验计划作废*/
        UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("inspection_id", inspectionId).set("state", 0);
        planMapper.update(new Plan(), updateWrapper);
        /*检验样品作废(根据报检单id删除样品信息)*/
        UpdateWrapper<InspectionMaterialList> wrapper1 = new UpdateWrapper<>();
        wrapper1.eq("inspection_id", inspectionId).set("state", 0);
        inspectionMaterialListMapper.update(new InspectionMaterialList(), wrapper1);
        /*检验样品中的检验项目作废*/
        //查出检验样品id
        LambdaQueryWrapper<InspectionMaterialList> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(InspectionMaterialList::getInspectionId,inspectionId);
        List<InspectionMaterialList> inspectionMaterialLists = inspectionMaterialListMapper.selectList(queryWrapper);
        for (InspectionMaterialList inspectionMaterialList : inspectionMaterialLists) {
            UpdateWrapper<InspectionProductList> wrapper = new UpdateWrapper<>();
            wrapper.eq("inspection_material_list_id", inspectionMaterialList.getId()).set("state", 0);
            inspectionProductListService.update(new InspectionProductList(), wrapper);
        //生成报告单
        return true;
        }
    }
    //提交申请检验单
    @Override
    public void subInspectionByInsId(String inspectionId) {
        Inspection inspection = inspectionMapper.selectById(inspectionId);
        //状态改为已提交2
        inspection.setState(2);
        inspectionMapper.updateById(inspection);
        //计划表新增
        Plan plan = Plan.builder().inspectionId(inspectionId).state(1).userId(inspection.getInspectUserId()).createTime(new Date()).build();
        planMapper.insert(plan);
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.LinkBasicInformation;
import com.yuanchu.limslaboratory.mapper.LinkBasicInformationMapper;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.LinkBasicInformationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.service.LinkDetectionService;
@@ -48,4 +49,18 @@
    public IPage<Map<String, Object>> getLinkBasicPage(Page<Object> page, String entrustCoding, String sampleName, String entrusted, Integer inspectionStatus) {
        return linkBasicInformationMapper.getLinkBasicPage(page, entrustCoding, sampleName, entrusted, inspectionStatus);
    }
    //查询所有委托检验和样品
    @Override
    public List<Map<String, Object>> selectLinkAll() {
        return linkBasicInformationMapper.selectLinkAll();
    }
    //根据委托检验id和样品id查询委托检验和样品
    @Override
    public InspectionVo selectLinkByid(Integer bid, Integer did) {
        InspectionVo inspectionVo = linkBasicInformationMapper.selectLinkByid(bid, did);
        inspectionVo.setType(1);
        return inspectionVo;
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
ÎļþÒÑɾ³ý
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RawMaterialServiceImpl.java
@@ -1,14 +1,23 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Instrument;
import com.yuanchu.limslaboratory.pojo.RawMaterial;
import com.yuanchu.limslaboratory.mapper.RawMaterialMapper;
import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
import com.yuanchu.limslaboratory.service.RawMaterialService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -26,8 +35,44 @@
    @Resource
    private RawMaterialMapper rawMaterialMapper;
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param materialCoding
     * @param materialName
     * @param condition
     * @param createTime
     * @param page
     * @return
     */
    @Override
    public IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, String condition, String createTime, Page<Objects> page) {
    public IPage<RawMaterial> selectRawMaterial(String materialCoding, String materialName, Integer condition, String createTime, Page<Objects> page) {
        return rawMaterialMapper.selectRawMaterial(materialCoding, materialName, condition, createTime, page);
    }
    /**
     * æŸ¥è¯¢æ‰€æœ‰åŽŸææ–™æŠ¥æ£€å•
     *
     * @return
     */
    @Override
    public List<RawMaterial> selectRawmaAll() {
        return rawMaterialMapper.selectRawmaAll();
    }
    /**
     * é€‰æ‹©åŽŸææ–™æŠ¥æ£€
     *
     * @param id
     * @return
     */
    @Override
    public InspectionVo selectRawmaById(Integer id, String startTime, String endTime) throws ParseException {
        InspectionVo inspectionVo = rawMaterialMapper.selectRawmaById(id);
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        inspectionVo.setStartTime(formatter.parse(startTime));
        inspectionVo.setEndTime(formatter.parse(endTime));
        inspectionVo.setType(0);
        return inspectionVo;
    }
}
inspection-server/src/main/resources/mapper/InspectionMapper.xml
@@ -1,15 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.limslaboratory.mapper.InspectionMapper">
    <select id="selectAllInspection" resultType="com.yuanchu.limslaboratory.pojo.dto.InspectionDto">
        select i.id, type, inspection_status, qualified_state, i.state, i.create_time, user_name, inspect_user_id,
        inspect_start_time, inspect_end_time, u.name inspectUserName
        from lims_laboratory.inspection i left join lims_laboratory.user u
        on i.inspect_user_id = u.id
        <if test="state!=null">
            where state = #{state}
    <select id="selectInspectsList" resultType="map">
        select i.id,
        i.code icode,
        type,
        DATE_FORMAT(`form_time`,'%Y-%m-%d'),
        supplier,
        im.code mcode,
        im.name,
        specifications,
        unit,
        num,
        DATE_FORMAT(i.`create_time`,'%Y-%m-%d'),
        u.name userName,
        inspection_status,
        DATE_FORMAT(i.`start_time`,'%Y-%m-%d'),
        DATE_FORMAT(i.`end_time`,'%Y-%m-%d')
        from lims_laboratory.inspection i
        join lims_laboratory.user u on i.user_id = u.id
        join lims_laboratory.inspection_material im on i.id = im.inspection_id
        where   i.state=1
        <if test="message!=null">
            and i.code like concat('%', #{message}, '%')
            or im.name like concat('%', #{message}, '%')
        </if>
        order by i.create_time desc
        limit #{pageSize},#{countSize}
    </select>
</mapper>
inspection-server/src/main/resources/mapper/InspectionMaterialListMapper.xml
ÎļþÒÑɾ³ý
inspection-server/src/main/resources/mapper/InspectionMaterialMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.limslaboratory.mapper.InspectionMaterialMapper">
</mapper>
inspection-server/src/main/resources/mapper/InspectionProductListMapper.xml
ÎļþÒÑɾ³ý
inspection-server/src/main/resources/mapper/InspectionProductMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yuanchu.limslaboratory.mapper.InspectionProductMapper">
</mapper>
inspection-server/src/main/resources/mapper/InspectionRecordsMapper.xml
ÎļþÒÑɾ³ý
inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml
@@ -21,4 +21,33 @@
            AND d.`inspection_status` = #{inspectionStatus}
        </if>
    </select>
    <select id="selectLinkAll" resultType="java.util.Map">
        SELECT l.`id`, l.`entrust_coding`, l.`entrusted`, d.`samples_number`, d.`sample_name`, d.`specifications_models`,
        DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') inspectionTime, l.`completion_deadline`, l.`contacts`, d.`date_survey`, d.`inspection_status`
        FROM lims_laboratory.link_basic_information l, lims_laboratory.link_detection d
        WHERE l.`id` = d.`link_basic_id`
        AND l.`state` = 1
    </select>
    <select id="selectLinkByid" resultType="com.yuanchu.limslaboratory.pojo.vo.InspectionVo">
        SELECT l.`inspection_time` formTime,
        l.`entrusted` supplier,
        d.`sample_number` mcode,
        d.`sample_name` name,
        d.`specifications_models` specifications,
        d.`unit`,
        d.`samples_number` num,
        d.date_survey startTime,
        l.completion_deadline endTime
        FROM lims_laboratory.link_basic_information l, lims_laboratory.link_detection d
        WHERE l.`id` = d.`link_basic_id`
          AND l.`state` = 1
        <if test="bid!=null">
            and l.id=#{bid}
        </if>
        <if test="did!=null">
            and d.id=#{did}
        </if>
    </select>
</mapper>
inspection-server/src/main/resources/mapper/PlanMapper.xml
ÎļþÒÑɾ³ý
inspection-server/src/main/resources/mapper/RawMaterialMapper.xml
@@ -19,4 +19,19 @@
            AND DATE_FORMAT(r.`create_time`,'%Y-%m-%d') = #{createTime}
        </if>
    </select>
    <select id="selectRawmaAll" resultType="com.yuanchu.limslaboratory.pojo.RawMaterial">
        select * from lims_laboratory.raw_material where state=1
    </select>
    <select id="selectRawmaById" resultType="com.yuanchu.limslaboratory.pojo.vo.InspectionVo">
        select create_time formTime,
               supplier_name supplier,
               material_coding mcode,
               material_name name,
               specifications_models specifications,
               unit ,
               quantity num
        from lims_laboratory.raw_material
        where id=#{id}
    </select>
</mapper>
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/InstrumentMapper.java
@@ -18,7 +18,6 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-20
 */
@Mapper
public interface InstrumentMapper extends BaseMapper<Instrument> {
    IPage<Map<String, Object>> getListInstrumentInformation(Integer conditions,Boolean whetherWhether, String numberOrNameOrSpecifications, Integer classifyId, Page<Objects> page);
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Instrument.java
@@ -39,6 +39,7 @@
    private Integer userId;
    @ApiModelProperty(value = "保管人:用户表关联Id", hidden = true)
    @TableField(value = "")
    private Integer createUserId;
    @ApiModelProperty(value = "仪器设备编号", example = "JSTC-W1-00001", required = true)
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/InstrumentService.java
@@ -40,4 +40,5 @@
     * @return
     */
    List<Map> selectInstrument();
}
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
@@ -19,6 +19,4 @@
    //查询物料信息
    List<Map> selectMaterialLimit(int num1,int num2, int type);
    //根据物料id查询物料信息
    Map selectMaterialById(String materialId);
}
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java
@@ -20,7 +20,8 @@
 */
public interface ProductMapper extends BaseMapper<Product> {
    List<Product> selectProductByMaterialId(String materialId);
    //根据物料id查询检验项目
    List<Map> selectProductByMaterialId(int materialId);
    IPage<Map<String, Object>> pageProductInformation(String productCodeOrName, Integer specificationsId, Page<Objects> page);
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Specifications.java
@@ -30,11 +30,11 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "规格id", hidden = true)
    @ApiModelProperty(value = "型号id", hidden = true)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "规格名称", example = "AB", required = true)
    @ApiModelProperty(value = "产品型号名称", example = "AB", required = true)
    private String name;
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
@@ -55,7 +55,7 @@
    @Version
    private Integer version;
    @ApiModelProperty(value = "关联字段 ç”¨æˆ·id", hidden = true)
    @ApiModelProperty(value = "关联字段 è§„æ ¼id", hidden = true)
    private Integer standardId;
}
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Standard.java
@@ -28,11 +28,11 @@
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "标准编号 yyMMdd000001(000001++)", example = "230711000001", required = true)
    @ApiModelProperty(value = "规格编号 yyMMdd000001(000001++)", example = "230711000001", required = true)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "标准名称", example = "光纤", required = true)
    @ApiModelProperty(value = "规格名称", example = "光纤", required = true)
    private String name;
    @TableLogic(value = "1", delval = "0")
standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java
@@ -20,7 +20,6 @@
    List<Map> selectMaterialLimit(int pageSize,int countSize, int type);
    Map selectMaterialById(String materialId);
    /**
     * åˆ é™¤ç­‰äºŽMaterialId的数据
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
@@ -51,11 +51,7 @@
        return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize, type);
    }
    //根据物料id查询物料信息
    @Override
    public Map selectMaterialById(String materialId) {
        return materialMapper.selectMaterialById(materialId);
    }
    @Override
    public Integer deleteMaterialInformation(Integer materialId) {
standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -3,31 +3,11 @@
<mapper namespace="com.yuanchu.limslaboratory.mapper.MaterialMapper">
    <select id="selectMaterialLimit" resultType="Map">
        select id, name
        select id,code, name
        from lims_laboratory.material
        where state = 1
        and type = #{type}
        order by create_time desc
            limit #{num1},#{num2}
    </select>
    <select id="selectMaterialById" resultType="Map">
        select m.id,
               m.num,
               m.supplier,
               m.name,
               m.location,
               m.batch,
               m.reel_number                reelNumber,
               concat(s.name, '/', sn.name) specificationSerialNum,
               s.voltage_level              voltageLevel,
               s.cross_section              crossSection,
               s.number_of_cores            numberOfCores,
               s.instruct
        from lims_laboratory.material m,
             lims_laboratory.specifications s,
             lims_laboratory.serial_number sn
        where m.specifications_id = s.id
          and s.serial_id = sn.id
        and m.id=#{materialId}
    </select>
</mapper>
standard-server/src/main/resources/mapper/ProductMapper.xml
@@ -17,4 +17,13 @@
        FROM product p
        WHERE p.`father` = #{father}
    </select>
    <select id="selectProductByMaterialId" resultType="Map">
        select p.name,unit,required,internal
        from lims_laboratory.product p,
             lims_laboratory.specifications sp,
             lims_laboratory.standard st
        where specifications_id=sp.id
          and standard=st.id
        and material_id=#{materialId}
    </select>
</mapper>
sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
@@ -1,5 +1,4 @@
package com.yuanchu.limslaboratory;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@@ -12,5 +11,6 @@
        System.out.println("newString === " + newString);
    }
}