XiaoRuby
2023-07-26 30f6da8bf0143906b42fa600f6a604cea6c81f71
Merge remote-tracking branch 'origin/master'

# Conflicts:
# standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
# standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java
# standard-server/src/main/java/com/yuanchu/limslaboratory/controller/SerialNumberController.java
# standard-server/src/main/java/com/yuanchu/limslaboratory/controller/StandardsController.java
# standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java
已修改33个文件
已添加6个文件
885 ■■■■■ 文件已修改
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialListController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductListController.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionRecordsController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMaterialListMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductListMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionRecordsMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterialList.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProductList.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Plan.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionDto.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionRecordsDto.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/PlanDto.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionMaterialListService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionProductListService.java 6 ●●●● 补丁 | 查看 | 原始文档 | 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 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionMaterialListServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductListServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | 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 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionMaterialListMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionProductListMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/InspectionRecordsMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/resources/mapper/PlanMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/InstrumentController.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/resources/mapper/UserMapper.xml 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java
@@ -29,7 +29,7 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 */
@Api(tags = "检验模块")
@Api(tags = "检验模块-->检验单")
@RestController
@RequestMapping("/inspection")
public class InspectionController {
@@ -52,10 +52,7 @@
    })
    @PostMapping("/addInspection")
    public Result addInspection(@RequestHeader("X-Token") String token, int type) throws Exception {
        System.out.println(token);
        System.out.println(type);
        Object object = RedisUtil.get(token);
        System.out.println(object);
        Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class);
        return Result.success(inspectionService.addInspection("" + unmarshal.get("name"), type));
    }
@@ -99,7 +96,7 @@
        return Result.success(materialService.selectMaterialById(materialId));
    }
    @ApiOperation("提交申请")
    @ApiOperation("提交检验单申请")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "inspectionId", value = "检验单ID", dataTypeClass = String.class, required = true),
    })
@@ -108,7 +105,7 @@
        return Result.success(inspectionService.subInspectionByInsId(inspectionId));
    }
    @ApiOperation("作废申请")
    @ApiOperation("作废检验单申请")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "inspectionId", value = "检验单ID", dataTypeClass = String.class, required = true),
    })
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionMaterialListController.java
@@ -1,9 +1,7 @@
package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.yuanchu.limslaboratory.pojo.InspectionMaterialList;
import com.yuanchu.limslaboratory.pojo.Material;
import com.yuanchu.limslaboratory.service.InspectionMaterialListService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
@@ -12,11 +10,8 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
@@ -27,7 +22,7 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 */
@Api(tags = "检验模块")
@Api(tags = "检验模块-->检验单-->样品相关")
@RestController
@RequestMapping("/inspectionMaterialList")
public class InspectionMaterialListController {
@@ -35,7 +30,7 @@
    @Autowired
    InspectionMaterialListService inspectionMaterialListService;
    @ApiOperation("添加样品")
    @ApiOperation("添加检验单中的检验样品")
    @PostMapping("/addInspectionMaterialList")
    public Result addInspectionMaterialList(@RequestHeader("X-Token") String token, @RequestBody InspectionMaterialList inspectionMaterialList) throws Exception {
        inspectionMaterialList.setState(1);
@@ -62,7 +57,7 @@
        return Result.success(inspectionMaterialListService.getById(inspectionMaterialListId));
    }
    @ApiOperation("修改样品信息")
    @ApiOperation("根据样品id修改样品信息")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "inspectionMaterialListId", value = "样品ID", dataTypeClass = Integer.class, required = true),
    })
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionProductListController.java
@@ -1,14 +1,16 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.User;
import com.yuanchu.limslaboratory.service.UserService;
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * <p>
@@ -18,9 +20,26 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 */
@Api(tags = "检验模块-->分配计划-->检验项目")
@RestController
@RequestMapping("/inspection-product-list")
public class InspectionProductListController {
    @Resource
    UserService userService;
    @ApiOperation("查询试验员信息")
    @GetMapping("/selectUser")
    public Result selectUser() {
        return Result.success(userService.selectUser());
    }
    @ApiOperation("选择试验员信息")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "用户ID", dataTypeClass = Integer.class, required = true),
    })
    @PostMapping("/selectUserById")
    public Result selectUserById(Integer id) {
        return Result.success(userService.selectByUserId(id));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionRecordsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.dto.InspectionRecordsDto;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yuanchu.limslaboratory.service.InspectionRecordsService;
/**
 * æ£€æµ‹è®°å½•(InspectionRecords)表控制层
 *
 * @author zss
 * @since 2023-07-24 14:05:11
 */
@Api(tags = "检验模块-->检测记录")
@RestController
@RequestMapping("/inspectionRecords")
@Slf4j
public class InspectionRecordsController {
    @Autowired
    private InspectionRecordsService inspectionRecordsService;
    @ApiOperation("根据样品的项目id以及状态(待提交)查询检测记录")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "productId", value = "样品下的项目ID", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "submitState", value = "状态(为空=待提交)", dataTypeClass = Integer.class)
    })
    @GetMapping("/selectByProductId/{productId}")
    public Result selectByProductId(@PathVariable Integer productId, Integer submitState) {
        return Result.success(inspectionRecordsService.selectByProductId(productId,submitState));
    }
    @ApiOperation("根据样品的项目id以及状态(待提交)修改检测记录")
    @PutMapping("/upByProductId")
    public Result upByProductId(@RequestBody InspectionRecordsDto inspectionRecordsDto) {
        inspectionRecordsService.upByProductId(inspectionRecordsDto);
        return Result.success("修改成功!");
    }
    /**
     * å°†å¾…提交的的检验项目的检测记录的状态转为待审核
     * @param id
     * @return
     */
    @ApiOperation("保存并提交检验报告")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验记录ID", dataTypeClass = Integer.class, required = true),
    })
    @PostMapping("/submitRecords/{id}")
    public Result submitRecords(@PathVariable Integer id) {
        inspectionRecordsService.submitRecords(id);
        return Result.success("提交成功!");
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/PlanController.java
@@ -1,7 +1,7 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.Plan;
import com.yuanchu.limslaboratory.pojo.InspectionProductList;
import com.yuanchu.limslaboratory.service.PlanService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
@@ -20,7 +20,7 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-17
 */
@Api(tags = "检验模块")
@Api(tags = "检验模块-->检验计划")
@RestController
@RequestMapping("/plan")
public class PlanController {
@@ -28,7 +28,7 @@
    @Resource
    private PlanService planService;
    @ApiOperation("查询所有检验计划表")
    @ApiOperation("查询所有检验计划分配")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true),
@@ -39,21 +39,39 @@
        return Result.success(planService.selectAllPlan(pageSize, countSize, state));
    }
    @ApiOperation("查询检验计划里面的分配信息")
    @ApiOperation("查询检验计划里面的检验项目")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "样品编号", dataTypeClass = Integer.class, required = true)
            @ApiImplicitParam(name = "id", value = "样品id", dataTypeClass = Integer.class, required = true)
    })
    @PutMapping("/selectPlanById/{id}")
    public Result selectPlanById(@PathVariable Integer id) {
        return Result.success(planService.selectById(id));
    @GetMapping("/selectProductById/{id}")
    public Result selectProductById(@PathVariable Integer id) {
        return Result.success(planService.selectProductById(id));
    }
    @ApiOperation("分配检验计划中分配项目")
    @PostMapping("/upPlan")
    public Result upPlan(@RequestBody InspectionProductList inspectionProductList) {
        planService.upPlan(inspectionProductList);
        return Result.success();
    }
    @ApiOperation("作废检验计划")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "检验计划ID", dataTypeClass = Integer.class, required = true),
    })
    @PostMapping("/delPlan")
    public Result delPlan(Integer id) {
    @PutMapping("/delPlan/{id}")
    public Result delPlan(@PathVariable Integer id) {
        return Result.success(planService.delPlan(id));
    }
    @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("/selectInspection")
    public Result selectInspection(int pageSize, int countSize, Integer state) {
        return Result.success(planService.selectInspection(pageSize,countSize,state));
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMapper.java
@@ -17,8 +17,7 @@
 */
public interface InspectionMapper extends BaseMapper<Inspection> {
    //查询所有检验单列表
    List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state);
    int selectInspectToCount(Integer state);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionMaterialListMapper.java
@@ -15,6 +15,7 @@
 */
public interface InspectionMaterialListMapper extends BaseMapper<InspectionMaterialList> {
    //查询检验单里面的物料信息
    List<InspectionMaterialList> selectInspectionMaterialListByInsId(String insId);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionProductListMapper.java
@@ -19,6 +19,7 @@
 */
public interface InspectionProductListMapper extends BaseMapper<InspectionProductList> {
    //添加检验项目
    int addInspectionProductList(List<InspectionProductList> list);
    //根据样品id查询检验项目
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/InspectionRecordsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.yuanchu.limslaboratory.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanchu.limslaboratory.pojo.InspectionRecords;
import com.yuanchu.limslaboratory.pojo.dto.InspectionRecordsDto;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
 * æ£€æµ‹è®°å½•(InspectionRecords)表数据库访问层
 *
 * @author zss
 * @since 2023-07-24 14:05:11
 */
public interface InspectionRecordsMapper extends BaseMapper<InspectionRecords> {
    //根据样品编号id以及状态(待提交)查询检测记录
    InspectionRecordsDto selectByProductId(Integer productId,Integer submitState);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/PlanMapper.java
@@ -5,6 +5,7 @@
import com.yuanchu.limslaboratory.pojo.dto.PlanDto;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -16,5 +17,9 @@
 */
public interface PlanMapper extends BaseMapper<Plan> {
    List<PlanDto> selectAllPlan(int pageSize, int countSize, Integer state);
    //查询所有检验计划分配
    Map selectAllPlan(int pageSize, int countSize, Integer state);
    //查询成品检验
    List<PlanDto> selectInspection(int pageSize, int countSize, Integer state);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionMaterialList.java
@@ -27,7 +27,7 @@
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "id", hidden = true)
    private Integer id;
    private int id;
    @ApiModelProperty(value = "materialId")
    private String materialId;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/InspectionProductList.java
@@ -52,9 +52,11 @@
    private String internal;
    @ApiModelProperty(value = "开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;
    @ApiModelProperty(value = "结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;
    @TableLogic(value = "1", delval = "0")
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Plan.java
@@ -61,5 +61,7 @@
    @ApiModelProperty(value = "关联 ç”¨æˆ·id(负责人id)")
    private Integer userId;
    @ApiModelProperty(value = "关联 è®¾å¤‡id")
    private Integer deviceId;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionDto.java
@@ -1,18 +1,9 @@
package com.yuanchu.limslaboratory.pojo.dto;
import com.yuanchu.limslaboratory.pojo.Inspection;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value="InspectionDto检验单对象", description="")
public class InspectionDto extends Inspection implements Serializable {
    private static final long serialVersionUID = 1L;
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/InspectionRecordsDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.yuanchu.limslaboratory.pojo.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.io.Serializable;
import java.time.LocalDateTime;
public class InspectionRecordsDto implements Serializable {
    //检测项目
    @JsonSerialize
    private String name;
    //试验员
    @JsonSerialize
    private String userName;
    //试验开始日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;
    //试验结束日期
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;
    //试验方法
    @JsonSerialize
    private String method;
    //试验要求
    @JsonSerialize
    private String ask;
    //样品编号
    @JsonSerialize
    private int mid;
    //样品名称
    @JsonSerialize
    private String materialName;
    //规格型号
    @JsonSerialize
    private String specificationsSerialNumber;
    //样品数量
    @JsonSerialize
    private Integer materialNum;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/PlanDto.java
@@ -1,17 +1,48 @@
package com.yuanchu.limslaboratory.pojo.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yuanchu.limslaboratory.pojo.Plan;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
public class PlanDto extends Plan implements Serializable {
public class PlanDto  implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "计划编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "报检类型")
    private Integer type;
    @ApiModelProperty(value = "报检人")
    @ApiModelProperty(value = "样品编号")
    @JsonSerialize
    private int mid;
    @ApiModelProperty(value = "关联 æŠ¥æ£€id(申请单编号)")
    @JsonSerialize
    private String inspectionId;
    @ApiModelProperty(value = "1:待认领;2:待分配;3:已分配;4:超期待分配;5:已完成;0:已作废")
    @JsonSerialize
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "登记日期", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    @ApiModelProperty(value = "试验负责人")
    @JsonSerialize
    private String userName;
    @ApiModelProperty(value = "关联 æ£€éªŒäºº")
    @JsonSerialize
    private String inspectUserName;
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionMaterialListService.java
@@ -15,11 +15,34 @@
 * @since 2023-07-17
 */
public interface InspectionMaterialListService extends IService<InspectionMaterialList> {
    /**
     * æŸ¥è¯¢æ£€éªŒå•里面的物料信息
     * @param insId
     * @return
     */
    List<InspectionMaterialList> selectInspectionMaterialListByInsId(String insId);
    /**
     * æ·»åŠ æ£€éªŒå•ä¸­çš„æ£€éªŒæ ·å“
     * @param inspectionMaterialList
     * @param userId
     * @return
     */
    InspectionMaterialList addInspectionMaterialList(InspectionMaterialList inspectionMaterialList,String userId);
    /**
     * æ ¹æ®æ£€éªŒæ ·å“id删除样品信息
     * @param inspectionMaterialListId
     * @return
     */
    boolean delInspectionMaterialListByInsId(int inspectionMaterialListId);
    /**
     *根据样品id修改样品信息
     * @param inspectionMaterialListId
     * @param inspectionMaterialList
     * @return
     */
    boolean updateInspectionMaterialList( Integer inspectionMaterialListId,InspectionMaterialList inspectionMaterialList);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionProductListService.java
@@ -16,8 +16,12 @@
 */
public interface InspectionProductListService extends IService<InspectionProductList> {
    int addInspectionProductList(List<InspectionProductList> list);
    /**
     * æ ¹æ®æ£€éªŒæ ·å“id删除样品里的检验项目
     * @param inspectionMaterialListId
     * @return
     */
    int delInspectionProductList(int inspectionMaterialListId);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionRecordsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.yuanchu.limslaboratory.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.InspectionRecords;
import com.yuanchu.limslaboratory.pojo.dto.InspectionRecordsDto;
import java.util.List;
import java.util.Map;
/**
 * æ£€æµ‹è®°å½•(InspectionRecords)表服务接口
 *
 * @author zss
 * @since 2023-07-24 14:05:12
 */
public interface InspectionRecordsService extends IService<InspectionRecords> {
    /**
     * æ ¹æ®æ ·å“ç¼–号id以及状态(待提交)查询检测记录
     * @param productId
     * @return
     */
    InspectionRecordsDto selectByProductId(Integer productId, Integer submitState);
    /**
     * æ ¹æ®æ ·å“ç¼–号id以及状态(待提交)修改检测记录
     * @param inspectionRecordsDto
     */
    void upByProductId(InspectionRecordsDto inspectionRecordsDto);
    /**
     *  æ ¹æ®æ£€éªŒè®°å½•id修改提交状态
     * @param id
     */
    void submitRecords(Integer id);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java
@@ -17,12 +17,35 @@
 */
public interface InspectionService extends IService<Inspection> {
    /**
     * æ·»åŠ æ£€éªŒå•
     * @param userName
     * @param type
     * @return
     */
    Inspection addInspection(String userName,int type);
    Map selectAllInspection(int pageSize, int countSize, Integer state);
    /**
     * åˆ†é¡µæŸ¥è¯¢æ‰€æœ‰æ£€éªŒå•
     * @param pageSize
     * @param countSize
     * @param state
     * @return
     */
    List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state);
    /**
     *根据检验单id作废检验单申请
     * @param inspectionId
     * @return
     */
    boolean delInspectionByInsId(String inspectionId);
    /**
     * æ ¹æ®æ£€éªŒå•id提交检验申请
     * @param inspectionId
     * @return
     */
    boolean subInspectionByInsId(String inspectionId);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/PlanService.java
@@ -4,8 +4,8 @@
import com.yuanchu.limslaboratory.pojo.Plan;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.limslaboratory.pojo.dto.PlanDto;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -17,9 +17,41 @@
 */
public interface PlanService extends IService<Plan> {
    List<PlanDto> selectAllPlan(int pageSize, int countSize, Integer state);
    /**
     * åˆ†é¡µæŸ¥è¯¢æ‰€æœ‰æ£€éªŒè®¡åˆ’
     * @param pageSize
     * @param countSize
     * @param state
     * @return
     */
    Map selectAllPlan(int pageSize, int countSize, Integer state);
    /**
     * æ ¹æ®è®¡åˆ’id作废检验计划
     * @param id
     * @return
     */
    boolean delPlan(Integer id);
    List<InspectionProductList> selectById(Integer id);
    /**
     * æ ¹æ®æ ·å“id查询检验计划里面检验项目
     * @param id
     * @return
     */
    List<InspectionProductList> selectProductById(Integer id);
    /**
     * ç»™æ£€éªŒè®¡åˆ’中的检验项目分配试验员,设备,以及日期
     * @param inspectionProductList
     */
    void upPlan(InspectionProductList inspectionProductList);
    /**
     * æŸ¥è¯¢æˆå“æ£€éªŒ
     * @param pageSize
     * @param countSize
     * @param state
     * @return
     */
    List<PlanDto> selectInspection(int pageSize, int countSize, Integer state);
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionMaterialListServiceImpl.java
@@ -37,13 +37,18 @@
    ProductMapper productMapper;
    @Resource
    InspectionProductListService inspectionProductListService;
    @Resource
    InspectionProductListMapper inspectionProductListMapper;
    //查询检验单里面的物料信息
    @Override
    public List<InspectionMaterialList> selectInspectionMaterialListByInsId(String insId) {
        return inspectionMaterialListMapper.selectInspectionMaterialListByInsId(insId);
    }
    //添加检验单中的检验样品
    @Override
    @Transactional(rollbackFor = Exception.class)
    public InspectionMaterialList addInspectionMaterialList(InspectionMaterialList inspectionMaterialList,String userId) {
@@ -61,6 +66,7 @@
                    .setUserId(Integer.parseInt(userId));
            list1.add(inspectionProductList);
        });
        //添加检验项目
        int judge2 = inspectionProductListMapper.addInspectionProductList(list1);
        return judge>0&&judge2>0?inspectionMaterialList:null;
    }
@@ -74,19 +80,16 @@
        list.setState(0);
        list.setId(inspectionMaterialListId);
        int judge1 = inspectionMaterialListMapper.updateById(list);
        //删除样品检验项目
        UpdateWrapper<InspectionProductList> wrapper = new UpdateWrapper<>();
        wrapper.eq("inspection_material_list_id", inspectionMaterialListId).set("state", 0);
        int judge2 = inspectionProductListMapper.update(new InspectionProductList(), wrapper);
        //根据样品id删除检验样品中的检验项目
        int judge2 = inspectionProductListService.delInspectionProductList(inspectionMaterialListId);
        return judge1>0&&judge2>0;
    }
    //修改样品信息
    //根据样品id修改样品信息
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateInspectionMaterialList( Integer inspectionMaterialListId,InspectionMaterialList inspectionMaterialList) {
        LambdaUpdateWrapper<InspectionMaterialList> updateWrapper = new LambdaUpdateWrapper<>();
        //根据样品id查询
        updateWrapper.eq(InspectionMaterialList::getId,inspectionMaterialListId);
        int judge = inspectionMaterialListMapper.update(inspectionMaterialList, updateWrapper);
        return judge>0;
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionProductListServiceImpl.java
@@ -25,11 +25,9 @@
    @Resource
    InspectionProductListMapper inspectionProductListMapper;
    @Override
    public int addInspectionProductList(List<InspectionProductList> list) {
        return inspectionProductListMapper.addInspectionProductList(list);
    }
    //根据检验样品id删除样品里的检验项目
    @Override
    public int delInspectionProductList(int inspectionMaterialListId) {
        UpdateWrapper<InspectionProductList> wrapper = new UpdateWrapper<>();
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionRecordsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.mapper.InspectionRecordsMapper;
import com.yuanchu.limslaboratory.pojo.InspectionRecords;
import com.yuanchu.limslaboratory.pojo.dto.InspectionRecordsDto;
import com.yuanchu.limslaboratory.service.InspectionRecordsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.sql.Wrapper;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
 * æ£€æµ‹è®°å½•(InspectionRecords)表服务实现类
 *
 * @author zss
 * @since 2023-07-24 14:05:12
 */
@Service("inspectionRecordsService")
public class InspectionRecordsServiceImpl extends ServiceImpl<InspectionRecordsMapper, InspectionRecords> implements InspectionRecordsService {
    @Resource
    InspectionRecordsMapper inspectionRecordsMapper;
    //根据样品编号id以及状态(待提交)查询检测记录
    @Override
    public InspectionRecordsDto selectByProductId(Integer productId, Integer submitState) {
        //状态为空的时候默认为待提交
        if (submitState==null){
            submitState=0;
        }
        return inspectionRecordsMapper.selectByProductId(productId,submitState);
    }
    //根据样品编号id以及状态(待提交)修改检测记录
    @Override
    public void upByProductId(InspectionRecordsDto inspectionRecordsDto) {
        //???
    }
    //根据检验记录id修改提交状态
    @Override
    public void submitRecords(Integer id) {
        //更新检验记录表
        InspectionRecords inspectionRecords = inspectionRecordsMapper.selectById(id);
        inspectionRecords.setSubmitState(1);
        inspectionRecords.setUpdateTime(LocalDateTime.now());
        inspectionRecordsMapper.updateById(inspectionRecords);
        //新增一个检验报告
    }
}
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -12,12 +12,9 @@
import com.yuanchu.limslaboratory.service.InspectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -32,27 +29,25 @@
    @Resource
    private InspectionMapper inspectionMapper;
    @Resource
    private PlanMapper planMapper;
    @Resource
    InspectionMaterialListMapper inspectionMaterialListMapper;
    //添加检验申请单
    @Override
    public Inspection addInspection(String userName,int type) {
        Inspection inspection = new Inspection(type, 0,1,1, userName);
        System.out.println(inspection);
        int judge = inspectionMapper.insert(inspection);
        System.out.println(judge);
        return judge>0?inspection:null;
    }
    //查询所有检验单列表
    @Override
    public Map selectAllInspection(int pageSize, int countSize, Integer state) {
        Map map = new HashMap();
        map.put("data",inspectionMapper.selectAllInspection((pageSize - 1) * countSize,pageSize * countSize, state));
        map.put("count", inspectionMapper.selectInspectToCount(state));
        return map;
    public List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state) {
        return inspectionMapper.selectAllInspection((pageSize - 1) * countSize,pageSize * countSize, state);
    }
    //作废申请检验单
@@ -62,7 +57,7 @@
        Inspection inspection = inspectionMapper.selectById(inspectionId);
        inspection.setState(0);
        int judge1 = inspectionMapper.updateById(inspection);
        //检验样品作废
        //检验样品作废(根据报检单id删除样品信息)
        UpdateWrapper<InspectionMaterialList> wrapper = new UpdateWrapper<>();
        wrapper.eq("inspection_id", inspectionId).set("state", 0);
        int judge2 = inspectionMaterialListMapper.update(new InspectionMaterialList(),wrapper);
inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/PlanServiceImpl.java
@@ -1,5 +1,7 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yuanchu.limslaboratory.mapper.InspectionMaterialListMapper;
import com.yuanchu.limslaboratory.mapper.InspectionProductListMapper;
import com.yuanchu.limslaboratory.pojo.InspectionMaterialList;
@@ -13,10 +15,11 @@
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
@@ -29,15 +32,15 @@
    PlanMapper planMapper;
    @Resource
    InspectionMaterialListMapper inspectionMaterialListMapper;
    @Resource
    InspectionProductListMapper inspectionProductListMapper;
    //查询所有检验计划
    //查询所有检验计划分配
    @Override
    public List<PlanDto> selectAllPlan(int pageSize, int countSize, Integer state) {
        return planMapper.selectAllPlan((pageSize - 1) * countSize,pageSize * countSize, state);
    public Map selectAllPlan(int pageSize, int countSize, Integer state) {
        if (state == null) {
            state = 2;
        }
        return planMapper.selectAllPlan((pageSize - 1) * countSize, pageSize * countSize, state);
    }
    //作废检验计划
@@ -47,12 +50,27 @@
        //状态改为作废0
        plan.setState(0);
        int judge = planMapper.updateById(plan);
        return judge>0;
        return judge > 0;
    }
    //查询检验计划里面的分配信息
    //根据样品id查询检验计划里面的检验项目
    @Override
    public List<InspectionProductList> selectById(Integer id) {
       return inspectionProductListMapper.selectByMaterId(id);
    public List<InspectionProductList> selectProductById(Integer id) {
        return inspectionProductListMapper.selectByMaterId(id);
    }
    //修改检验计划里分配计划的信息
    @Override
    public void upPlan(InspectionProductList inspectionProductList) {
        LambdaUpdateWrapper<InspectionProductList> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(InspectionProductList::getInspectionMaterialListId, inspectionProductList.getInspectionMaterialListId())
                .eq(InspectionProductList::getMethod, inspectionProductList.getMethod());
        inspectionProductListMapper.update(inspectionProductList, updateWrapper);
    }
    //查询成品检验
    @Override
    public List<PlanDto> selectInspection(int pageSize, int countSize, Integer state) {
        return planMapper.selectInspection((pageSize - 1) * countSize, pageSize * countSize, state);
    }
}
inspection-server/src/main/resources/mapper/InspectionMapper.xml
@@ -2,8 +2,9 @@
<!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.create_time, user_name, inspect_start_time, inspect_end_time, u.name inspectUserName
        from inspection i left join user u
        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}
@@ -11,13 +12,4 @@
        order by i.create_time desc
        limit #{pageSize},#{countSize}
    </select>
    <select id="selectInspectToCount" resultType="java.lang.Integer">
        select count(*)
        from inspection i left join user u
        on i.inspect_user_id = u.id
        <if test="state!=null">
            where state = #{state}
        </if>
    </select>
</mapper>
inspection-server/src/main/resources/mapper/InspectionMaterialListMapper.xml
@@ -1,7 +1,7 @@
<?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.InspectionMaterialListMapper">
    <select id="selectInspectionMaterialListByInsId" resultType="InspectionMaterialList">
    <select id="selectInspectionMaterialListByInsId" resultType="com.yuanchu.limslaboratory.pojo.InspectionMaterialList">
        select id,
               material_id,
               material_num,
@@ -16,7 +16,7 @@
               specifications_number_of_cores,
               specifications_instruct,
               notes
        from inspection_material_list
        from lims_laboratory.inspection_material_list
        where state = 1
        and inspection_id = #{insId}
    </select>
inspection-server/src/main/resources/mapper/InspectionProductListMapper.xml
@@ -12,7 +12,22 @@
    </insert>
    <select id="selectByMaterId" resultType="com.yuanchu.limslaboratory.pojo.InspectionProductList">
        select name,method,ask,unit,required,internal, start_time, end_time, user_id, instrument_id
        select id,
               name,
               method,
               ask,
               unit,
               required,
               internal,
               start_time,
               end_time,
               state,
               create_time,
               update_time,
               version,
               inspection_material_list_id,
               user_id,
               instrument_id
        from lims_laboratory.inspection_product_list
        where inspection_material_list_id = #{id}
    </select>
inspection-server/src/main/resources/mapper/InspectionRecordsMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
<?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.InspectionRecordsMapper">
    <select id="selectByProductId" resultType="com.yuanchu.limslaboratory.pojo.dto.InspectionRecordsDto">
        select yp.name,
        yp.username,
        ir.create_time,
        ir.update_time,
        ir.method,
        yp.ask,
        yp.mid,
        yp.material_name,
        yp.specifications_serial_number,
        yp.material_num
        from lims_laboratory.inspection_records ir
        left join (select ipl.id id,
        ipl.name,
        u.name username,
        ipl.ask,
        iml.id mid,
        iml.material_name,
        iml.specifications_serial_number,
        iml.material_num
        from lims_laboratory.inspection_product_list ipl
        left join lims_laboratory.inspection_material_list iml on ipl.inspection_material_list_id = iml.id left join
        lims_laboratory.user u on ipl.user_id = u.id) yp
        on ir.inspection_product_list_id = yp.id
        <where>
            <if test="productId != null">
                AND inspection_product_list_id = #{productId}
            </if>
            AND submit_state = #{submitState}
        </where>
    </select>
</mapper>
inspection-server/src/main/resources/mapper/PlanMapper.xml
@@ -1,9 +1,9 @@
<?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.PlanMapper">
    <select id="selectAllPlan" resultType="com.yuanchu.limslaboratory.pojo.dto.PlanDto">
    <select id="selectAllPlan" resultType="Map">
        select p.id,results,p.state,p.create_time,p.inspection_id,user_id,results,type,user_name
        from lims_laboratory.plan p right join lims_laboratory.inspection i
        from lims_laboratory.plan p left join lims_laboratory.inspection i
        on i.id=p.inspection_id
        <if test="state!=null">
            where p.state = #{state}
@@ -11,4 +11,21 @@
        order by p.create_time desc
        limit #{pageSize},#{countSize}
    </select>
    <select id="selectInspection" resultType="com.yuanchu.limslaboratory.pojo.dto.PlanDto">
        select i.mid , p.inspection_id , p.state, p.create_time, p.name userName, i.name inspectUserName
        from (select inspection_id, state, plan.create_time, name
              from lims_laboratory.plan
                       left join lims_laboratory.user on plan.user_id = user.id) p
                 left join (select inspection.id, name, iml.id mid
                            from lims_laboratory.inspection
                                     left join lims_laboratory.user on user.id = inspection.inspect_user_id
                                     left join lims_laboratory.inspection_material_list iml on inspection.id = iml.inspection_id) i
                           on p.inspection_id = i.id
        <if test="state!=null">
            where p.state = #{state}
        </if>
        order by p.create_time desc
        limit #{pageSize},#{countSize}
    </select>
</mapper>
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/InstrumentController.java
@@ -1,24 +1,9 @@
package com.yuanchu.limslaboratory.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.limslaboratory.pojo.Instrument;
import com.yuanchu.limslaboratory.pojo.dto.UpdateInstrumentDto;
import com.yuanchu.limslaboratory.service.InstrumentService;
import com.yuanchu.limslaboratory.service.UserService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
@@ -28,88 +13,8 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-20
 */
@Api(tags = "实验室-->设备台账-->2、仪器模块")
@RestController
@RequestMapping("/instrument")
public class InstrumentController {
    @Autowired
    private InstrumentService instrumentService;
    @Autowired
    private UserService userService;
    @ApiOperation("添加仪器设备")
    @PostMapping("/add")
    public Result<?> addInstrumentInformation(@RequestBody Instrument instrument) {
        Integer isInsertSuccess = instrumentService.addInstrumentInformation(instrument);
        if (isInsertSuccess == 1){
            return Result.success("添加【" + instrument.getEquipmentName() + "】成功!");
        }
        return Result.fail("仪器设备编号重复,添加【" + instrument.getEquipmentName() + "】失败! ");
    }
    @ApiOperation("根据分类Id:分页列表展示")
    @GetMapping("/list")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "classifyId", value = "分类Id", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "pageNo", value = "起始页", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "pageSize", value = "每一页数量", dataTypeClass = Integer.class, required = true),
            @ApiImplicitParam(name = "conditions", value = "查询状态:默认全部", dataTypeClass = Integer.class),
            @ApiImplicitParam(name = "whetherWhether", value = "是否已过期", dataTypeClass = Boolean.class),
            @ApiImplicitParam(name = "numberOrNameOrSpecifications", value = "编号/设备名称/规格型号", dataTypeClass = String.class)
    })
    public Result<?> getListInstrumentInformation(Integer pageNo,
                                                  Integer pageSize,
                                                  Integer conditions,
                                                  Integer classifyId,
                                                  Boolean whetherWhether,
                                                  String numberOrNameOrSpecifications) {
        IPage<Map<String, Object>> pageList = instrumentService.getListInstrumentInformation(conditions, whetherWhether, numberOrNameOrSpecifications,
                classifyId, new Page<Objects>(pageNo, pageSize));
        Map<String, Object> map = new HashMap<>();
        map.put("row", pageList.getRecords());
        map.put("total", pageList.getTotal());
        return Result.success(map);
    }
    @ApiOperation("删除仪器数据")
    @DeleteMapping("/delete")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "instrumentId", value = "仪器Id", dataTypeClass = String.class, required = true)
    })
    public Result<?> deleteInstrumentInformation(String instrumentId) {
        Boolean isDeleteSuccess = instrumentService.deleteInstrumentInformation(instrumentId);
        if (isDeleteSuccess){
            return Result.success("删除仪器成功!");
        }
        return Result.fail("删除仪器失败!");
    }
    @ApiOperation("添加仪器时保管人下拉框数据")
    @GetMapping("/get_user")
    public Result<?> getMapUserInformation() {
        return Result.success(userService.getUserNameAndId());
    }
    @ApiOperation("根据仪器Id获取信息用于编辑")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "InstrumentId", value = "分类Id", dataTypeClass = Integer.class, required = true)
    })
    @GetMapping("/get_instrument")
    public Result<?> getIdInstrumentInformation(Integer InstrumentId) {
        Instrument idInstrumentInformation = instrumentService.getIdInstrumentInformation(InstrumentId);
        return Result.success(idInstrumentInformation);
    }
    @ApiOperation("根据仪器Id更新数据")
    @PutMapping("/update")
    public Result<?> updateEquipmentPointInformation(@RequestBody UpdateInstrumentDto updateInstrumentDto) throws Exception {
        Instrument instrument = JackSonUtil.unmarshal(JackSonUtil.marshal(updateInstrumentDto), Instrument.class);
        Integer isUpdateSuccess = instrumentService.updateEquipmentPointInformation(instrument);
        if (isUpdateSuccess == 1){
            return Result.success("更新【" + instrument.getEquipmentName() + "】成功!");
        }
        return Result.fail("仪器设备编号重复,更新【" + instrument.getEquipmentName() + "】失败! ");
    }
}
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MetricalInformationController.java
@@ -1,24 +1,9 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.EquipmentPoint;
import com.yuanchu.limslaboratory.pojo.MetricalInformation;
import com.yuanchu.limslaboratory.pojo.dto.UpdateEquipmentPointDto;
import com.yuanchu.limslaboratory.pojo.dto.UpdateMetricalInformationDto;
import com.yuanchu.limslaboratory.service.MetricalInformationService;
import com.yuanchu.limslaboratory.service.UserService;
import com.yuanchu.limslaboratory.utils.JackSonUtil;
import com.yuanchu.limslaboratory.utils.RedisUtil;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
@@ -28,63 +13,8 @@
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-07-20
 */
@Api(tags = "实验室-->设备台账-->4、计量信息")
@RestController
@RequestMapping("/metrical-information")
public class MetricalInformationController {
    @Autowired
    private MetricalInformationService metricalInformationService;
    @Autowired
    private UserService userService;
    @ApiOperation("添加计量信息")
    @PostMapping("/add")
    public Result<?> addMetricalInformation(MetricalInformation metricalInformation,
                                            @RequestPart(value = "file", required = false) MultipartFile file) {
        Integer isInsertSuccess = metricalInformationService.addEquipmentPointInformation(metricalInformation, file);
        if (isInsertSuccess == 1){
            return Result.success("添加【"+ metricalInformation.getMeasurementUnit() +"】成功!");
        }
        return Result.fail("添加【"+ metricalInformation.getMeasurementUnit() +"】失败!设备码点编码重复!");
    }
    @ApiOperation("查询所有计量信息数据")
    @GetMapping("/list")
    public Result<?> getListMetricalInformation() {
        List<Map<String, Object>> list = metricalInformationService.getListEquipmentPointInformation();
        return Result.success(list);
    }
    @ApiOperation("根据计量信息Id删除数据")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "metricalInformationId", value = "计量信息Id", dataTypeClass = Integer.class, required = true)
    })
    @DeleteMapping("/delete")
    public Result<?> deleteMetricalInformation(Integer metricalInformationId) {
        Integer isDeleteSuccess = metricalInformationService.deleteMetricalInformation(metricalInformationId);
        if (isDeleteSuccess == 1){
            return Result.success("删除成功!");
        }
        return Result.fail("删除失败!");
    }
    @ApiOperation("根据计量信息Id更新数据")
    @PutMapping("/update")
    public Result<?> updateMetricalInformation(UpdateMetricalInformationDto updateMetricalInformationDto,
                                                     @RequestPart(value = "file", required = false) MultipartFile file) throws Exception {
        MetricalInformation metricalInformation = JackSonUtil.unmarshal(JackSonUtil.marshal(updateMetricalInformationDto), MetricalInformation.class);
        Integer isUpdateSuccess = metricalInformationService.updateMetricalInformation(metricalInformation, file);
        if (isUpdateSuccess == 1){
            return Result.success("更新成功!");
        }
        return Result.fail("更新失败!");
    }
    @ApiOperation("添加计量信息时负责人下拉框数据")
    @GetMapping("/get_user")
    public Result<?> getMapUserInformation() {
        return Result.success(userService.getUserNameAndId());
    }
}
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
@@ -15,7 +15,10 @@
 * @since 2023-07-17
 */
public interface MaterialMapper extends BaseMapper<Material> {
    //查询物料信息
    List<Material> selectMaterialLimit(int num1,int num2);
    //根据物料id查询物料信息
    Map selectMaterialById(String materialId);
}
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
@@ -29,11 +29,13 @@
    @Resource
    MaterialMapper materialMapper;
    //查询物料信息
    @Override
    public List<Material> selectMaterialLimit(int pageSize, int countSize) {
        return materialMapper.selectMaterialLimit((pageSize - 1) * countSize,pageSize * countSize);
    }
    //根据物料id查询物料信息
    @Override
    public Map selectMaterialById(String materialId) {
        return materialMapper.selectMaterialById(materialId);
user-server/src/main/java/com/yuanchu/limslaboratory/mapper/UserMapper.java
@@ -9,6 +9,7 @@
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -24,4 +25,6 @@
    Map<String, String> selectUserByUserId(int userId);
    IPage<PagePersonnelVo> getNewPersonnelPage(String name, Page page);
    List<User> selectUser();
}
user-server/src/main/java/com/yuanchu/limslaboratory/service/UserService.java
@@ -7,9 +7,13 @@
import com.yuanchu.limslaboratory.vo.NewPersonnelVo;
import com.yuanchu.limslaboratory.vo.PagePersonnelVo;
import com.yuanchu.limslaboratory.vo.UpdatePersonnelVo;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
 * <p>
@@ -72,7 +76,8 @@
    String selectByUserId(Integer userId);
    /**
     * èŽ·å–æ‰€æœ‰ç”¨æˆ·çš„åç§°ä¸ŽId
     * æŸ¥è¯¢æ‰€æœ‰ç”¨æˆ·ä¿¡æ¯
     * @return
     */
    List<Map<String, Object>> getUserNameAndId();
    List<User> selectUser();
}
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/UserServiceImpl.java
@@ -75,10 +75,8 @@
    }
    @Override
    public List<Map<String, Object>> getUserNameAndId() {
        LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
        wrapper.select(User::getId, User::getName);
        return userMapper.selectMaps(wrapper);
    public List<User> selectUser() {
        return userMapper.selectUser();
    }
    @Override
user-server/src/main/resources/mapper/UserMapper.xml
@@ -1,12 +1,20 @@
<?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.UserMapper">
    <select id="selectUserByUserId" parameterType="int" resultType="Map">
        SELECT u.account account,u.name uname,u.phone,u.email,u.info,e.byname e_byname,e.`name` e_name,e.link_name e_link_name,e.link_phone e_phone
        FROM enterprise e,`user` u
        SELECT u.account    account,
               u.name       uname,
               u.phone,
               u.email,
               u.info,
               e.byname     e_byname,
               e.`name`     e_name,
               e.link_name  e_link_name,
               e.link_phone e_phone
        FROM enterprise e,
             `user` u
        WHERE e.`id` = u.`enterprise_id`
        AND u.id = #{userId}
          AND u.id = #{userId}
    </select>
    <resultMap id="PagePersonnelVoMap" type="com.yuanchu.limslaboratory.vo.PagePersonnelVo">
@@ -21,11 +29,29 @@
    </resultMap>
    <select id="getNewPersonnelPage" resultMap="PagePersonnelVoMap">
        SELECT u.`id`, u.`name` username, r.`name` roleName, u.`create_time`, IFNULL(u.`age`, '---') age,
               IFNULL(u.`phone`, '---') phone, IFNULL(u.`email`, '---') email, u.`job_state`
        IFNULL(u.`phone`, '---') phone, IFNULL(u.`email`, '---') email, u.`job_state`
        FROM `user` u, role r
        WHERE u.`role_id` = r.`id`
        <if test="name != null">
            AND u.name = #{name}
        </if>
    </select>
    <select id="selectUser" resultType="com.yuanchu.limslaboratory.pojo.User">
        select id,
               account,
               password,
               name,
               phone,
               email,
               age,
               job_state,
               info,
               create_time,
               update_time,
               version,
               role_id,
               enterprise_id
        from lims_laboratory.user
    </select>
</mapper>