From 8003d2eccb633599ec8292730df64cc8aca50307 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期四, 20 二月 2025 10:35:46 +0800 Subject: [PATCH] 添加样品管理模块 --- inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml | 28 ++ inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java | 20 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java | 189 +++++++++++++ inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java | 44 +++ inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java | 42 +++ inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java | 61 ++++ inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java | 14 + inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java | 26 + inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java | 13 inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java | 18 + inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java | 23 + inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java | 14 + inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java | 25 + inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java | 56 ++++ inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml | 16 + inspect-server/src/main/resources/mapper/WarehouseMapper.xml | 24 + inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java | 23 + inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java | 13 inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java | 61 ++++ inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java | 111 +++++++ 20 files changed, 811 insertions(+), 10 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java index d61e1f9..df437ad 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java +++ b/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)); } diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java new file mode 100644 index 0000000..5010762 --- /dev/null +++ b/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)); + } +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java new file mode 100644 index 0000000..8bb9834 --- /dev/null +++ b/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; + +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java new file mode 100644 index 0000000..59f3939 --- /dev/null +++ b/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; + +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java new file mode 100644 index 0000000..180e741 --- /dev/null +++ b/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; + +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java new file mode 100644 index 0000000..e15fd4e --- /dev/null +++ b/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 閽堝琛ㄣ�恮arehouse_cell(璐ф灦鍗曞厓鏍�)銆戠殑鏁版嵁搴撴搷浣淢apper +* @createDate 2024-04-06 12:12:12 +* @Entity com.yuanchu.mom.pojo.WarehouseCell +*/ +public interface WarehouseCellMapper extends BaseMapper<WarehouseCell> { + + List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId); + +} + + + + diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java new file mode 100644 index 0000000..6c647c7 --- /dev/null +++ b/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 閽堝琛ㄣ�恮arehouse_history(鍑哄叆搴撹褰�)銆戠殑鏁版嵁搴撴搷浣淢apper +* @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); + +} + + + + diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java new file mode 100644 index 0000000..b6d91f0 --- /dev/null +++ b/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 閽堝琛ㄣ�恮arehouse(浠撳簱)銆戠殑鏁版嵁搴撴搷浣淢apper +* @createDate 2024-04-06 12:12:12 +* @Entity com.yuanchu.mom.pojo.Warehouse +*/ +public interface WarehouseMapper extends BaseMapper<Warehouse> { + + List<WarehouseDto> selectWarehouseList(); + +} + + + + diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java new file mode 100644 index 0000000..964c2b1 --- /dev/null +++ b/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 閽堝琛ㄣ�恮arehouse_shelf(璐ф灦)銆戠殑鏁版嵁搴撴搷浣淢apper +* @createDate 2024-04-06 12:12:12 +* @Entity com.yuanchu.mom.pojo.WarehouseShelf +*/ +public interface WarehouseShelfMapper extends BaseMapper<WarehouseShelf> { + +} + + + + diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java new file mode 100644 index 0000000..741b65c --- /dev/null +++ b/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; +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java new file mode 100644 index 0000000..4f0a9b3 --- /dev/null +++ b/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; + + /** + * 澶栨锛氳揣鏋秈d + */ + private Integer shelfId; +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java new file mode 100644 index 0000000..0164d63 --- /dev/null +++ b/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; + + /** + * 澶栭敭锛氭牱鍝乮d + */ + 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; +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java new file mode 100644 index 0000000..670d95a --- /dev/null +++ b/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; + + /** + * 澶栭敭锛氫粨搴搃d + */ + private Integer warehouseId; +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java new file mode 100644 index 0000000..75f77b9 --- /dev/null +++ b/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 閽堝琛ㄣ�恮arehouse(浠撳簱)銆戠殑鏁版嵁搴撴搷浣淪ervice +* @createDate 2024-04-06 12:13:57 +*/ +public interface WarehouseCellService extends IService<WarehouseCell> { + +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java new file mode 100644 index 0000000..9b7db73 --- /dev/null +++ b/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 閽堝琛ㄣ�恮arehouse(浠撳簱)銆戠殑鏁版嵁搴撴搷浣淪ervice +* @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); +} diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java new file mode 100644 index 0000000..333aa18 --- /dev/null +++ b/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 閽堝琛ㄣ�恑ns_sample_user(鏍峰搧璐熻矗浜鸿褰�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇 +* @createDate 2024-03-14 17:12:02 +*/ +@Service +@AllArgsConstructor +public class WarehouseCellServiceImpl extends ServiceImpl<WarehouseCellMapper, WarehouseCell> + implements WarehouseCellService { + + + +} + + + + diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java new file mode 100644 index 0000000..6e9c2e9 --- /dev/null +++ b/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 閽堝琛ㄣ�恑ns_sample_user(鏍峰搧璐熻矗浜鸿褰�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇 +* @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(); + } +} + + + + diff --git a/inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml new file mode 100644 index 0000000..2c673ee --- /dev/null +++ b/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> diff --git a/inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml new file mode 100644 index 0000000..5a26e39 --- /dev/null +++ b/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> diff --git a/inspect-server/src/main/resources/mapper/WarehouseMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml new file mode 100644 index 0000000..2bbc6e8 --- /dev/null +++ b/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> -- Gitblit v1.9.3