zhuo
2025-02-20 8003d2eccb633599ec8292730df64cc8aca50307
添加样品管理模块
已修改1个文件
已添加19个文件
821 ■■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/WarehouseMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -59,14 +59,14 @@
    }
    @ApiOperation(value = "执行检验操作")
    @PostMapping("/doInsOrder")
    @ApiOperation(value = "查询检验操作")
    @GetMapping("/doInsOrder")
    public Result<?> doInsOrder(Integer id, String laboratory) {
        return Result.success(insOrderPlanService.doInsOrder(id, laboratory));
    }
    @PostMapping("/getInsProduct")
    @ApiOperation("获取检验项目和模板内容")
    @GetMapping("/getInsProduct")
    public Result<?> getInsProduct(InsOrderPlanProductDto insOrderPlanProductDto) {
        return Result.success(insOrderPlanService.getInsProduct(insOrderPlanProductDto));
    }
@@ -79,7 +79,7 @@
    }
    @ApiOperation(value = "判断交接的试验室")
    @PostMapping("/upPlanUser2")
    @GetMapping("/upPlanUser2")
    public Result<?> upPlanUser2(Integer orderId) {
        return Result.success(insOrderPlanService.upPlanUser2(orderId));
    }
@@ -138,7 +138,7 @@
    @ApiOperation(value = "删除附件")
    @PostMapping("/delfile")
    @DeleteMapping("/delfile")
    public Result<?> delfile(Integer id) {
        return Result.success(insOrderFileService.removeById(id));
    }
@@ -162,25 +162,25 @@
    @ApiOperation(value = "电缆配置,查看配置标识")
    @PostMapping("/getCableTag")
    @GetMapping("/getCableTag")
    public Result<?> getCableTag(Integer id, String laboratory) {
        return Result.success(insOrderPlanService.getCableTag(id, laboratory));
    }
    @ApiOperation(value = "原材料,查看配置标识")
    @PostMapping("/getRawMaterialTag")
    @GetMapping("/getRawMaterialTag")
    public Result<?> getRawMaterialTag(Integer id, String laboratory) {
        return Result.success(insOrderPlanService.getRawMaterialTag(id, laboratory));
    }
    @ApiOperation(value = "查看重复标识")
    @PostMapping("/getRepetitionTag")
    @GetMapping("/getRepetitionTag")
    public Result<?> getRepetitionTag(Integer id, String laboratory, String cableTag) {
        return Result.success(insOrderPlanService.getRepetitionTag(id, laboratory, cableTag));
    }
    @ApiOperation("获取不合格数据")
    @PostMapping("/getInsProductUnqualified")
    @GetMapping("/getInsProductUnqualified")
    public Result<?> getInsProductUnqualified(InsOrderPlanProductDto insOrderPlanProductDto) {
        return Result.success(insOrderPlanService.getInsProductUnqualified(insOrderPlanProductDto));
    }
@@ -194,7 +194,7 @@
    }
    @ApiOperation("获取不合格复测数据")
    @PostMapping("/getInsProductUnqualifiedRetest")
    @GetMapping("/getInsProductUnqualifiedRetest")
    public Result<?> getInsProductUnqualifiedRetest(Integer id, Integer type, String laboratory, String cableTag, String rawMaterialTag, String retestTag) {
        return Result.success(insOrderPlanService.getInsProductUnqualifiedRetest(id, type, laboratory, cableTag, rawMaterialTag, retestTag));
    }
inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
package com.ruoyi.inspect.controller;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.inspect.pojo.Warehouse;
import com.ruoyi.inspect.pojo.WarehouseShelf;
import com.ruoyi.inspect.service.WarehouseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RequestMapping("/warehouse")
@RestController
@AllArgsConstructor
@Api(tags = "样品管理")
public class WarehouseController {
    private WarehouseService warehouseService;
    @ApiOperation("添加仓库")
    @PostMapping("/addWarehouse")
    public Result addWarehouse(@RequestBody Warehouse warehouse) {
        return Result.success(warehouseService.addWarehouse(warehouse));
    }
    @ApiOperation("查询仓库")
    @GetMapping("/selectWarehouse")
    public Result selectWarehouse() {
        return Result.success(warehouseService.selectWarehouse());
    }
    @PostMapping("/addShelf")
    @ApiOperation("添加货架")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "name", name = "名称", dataTypeClass = String.class),
            @ApiImplicitParam(value = "row", name = "行", dataTypeClass = Integer.class),
            @ApiImplicitParam(value = "col", name = "列", dataTypeClass = Integer.class),
            @ApiImplicitParam(value = "warehouseId", name = "仓库id", dataTypeClass = Integer.class)
    })
    public Result addShelf(@RequestBody WarehouseShelf warehouseShelf) {
        return Result.success(warehouseService.addShelf(warehouseShelf));
    }
    @ApiOperation("删除仓库")
    @DeleteMapping("/delWarehouse")
    public Result delWarehouse(Integer id) {
        return Result.success(warehouseService.delWarehouse(id));
    }
    @ApiOperation("修改仓库")
    @PostMapping("/upWarehouse")
    public Result upWarehouse(@RequestBody Warehouse warehouse) {
        return Result.success(warehouseService.upWarehouse(warehouse));
    }
    @ApiOperation("删除货架")
    @DeleteMapping("/delShelf")
    public Result delShelf(Integer id) {
        return Result.success(warehouseService.delShelf(id));
    }
    @ApiOperation("修改货架")
    @PostMapping("/upShelf")
    public Result upShelf(@RequestBody WarehouseShelf warehouseShelf) {
        return Result.success(warehouseService.upShelf(warehouseShelf));
    }
    @ApiOperation("查询货架下的存放信息")
    @GetMapping("/getWarehouse")
    public Result getWarehouse(Integer shelfId) {
        return Result.success(warehouseService.getWarehouse(shelfId));
    }
    @ApiOperation("样品入库")
    @PostMapping("/inWarehouse")
    public Result inWarehouse(@RequestBody Map<String, String> param) {
        String trees = param.get("trees");
        String sampleCode = param.get("sampleCode");
        return Result.success(warehouseService.inWarehouse(trees, sampleCode));
    }
    @PostMapping("/outWarehouse")
    @ApiOperation("样品出库")
    public Result outWarehouse(@RequestBody Map<String, String> param) {
        String sampleCode = param.get("sampleCode");
        return Result.success(warehouseService.outWarehouse(sampleCode));
    }
    @ApiOperation("查询样品详细记录")
    @GetMapping("/getSampleRecord")
    public Result getSampleRecord(Integer id) {
        return Result.success(warehouseService.getSampleRecord(id));
    }
    @ApiOperation("通过样品编号进行检索")
    @GetMapping("/searchSampleId")
    public Result searchSampleId(String sampleCode) {
        return Result.success(warehouseService.searchSampleId(sampleCode));
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.ruoyi.inspect.dto;
import com.ruoyi.inspect.pojo.WarehouseHistory;
import lombok.Data;
@Data
public class HistoryDto extends WarehouseHistory {
    private String createUserName;
    private String warehouseCode;
}
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.ruoyi.inspect.dto;
import com.ruoyi.inspect.pojo.InsSample;
import com.ruoyi.inspect.pojo.WarehouseCell;
import lombok.Data;
import java.util.List;
@Data
public class WarehouseCellAndSampleDto extends WarehouseCell {
    private List<InsSample> samples;
}
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.ruoyi.inspect.dto;
import com.ruoyi.inspect.pojo.Warehouse;
import com.ruoyi.inspect.pojo.WarehouseShelf;
import lombok.Data;
import java.util.List;
@Data
public class WarehouseDto extends Warehouse {
    List<WarehouseShelf> warehouseShelfList;
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.inspect.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.inspect.dto.WarehouseCellAndSampleDto;
import com.ruoyi.inspect.pojo.WarehouseCell;
import java.util.List;
/**
* @author z1292
* @description é’ˆå¯¹è¡¨ã€warehouse_cell(货架单元格)】的数据库操作Mapper
* @createDate 2024-04-06 12:12:12
* @Entity com.yuanchu.mom.pojo.WarehouseCell
*/
public interface WarehouseCellMapper extends BaseMapper<WarehouseCell> {
    List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId);
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.ruoyi.inspect.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.inspect.dto.HistoryDto;
import com.ruoyi.inspect.pojo.WarehouseHistory;
import java.util.List;
/**
* @author z1292
* @description é’ˆå¯¹è¡¨ã€warehouse_history(出入库记录)】的数据库操作Mapper
* @createDate 2024-04-06 12:12:12
* @Entity com.yuanchu.mom.pojo.WarehouseHistory
*/
public interface WarehouseHistoryMapper extends BaseMapper<WarehouseHistory> {
    String getUserNameById(Integer userId);
    List<HistoryDto> getHistoryListBySampleId(Integer sampleId);
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.inspect.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.inspect.dto.WarehouseDto;
import com.ruoyi.inspect.pojo.Warehouse;
import java.util.List;
/**
* @author z1292
* @description é’ˆå¯¹è¡¨ã€warehouse(仓库)】的数据库操作Mapper
* @createDate 2024-04-06 12:12:12
* @Entity com.yuanchu.mom.pojo.Warehouse
*/
public interface WarehouseMapper extends BaseMapper<Warehouse> {
    List<WarehouseDto> selectWarehouseList();
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.inspect.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.inspect.pojo.WarehouseShelf;
/**
* @author z1292
* @description é’ˆå¯¹è¡¨ã€warehouse_shelf(货架)】的数据库操作Mapper
* @createDate 2024-04-06 12:12:12
* @Entity com.yuanchu.mom.pojo.WarehouseShelf
*/
public interface WarehouseShelfMapper extends BaseMapper<WarehouseShelf> {
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.ruoyi.inspect.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * ä»“库
 * @TableName warehouse
 */
@TableName(value ="warehouse")
@Data
public class Warehouse implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * ä»“库名称
     */
    private String name;
    /**
     *
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.inspect.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * è´§æž¶å•元格
 * @TableName warehouse_cell
 */
@TableName(value ="warehouse_cell")
@Data
public class WarehouseCell implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * è¡Œ
     */
    @TableField("`row`")
    private Integer row;
    /**
     * åˆ—
     */
    @TableField("`col`")
    private Integer col;
    /**
     *
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * æ˜¯å¦æœ‰æ•ˆ 1:有效 0:无效
     */
    private Integer state;
    /**
     * å¤–检:货架id
     */
    private Integer shelfId;
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.ruoyi.inspect.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * å‡ºå…¥åº“记录
 * @TableName warehouse_history
 */
@TableName(value ="warehouse_history")
@Data
public class WarehouseHistory implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String warehouseCode;
    /**
     * å¤–键:样品id
     */
    private Integer insSampleId;
    /**
     * çŠ¶æ€ï¼š1:入库 2:出库
     */
    private Integer state;
    /**
     *
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * å¤–键:单元格id
     */
    private Integer cellId;
}
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.inspect.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * è´§æž¶
 * @TableName warehouse_shelf
 */
@TableName(value ="warehouse_shelf")
@Data
public class WarehouseShelf implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Integer id;
    /**
     * è´§æž¶åç§°
     */
    private String name;
    /**
     * è¡Œ
     */
    @TableField("`row`")
    private Integer row;
    /**
     * åˆ—
     */
    @TableField("`col`")
    private Integer col;
    /**
     *
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * å¤–键:仓库id
     */
    private Integer warehouseId;
}
inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.ruoyi.inspect.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.inspect.pojo.WarehouseCell;
/**
* @author z1292
* @description é’ˆå¯¹è¡¨ã€warehouse(仓库)】的数据库操作Service
* @createDate 2024-04-06 12:13:57
*/
public interface WarehouseCellService extends IService<WarehouseCell> {
}
inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.ruoyi.inspect.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.inspect.dto.WarehouseCellAndSampleDto;
import com.ruoyi.inspect.dto.WarehouseDto;
import com.ruoyi.inspect.pojo.Warehouse;
import com.ruoyi.inspect.pojo.WarehouseShelf;
import java.util.List;
import java.util.Map;
/**
* @author z1292
* @description é’ˆå¯¹è¡¨ã€warehouse(仓库)】的数据库操作Service
* @createDate 2024-04-06 12:13:57
*/
public interface WarehouseService extends IService<Warehouse> {
    int addWarehouse(Warehouse warehouse);
    List<WarehouseDto> selectWarehouse();
    int addShelf(WarehouseShelf warehouseShelf);
    int delWarehouse(Integer id);
    int upWarehouse(Warehouse warehouse);
    int delShelf(Integer id);
    int upShelf(WarehouseShelf warehouseShelf);
    List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId);
    int inWarehouse(String trees, String sampleCode);
    int outWarehouse(String sampleCode);
    Map<String, Object> getSampleRecord(Integer id);
    int searchSampleId(String sampleCode);
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.ruoyi.inspect.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.inspect.mapper.WarehouseCellMapper;
import com.ruoyi.inspect.pojo.WarehouseCell;
import com.ruoyi.inspect.service.WarehouseCellService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€ins_sample_user(样品负责人记录)】的数据库操作Service实现
* @createDate 2024-03-14 17:12:02
*/
@Service
@AllArgsConstructor
public class WarehouseCellServiceImpl extends ServiceImpl<WarehouseCellMapper, WarehouseCell>
    implements WarehouseCellService {
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,189 @@
package com.ruoyi.inspect.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.HistoryDto;
import com.ruoyi.inspect.dto.WarehouseCellAndSampleDto;
import com.ruoyi.inspect.dto.WarehouseDto;
import com.ruoyi.inspect.mapper.*;
import com.ruoyi.inspect.pojo.*;
import com.ruoyi.inspect.service.WarehouseCellService;
import com.ruoyi.inspect.service.WarehouseService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Administrator
* @description é’ˆå¯¹è¡¨ã€ins_sample_user(样品负责人记录)】的数据库操作Service实现
* @createDate 2024-03-14 17:12:02
*/
@Service
@AllArgsConstructor
public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse>
    implements WarehouseService {
    private WarehouseMapper warehouseMapper;
    private WarehouseShelfMapper warehouseShelfMapper;
    private WarehouseCellMapper warehouseCellMapper;
    private WarehouseHistoryMapper warehouseHistoryMapper;
    private WarehouseCellService warehouseCellService;
    private InsSampleMapper insSampleMapper;
    private InsProductMapper insProductMapper;
    @Override
    public int addWarehouse(Warehouse warehouse) {
        Warehouse newWarehouse = new Warehouse();
        warehouse.setName(warehouse.getName());
        return warehouseMapper.insert(warehouse);
    }
    @Override
    public List<WarehouseDto> selectWarehouse() {
        return warehouseMapper.selectWarehouseList();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addShelf(WarehouseShelf warehouseShelf) {
        warehouseShelfMapper.insert(warehouseShelf);
        List<WarehouseCell> cells = new ArrayList<>();
        for (int i = 1; i < warehouseShelf.getRow() + 1; i++) {
            for (int a = 1; a < warehouseShelf.getCol() + 1; a++) {
                WarehouseCell cell = new WarehouseCell();
                cell.setRow(i);
                cell.setCol(a);
                cell.setState(1);
                cell.setShelfId(warehouseShelf.getId());
                cells.add(cell);
            }
        }
        warehouseCellService.saveBatch(cells);
        return 1;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int delWarehouse(Integer id) {
        warehouseShelfMapper.delete(Wrappers.<WarehouseShelf>lambdaUpdate().eq(WarehouseShelf::getWarehouseId, id));
        return warehouseMapper.deleteById(id);
    }
    @Override
    public int upWarehouse(Warehouse warehouse) {
        return warehouseMapper.updateById(warehouse);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int delShelf(Integer id) {
        warehouseCellMapper.update(null ,Wrappers.<WarehouseCell>lambdaUpdate().eq(WarehouseCell::getShelfId, id).set(WarehouseCell::getState, 0));
        return warehouseShelfMapper.deleteById(id);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int upShelf(WarehouseShelf warehouseShelf) {
        warehouseCellMapper.update(null, Wrappers.<WarehouseCell>lambdaUpdate()
                .eq(WarehouseCell::getShelfId, warehouseShelf.getWarehouseId())
                .gt(WarehouseCell::getRow, warehouseShelf.getRow())
                .gt(WarehouseCell::getCol, warehouseShelf.getCol())
                .set(WarehouseCell::getState, 0));
        warehouseShelfMapper.updateById(warehouseShelf);
        return 0;
    }
    @Override
    public List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId) {
        return warehouseCellMapper.getWarehouse(shelfId);
    }
    @Override
    public int inWarehouse(String trees, String sampleCode) {
        String[] tree = trees.split("-");
        if(tree.length < 4){
            throw new ErrorException("库位选择错误");
        }
        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId,InsSample::getCellId));
        if(samples.size()!=1){
            throw new ErrorException("样品编号输入有误");
        }
        if(samples.get(0).getCellId()!=null){
            throw new ErrorException("样品 " + sampleCode + " æœªå‡ºåº“");
        }
        WarehouseCell cell = warehouseCellMapper.selectOne(Wrappers.<WarehouseCell>lambdaQuery().eq(WarehouseCell::getShelfId, tree[1]).eq(WarehouseCell::getRow, tree[2]).eq(WarehouseCell::getCol, tree[3]).eq(WarehouseCell::getState, 1).select(WarehouseCell::getId,WarehouseCell::getRow,WarehouseCell::getCol));
        WarehouseShelf shelf = warehouseShelfMapper.selectById(tree[1]);
        Warehouse warehouse = warehouseMapper.selectById(tree[0]);
        WarehouseHistory history = new WarehouseHistory();
        history.setCellId(cell.getId());
        history.setState(1);
        history.setInsSampleId(samples.get(0).getId());
        history.setWarehouseCode(warehouse.getName()+"-"+shelf.getName()+"-"+cell.getRow()+"-"+cell.getCol());
        samples.get(0).setCellId(cell.getId());
        insSampleMapper.updateById(samples.get(0));
        return warehouseHistoryMapper.insert(history);
    }
    @Override
    public int outWarehouse(String sampleCode) {
        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId,InsSample::getCellId));
        if(samples.size()!=1){
            throw new ErrorException("样品编号输入有误");
        }
        if(samples.get(0).getCellId()==null){
            throw new ErrorException("样品 " + sampleCode + " æœªå…¥åº“");
        }
        WarehouseHistory history = new WarehouseHistory();
        history.setState(2);
        history.setInsSampleId(samples.get(0).getId());
        history.setCellId(samples.get(0).getCellId());
        history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, samples.get(0).getId()).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode());
        insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, samples.get(0).getId()).set(InsSample::getCellId, null));
        return warehouseHistoryMapper.insert(history);
    }
    @Override
    public Map<String, Object> getSampleRecord(Integer id) {
        InsSample insSample = insSampleMapper.selectById(id);
        List<HistoryDto> histories = warehouseHistoryMapper.getHistoryListBySampleId(id);
        Map<String, Object> map = new HashMap<>();
        Map<String, String> sampleHistory = new HashMap<>();
        WarehouseHistory history = histories.get(histories.size() - 1);
        if(history.getState() == 1){
            sampleHistory.put("date", history.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            sampleHistory.put("user", warehouseHistoryMapper.getUserNameById(history.getCreateUser()));
            sampleHistory.put("code", history.getWarehouseCode());
        }
        map.put("sampleHistory", sampleHistory);
        map.put("insSample", insSample);
        map.put("histories", histories);
        map.put("products", insProductMapper.getProductAndResult(id));
        return map;
    }
    @Override
    public int searchSampleId(String sampleCode) {
        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId));
        if(samples.size()!=1){
            throw new ErrorException("样品编号输入有误");
        }
        return samples.get(0).getId();
    }
}
inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<?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.ruoyi.inspect.mapper.WarehouseCellMapper">
    <select id="getWarehouse" resultMap="WarehouseCellAndHistoryDto">
        select wc.id, wc.row, wc.col, i.id sampleId, i.sample, i.model, i.sample_code from warehouse_cell wc
        left join ins_sample i on i.cell_id = wc.id
        where wc.state = 1
        and wc.shelf_id = #{shelfId}
        order by wc.id
    </select>
    <resultMap id="WarehouseCellAndHistoryDto" type="com.ruoyi.inspect.dto.WarehouseCellAndSampleDto">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="row" column="row" jdbcType="INTEGER"/>
        <result property="col" column="col" jdbcType="INTEGER"/>
        <collection property="samples" resultMap="InsSample"/>
    </resultMap>
    <resultMap id="InsSample" type="com.ruoyi.inspect.pojo.InsSample">
        <id property="id" column="sampleId"/>
        <result property="sample" column="sample"/>
        <result property="model" column="model"/>
        <result property="sampleCode" column="sample_code"/>
    </resultMap>
</mapper>
inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
<?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.ruoyi.inspect.mapper.WarehouseHistoryMapper">
    <select id="getUserNameById" resultType="java.lang.String">
        select name from user where id = #{userId}
    </select>
    <select id="getHistoryListBySampleId" resultType="com.ruoyi.inspect.dto.HistoryDto">
        select wh.*,u.name createUserName from warehouse_history wh
        left join user u on u.id = wh.create_user
        where wh.ins_sample_id = #{sampleId}
        order by wh.id desc
    </select>
</mapper>
inspect-server/src/main/resources/mapper/WarehouseMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
<?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.ruoyi.inspect.mapper.WarehouseMapper">
    <resultMap id="Warehouse" type="com.ruoyi.inspect.dto.WarehouseDto">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="name" column="name" jdbcType="VARCHAR"/>
        <collection property="warehouseShelfList" resultMap="shelf"/>
    </resultMap>
    <resultMap id="shelf" type="com.ruoyi.inspect.pojo.WarehouseShelf">
        <id property="id" column="sId" jdbcType="INTEGER"/>
        <result property="name" column="sName" jdbcType="VARCHAR"/>
        <result property="row" column="row" jdbcType="INTEGER"/>
        <result property="col" column="col" jdbcType="INTEGER"/>
    </resultMap>
    <select id="selectWarehouseList" resultMap="Warehouse">
        select w.id,w.name,ws.id sId,ws.name sName,ws.row,ws.col,ws.warehouse_id from warehouse w
        left join warehouse_shelf ws on w.id = ws.warehouse_id
    </select>
</mapper>