update一些接口的更新 以及提供了一些统计的接口

main
杨海航 1 year ago
parent b75c31b1cf
commit 1df6b6e3e4
  1. 2
      src/main/java/digital/laboratory/platform/reagent/controller/PurchaseCatalogueController.java
  2. 110
      src/main/java/digital/laboratory/platform/reagent/controller/ReagentConsumableInventoryController.java
  3. 3
      src/main/java/digital/laboratory/platform/reagent/entity/BatchDetails.java
  4. 14
      src/main/java/digital/laboratory/platform/reagent/entity/StatisticalCornerMark.java
  5. 3
      src/main/java/digital/laboratory/platform/reagent/mapper/ReagentConsumableInventoryMapper.java
  6. 11
      src/main/java/digital/laboratory/platform/reagent/service/ReagentConsumableInventoryService.java
  7. 160
      src/main/java/digital/laboratory/platform/reagent/service/impl/ReagentConsumableInventoryServiceImpl.java
  8. 4
      src/main/java/digital/laboratory/platform/reagent/vo/BatchDetailsVO.java
  9. 57
      src/main/resources/mapper/ReagentConsumableInventoryMapper.xml

@ -119,9 +119,7 @@ public class PurchaseCatalogueController {
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal(); DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
if (startTime != null && endTime != null) { if (startTime != null && endTime != null) {
IPage<PurchaseCatalogueVO> purchaseCatalogueVOPage1 = purchaseCatalogueService.getPurchaseCatalogueVOPage(page, Wrappers.<PurchaseCatalogue>query().ge("create_time", startTime).le("create_time", endTime).orderByDesc("create_time")); IPage<PurchaseCatalogueVO> purchaseCatalogueVOPage1 = purchaseCatalogueService.getPurchaseCatalogueVOPage(page, Wrappers.<PurchaseCatalogue>query().ge("create_time", startTime).le("create_time", endTime).orderByDesc("create_time"));
return R.ok(purchaseCatalogueVOPage1); return R.ok(purchaseCatalogueVOPage1);
} }

@ -16,6 +16,7 @@ import digital.laboratory.platform.reagent.dto.ReagentConsumableInventoryDTO;
import digital.laboratory.platform.reagent.entity.BatchDetails; import digital.laboratory.platform.reagent.entity.BatchDetails;
import digital.laboratory.platform.reagent.entity.ReagentConsumableInventory; import digital.laboratory.platform.reagent.entity.ReagentConsumableInventory;
import digital.laboratory.platform.reagent.entity.ReferenceMaterial; import digital.laboratory.platform.reagent.entity.ReferenceMaterial;
import digital.laboratory.platform.reagent.entity.StatisticalCornerMark;
import digital.laboratory.platform.reagent.mapper.ReagentConsumableInventoryMapper; import digital.laboratory.platform.reagent.mapper.ReagentConsumableInventoryMapper;
import digital.laboratory.platform.reagent.service.ReagentConsumableInventoryService; import digital.laboratory.platform.reagent.service.ReagentConsumableInventoryService;
import digital.laboratory.platform.reagent.service.ReferenceMaterialService; import digital.laboratory.platform.reagent.service.ReferenceMaterialService;
@ -71,11 +72,8 @@ public class ReagentConsumableInventoryController {
@GetMapping("/{reagentConsumableInventoryId}") @GetMapping("/{reagentConsumableInventoryId}")
// @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get')") // @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get')")
public R<ReagentConsumableInventory> getById(@PathVariable("reagentConsumableInventoryId") String reagentConsumableInventoryId, HttpServletRequest theHttpServletRequest) { public R<ReagentConsumableInventory> getById(@PathVariable("reagentConsumableInventoryId") String reagentConsumableInventoryId, HttpServletRequest theHttpServletRequest) {
ReagentConsumableInventory reagentConsumableInventory = reagentConsumableInventoryService.getById(reagentConsumableInventoryId); ReagentConsumableInventory reagentConsumableInventory = reagentConsumableInventoryService.getById(reagentConsumableInventoryId);
return R.ok(reagentConsumableInventory); return R.ok(reagentConsumableInventory);
//return R.ok(reagentConsumableInventoryService.getById(reagentConsumableInventoryId));
} }
@ -86,111 +84,35 @@ public class ReagentConsumableInventoryController {
@ApiOperation(value = "标准物质列表", notes = "标准物质列表") @ApiOperation(value = "标准物质列表", notes = "标准物质列表")
@GetMapping("/RList") @GetMapping("/RList")
// @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get')") // @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get')")
public R<IPage<ReferenceMaterialFullVO>> getReagentConsumableInventoryPage(Page page, String reagentConsumableName, Integer referenceMaterialStatus, HttpServletRequest theHttpServletRequest) { public R<IPage<ReferenceMaterialFullVO>> getReagentConsumableInventoryPage(Page page, String reagentConsumableName, Integer referenceMaterialStatus) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
QueryWrapper<ReferenceMaterial> referenceMaterialQueryWrapper = new QueryWrapper<>(); QueryWrapper<ReferenceMaterial> referenceMaterialQueryWrapper = new QueryWrapper<>();
String number = reagentConsumableName; String number = reagentConsumableName;
referenceMaterialQueryWrapper referenceMaterialQueryWrapper
.and(qw -> qw
.ne(referenceMaterialStatus == null, "status", -4)
.eq(referenceMaterialStatus != null, "status", referenceMaterialStatus))
.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName) .like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
.ne(referenceMaterialStatus == null, "status", -4)
.eq(referenceMaterialStatus != null, "status", referenceMaterialStatus)
.or() .or()
.ne(referenceMaterialStatus == null, "status", -4) .like(StrUtil.isNotBlank(reagentConsumableName), "number", reagentConsumableName);
.like(StrUtil.isNotBlank(reagentConsumableName), "number", reagentConsumableName)
.eq(referenceMaterialStatus != null, "status", referenceMaterialStatus);
IPage<ReferenceMaterialFullVO> allList = reagentConsumableInventoryService.getAllList(page, referenceMaterialQueryWrapper, referenceMaterialStatus, number); IPage<ReferenceMaterialFullVO> allList = reagentConsumableInventoryService.getStandardAllList(page, referenceMaterialQueryWrapper, referenceMaterialStatus, number);
return R.ok(allList); return R.ok(allList);
// return R.ok(reagentConsumableInventoryService.page(page, Wrappers.query(reagentConsumableInventory)));
} }
@ApiOperation(value = "标准物质管理列表", notes = "标准物质管理列表") @ApiOperation(value = "标准物质管理列表", notes = "标准物质管理列表")
@GetMapping("/standardList") @GetMapping("/standardList")
// @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get')") public R<IPage<ReagentConsumableInventoryVO>> getStandardList(Page page, Integer warning, String keywords) {
public R<IPage<ReagentConsumableInventoryVO>> getReagentConsumableInventoryList(Page<ReagentConsumableInventory> page, Integer warning, String reagentConsumableName, HttpServletRequest theHttpServletRequest) { IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryRMVOList = reagentConsumableInventoryService.getReagentConsumableInventoryRMVOList(page, warning, keywords);
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryRMVOList = reagentConsumableInventoryService.getReagentConsumableInventoryRMVOList(page,
Wrappers.<ReagentConsumableInventory>query()
.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "标准物质").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "remark", reagentConsumableName)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "标准物质").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "标准储备溶液").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "remark", reagentConsumableName)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "标准储备溶液").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "species", reagentConsumableName)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "标准物质").or().
like(StrUtil.isNotBlank(reagentConsumableName), "species", reagentConsumableName)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "标准储备溶液").or(), warning);
return R.ok(reagentConsumableInventoryRMVOList); return R.ok(reagentConsumableInventoryRMVOList);
// return R.ok(reagentConsumableInventoryService.page(page, Wrappers.query(reagentConsumableInventory)));
} }
@ApiOperation(value = "试剂耗材管理列表", notes = "试剂耗材管理列表") @ApiOperation(value = "试剂耗材管理列表", notes = "试剂耗材管理列表")
@GetMapping("/List") @GetMapping("/List")
// @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get')") public R<IPage<ReagentConsumableInventoryVO>> getList(Page page, Integer warning, String keywords) {
public R<IPage<ReagentConsumableInventoryVO>> getList(Page page, String reagentConsumableName, Integer warning, String remark, String category, HttpServletRequest theHttpServletRequest) { IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryRMVOList = reagentConsumableInventoryService.getReagentConsumableInventoryREVOList(page, warning, keywords);
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryRMVOList = reagentConsumableInventoryService.getReagentConsumableInventoryREVOList(page, Wrappers.<ReagentConsumableInventory>query()
// .like(StrUtil.isNotBlank(category), "category", category)
// .ne("category", "标准物质")
// .ne("category", "标准储备溶液")
// .and(qw -> qw.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
// .or().like(StrUtil.isNotBlank(reagentConsumableName), "remark", reagentConsumableName))
// .like(warning != null && warning == 1, "warning_information", "库存不足"), warning);
.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
.like(StrUtil.isNotBlank(category), "category", category)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "试剂").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "remark", reagentConsumableName)
.like(StrUtil.isNotBlank(category), "category", category)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "试剂").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
.like(StrUtil.isNotBlank(category), "category", category)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "耗材").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "remark", reagentConsumableName)
.like(StrUtil.isNotBlank(category), "category", category)
.like(warning != null && warning == 1, "warning_information", "库存不足")
.eq("category", "耗材").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "reagent_consumable_name", reagentConsumableName)
.like(StrUtil.isNotBlank(category), "category", category)
.like(warning != null && warning == 1, "species", "库存不足")
.eq("category", "试剂").or()
.like(StrUtil.isNotBlank(reagentConsumableName), "remark", reagentConsumableName)
.like(StrUtil.isNotBlank(category), "category", category)
.like(warning != null && warning == 1, "species", "库存不足")
.eq("category", "耗材").or(), warning);
return R.ok(reagentConsumableInventoryRMVOList); return R.ok(reagentConsumableInventoryRMVOList);
// return R.ok(reagentConsumableInventoryService.page(page, Wrappers.query(reagentConsumableInventory)));
} }
/** /**
@ -323,7 +245,7 @@ public class ReagentConsumableInventoryController {
* *
* @param id id * @param id id
*/ */
@ApiOperation(value = "", notes = "通过id,获取标准物质所有信息") @ApiOperation(value = "", notes = "通过id或者code(也就是标准物质编号),获取标准物质所有信息")
@GetMapping("/getByCode") @GetMapping("/getByCode")
@PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get_by_code')") @PreAuthorize("@pms.hasPermission('reagent_reagent_consumable_inventory_get_by_code')")
public R<ReagentConsumableInventoryFullVO> getByCode(String id, String number, HttpServletResponse httpServletResponse) { public R<ReagentConsumableInventoryFullVO> getByCode(String id, String number, HttpServletResponse httpServletResponse) {
@ -424,4 +346,10 @@ public class ReagentConsumableInventoryController {
return R.failed("导出失败"); return R.failed("导出失败");
} }
} }
@GetMapping("/get/statistical/mark")
public R<List<StatisticalCornerMark>> getStatisticalCornerMarkList() {
return R.ok(reagentConsumableInventoryService.getStatisticalCornerMarkList());
}
} }

@ -100,6 +100,7 @@ public class BatchDetails extends BaseEntity {
@ApiModelProperty(value="batchDetailsId") @ApiModelProperty(value="batchDetailsId")
private String batchDetailsId; private String batchDetailsId;
@TableField(exist = false)
private String supplierName;
} }

@ -0,0 +1,14 @@
package digital.laboratory.platform.reagent.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class StatisticalCornerMark {
private String markName;
private Integer markQuantity;
}

@ -9,6 +9,7 @@ import digital.laboratory.platform.reagent.entity.ReferenceMaterial;
import digital.laboratory.platform.reagent.vo.*; import digital.laboratory.platform.reagent.vo.*;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;
import java.util.List; import java.util.List;
@ -21,7 +22,7 @@ import java.util.List;
@Mapper @Mapper
public interface ReagentConsumableInventoryMapper extends BaseMapper<ReagentConsumableInventory> { public interface ReagentConsumableInventoryMapper extends BaseMapper<ReagentConsumableInventory> {
IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryVOPage(IPage<ReagentConsumableInventory> page, @Param(Constants.WRAPPER) QueryWrapper<ReagentConsumableInventory> qw); IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryVOPage(IPage<ReagentConsumableInventory> page, @Param("warning") Integer warning,@Param("keywords") String keywords,@Param("reagentCategory") Integer reagentCategory);
IPage<ReagentConsumableInventoryFullVO> getReagentConsumableInventoryFullVOPage(IPage<ReagentConsumableInventory> page, @Param(Constants.WRAPPER) QueryWrapper<ReagentConsumableInventory> qw); IPage<ReagentConsumableInventoryFullVO> getReagentConsumableInventoryFullVOPage(IPage<ReagentConsumableInventory> page, @Param(Constants.WRAPPER) QueryWrapper<ReagentConsumableInventory> qw);

@ -8,6 +8,7 @@ import digital.laboratory.platform.reagent.dto.ReagentConsumableInventoryDTO;
import digital.laboratory.platform.reagent.entity.BatchDetails; import digital.laboratory.platform.reagent.entity.BatchDetails;
import digital.laboratory.platform.reagent.entity.ReagentConsumableInventory; import digital.laboratory.platform.reagent.entity.ReagentConsumableInventory;
import digital.laboratory.platform.reagent.entity.ReferenceMaterial; import digital.laboratory.platform.reagent.entity.ReferenceMaterial;
import digital.laboratory.platform.reagent.entity.StatisticalCornerMark;
import digital.laboratory.platform.reagent.vo.*; import digital.laboratory.platform.reagent.vo.*;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -25,21 +26,21 @@ import java.util.Map;
*/ */
public interface ReagentConsumableInventoryService extends IService<ReagentConsumableInventory> { public interface ReagentConsumableInventoryService extends IService<ReagentConsumableInventory> {
//试剂耗材/标准物质标准物质管理列表 //试剂耗材列表
IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryREVOList(IPage<ReagentConsumableInventory> page, QueryWrapper<ReagentConsumableInventory> qw, Integer warning); IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryREVOList(IPage<ReagentConsumableInventory> page, Integer warning,String keywords);
ReagentConsumableInventory addById(String reagentConsumableId, Integer quantity); ReagentConsumableInventory addById(String reagentConsumableId, Integer quantity);
ReagentConsumableInventory reduceById(String reagentConsumableId, Integer quantity); ReagentConsumableInventory reduceById(String reagentConsumableId, Integer quantity);
IPage<ReferenceMaterialFullVO> getAllList(Page page, QueryWrapper<ReferenceMaterial> qw, Integer status, String number); IPage<ReferenceMaterialFullVO> getStandardAllList(Page page, QueryWrapper<ReferenceMaterial> qw, Integer status, String number);
ReagentConsumableInventoryFullVO getByCode(String id); ReagentConsumableInventoryFullVO getByCode(String id);
//分页查询试剂耗材 //分页查询试剂耗材
IPage<ReagentConsumableInventoryFullVO> getAllRM(IPage<ReagentConsumableInventory> page, QueryWrapper<ReagentConsumableInventory> qw); IPage<ReagentConsumableInventoryFullVO> getAllRM(IPage<ReagentConsumableInventory> page, QueryWrapper<ReagentConsumableInventory> qw);
IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryRMVOList(IPage<ReagentConsumableInventory> page,QueryWrapper<ReagentConsumableInventory>qw,Integer warning); IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryRMVOList(IPage<ReagentConsumableInventory> page,Integer warning,String keywords);
List<ReagentConsumableInventoryFullVO> getReagentConsumableInventoryFull(QueryWrapper<ReagentConsumableInventory> qw); List<ReagentConsumableInventoryFullVO> getReagentConsumableInventoryFull(QueryWrapper<ReagentConsumableInventory> qw);
@ -75,5 +76,7 @@ public interface ReagentConsumableInventoryService extends IService<ReagentConsu
@Transactional @Transactional
boolean checkObj(List<ReagentConsumableInventoryFullVO> reagentConsumableInventoryFullVOList); boolean checkObj(List<ReagentConsumableInventoryFullVO> reagentConsumableInventoryFullVOList);
List<StatisticalCornerMark> getStatisticalCornerMarkList();
// List<OrgFullVO> getOrgList(); // List<OrgFullVO> getOrgList();
} }

@ -38,7 +38,6 @@ import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
@ -49,7 +48,6 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.swing.*;
import java.io.*; import java.io.*;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Paths; import java.nio.file.Paths;
@ -112,82 +110,49 @@ public class ReagentConsumableInventoryServiceImpl extends ServiceImpl<ReagentCo
private OssFile ossFile; private OssFile ossFile;
@Override//标准物质标准物质管理列表 @Override//标准物质标准物质管理列表
public IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryRMVOList(IPage<ReagentConsumableInventory> page, QueryWrapper<ReagentConsumableInventory> qw, Integer warning) { public IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryRMVOList(IPage<ReagentConsumableInventory> page, Integer warning, String keywords) {
Integer reagentCategory = 1;
if (warning != null && warning == 2) {
if (warning != null) { return this.getReagentConsumableInventoryWarningPage((Page) page, reagentCategory);
if (warning == 2) {
List<ReagentConsumableInventoryVO> reagentConsumableInventoryVOList = new ArrayList<>();
List<BatchDetails> list = batchDetailsService.list(Wrappers.<BatchDetails>query().eq("warning_information", "即将过期").or().eq("warning_information", "已过期").or().eq("warning_information", "即将到达存储期限").or().eq("warning_information", "已超过存储期限"));
if (list.size() != 0) {
for (BatchDetails batchDetails : list) {
ReagentConsumableInventory byId = this.getById(batchDetails.getReagentConsumableInventoryId());
ReagentConsumableInventoryVO reagentConsumableInventoryVO = new ReagentConsumableInventoryVO();
BeanUtils.copyProperties(byId, reagentConsumableInventoryVO);
reagentConsumableInventoryVO.setBatchDetailsVOS(batchDetailsService.getBatchDetailsList(reagentConsumableInventoryVO.getReagentConsumableInventoryId()));
if (!reagentConsumableInventoryVOList.contains(reagentConsumableInventoryVO)) {
if (reagentConsumableInventoryVO.getCategory().equals("标准物质")) {
reagentConsumableInventoryVOList.add(reagentConsumableInventoryVO);
}
}
}
}
PageUtils pageUtils = new PageUtils();
return pageUtils.getPages((int) page.getCurrent(), (int) page.getSize(), reagentConsumableInventoryVOList);
}
}
IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryVOPage = baseMapper.getReagentConsumableInventoryVOPage(page, qw);
List<ReagentConsumableInventoryVO> records = reagentConsumableInventoryVOPage.getRecords();
for (ReagentConsumableInventoryVO reagentConsumableInventoryVO : records) {
List<BatchDetailsVO> batchDetailsVOList = batchDetailsService.getBatchDetailsList(reagentConsumableInventoryVO.getReagentConsumableInventoryId());
//赋值试剂耗材批次明细
reagentConsumableInventoryVO.setBatchDetailsVOS(batchDetailsVOList);
} }
IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryVOPage = baseMapper.getReagentConsumableInventoryVOPage(page, warning, keywords, reagentCategory);
return reagentConsumableInventoryVOPage; return reagentConsumableInventoryVOPage;
} }
@Override//试剂耗材管理列表 @Override//试剂耗材管理列表
public IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryREVOList(IPage<ReagentConsumableInventory> page, QueryWrapper<ReagentConsumableInventory> qw, Integer warning) { public IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryREVOList(IPage<ReagentConsumableInventory> page, Integer warning, String keywords) {
Integer reagentCategory = 0;
if (warning != null && warning == 2) { if (warning != null && warning == 2) {
List<ReagentConsumableInventoryVO> reagentConsumableInventoryVOList = new ArrayList<>(); return this.getReagentConsumableInventoryWarningPage((Page) page, reagentCategory);
List<BatchDetails> list = batchDetailsService.list(Wrappers.<BatchDetails>query().eq("warning_information", "即将过期").or().eq("warning_information", "已过期").or().eq("warning_information", "即将到达存储期限").or().eq("warning_information", "已超过存储期限"));
//查找具有到期批次物品的试剂耗材类信息
if (list != null && list.size() != 0) {
for (BatchDetails batchDetails : list) {
ReagentConsumableInventory reagentConsumableInventory = this.getOne(new LambdaQueryWrapper<ReagentConsumableInventory>().eq(ReagentConsumableInventory::getReagentConsumableInventoryId, batchDetails.getReagentConsumableInventoryId()).ne(ReagentConsumableInventory::getCategory, "标准物质").ne(ReagentConsumableInventory::getCategory, "标准储备溶液"));
if (reagentConsumableInventory != null) {
ReagentConsumableInventoryVO reagentConsumableInventoryVO = new ReagentConsumableInventoryVO();
BeanUtils.copyProperties(reagentConsumableInventory, reagentConsumableInventoryVO);
reagentConsumableInventoryVO.setBatchDetailsVOS(batchDetailsService.getBatchDetailsList(reagentConsumableInventoryVO.getReagentConsumableInventoryId()));
reagentConsumableInventoryVOList.add(reagentConsumableInventoryVO);
}
}
}
PageUtils pageUtils = new PageUtils();
return pageUtils.getPages((int) page.getCurrent(), (int) page.getSize(), reagentConsumableInventoryVOList);
}
IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryVOPage = baseMapper.getReagentConsumableInventoryVOPage(page, qw);
List<ReagentConsumableInventoryVO> records = reagentConsumableInventoryVOPage.getRecords();
for (ReagentConsumableInventoryVO reagentConsumableInventoryVO : records) {
List<BatchDetailsVO> batchDetailsVOList = batchDetailsService.getBatchDetailsList(reagentConsumableInventoryVO.getReagentConsumableInventoryId());
//赋值试剂耗材批次明细
reagentConsumableInventoryVO.setBatchDetailsVOS(batchDetailsVOList);
} }
IPage<ReagentConsumableInventoryVO> reagentConsumableInventoryVOPage = baseMapper.getReagentConsumableInventoryVOPage(page, warning, keywords, reagentCategory);
return reagentConsumableInventoryVOPage; return reagentConsumableInventoryVOPage;
} }
//查询即将到期的试剂耗材、标准物质:reagentCategory:0代表试剂耗材,1代表标准物质、标准储备溶液
public IPage<ReagentConsumableInventoryVO> getReagentConsumableInventoryWarningPage(Page page, Integer reagentCategory) {
List<ReagentConsumableInventoryVO> reagentConsumableInventoryVOList = new ArrayList<>();
List<BatchDetails> list = batchDetailsService.list(Wrappers.<BatchDetails>query().eq("warning_information", "即将过期").or().eq("warning_information", "已过期").or().eq("warning_information", "即将到达存储期限").or().eq("warning_information", "已超过存储期限"));
//查找具有到期批次物品的试剂耗材\标准物质类信息
if (list != null && list.size() != 0) {
for (BatchDetails batchDetails : list) {
ReagentConsumableInventory reagentConsumableInventory = new ReagentConsumableInventory();
if (reagentCategory == 0) {
reagentConsumableInventory = this.getOne(new LambdaQueryWrapper<ReagentConsumableInventory>().eq(ReagentConsumableInventory::getReagentConsumableInventoryId, batchDetails.getReagentConsumableInventoryId()).ne(ReagentConsumableInventory::getCategory, "标准物质").ne(ReagentConsumableInventory::getCategory, "标准储备溶液"));
} else {
reagentConsumableInventory = this.getOne(new LambdaQueryWrapper<ReagentConsumableInventory>().eq(ReagentConsumableInventory::getReagentConsumableInventoryId, batchDetails.getReagentConsumableInventoryId()).ne(ReagentConsumableInventory::getCategory, "试剂").ne(ReagentConsumableInventory::getCategory, "耗材"));
}
if (reagentConsumableInventory != null) {
ReagentConsumableInventoryVO reagentConsumableInventoryVO = new ReagentConsumableInventoryVO();
BeanUtils.copyProperties(reagentConsumableInventory, reagentConsumableInventoryVO);
reagentConsumableInventoryVO.setBatchDetailsVOS(batchDetailsService.getBatchDetailsList(reagentConsumableInventoryVO.getReagentConsumableInventoryId()));
reagentConsumableInventoryVOList.add(reagentConsumableInventoryVO);
}
}
}
PageUtils pageUtils = new PageUtils();
return pageUtils.getPages((int) page.getCurrent(), (int) page.getSize(), reagentConsumableInventoryVOList);
}
@Override//入库增加库存 @Override//入库增加库存
public ReagentConsumableInventory addById(String reagentConsumableId, Integer quantity) { public ReagentConsumableInventory addById(String reagentConsumableId, Integer quantity) {
@ -231,32 +196,21 @@ public class ReagentConsumableInventoryServiceImpl extends ServiceImpl<ReagentCo
@Override//分页查询标准物质 @Override//分页查询标准物质
public IPage<ReferenceMaterialFullVO> getAllList(Page page, QueryWrapper<ReferenceMaterial> qw, Integer status, String number) { public IPage<ReferenceMaterialFullVO> getStandardAllList(Page page, QueryWrapper<ReferenceMaterial> qw, Integer status, String number) {
//如果扫码 // //如果扫码
// if (StrUtil.isNotBlank(number)) {
if (StrUtil.isNotBlank(number)) { // ReferenceMaterial referenceMaterial = referenceMaterialService.getOne(Wrappers.<ReferenceMaterial>query().eq("number", number));
// if (referenceMaterial != null) {
ReferenceMaterial referenceMaterial = referenceMaterialService.getOne(Wrappers.<ReferenceMaterial>query().eq("number", number)); // ReagentConsumableInventoryFullVO byCode = this.getByCode(referenceMaterial.getId());
// List<ReagentConsumableInventoryFullVO> reagentConsumableInventoryFullVOS = new ArrayList<>();
if (referenceMaterial != null) { // reagentConsumableInventoryFullVOS.add(byCode);
// PageUtils pageUtils = new PageUtils();
ReagentConsumableInventoryFullVO byCode = this.getByCode(referenceMaterial.getId()); // Page pages = pageUtils.getPages(page.getCurrent(), page.getSize(), reagentConsumableInventoryFullVOS);
// return pages;
List<ReagentConsumableInventoryFullVO> reagentConsumableInventoryFullVOS = new ArrayList<>(); //
// }
reagentConsumableInventoryFullVOS.add(byCode); // }
PageUtils pageUtils = new PageUtils();
Page pages = pageUtils.getPages(page.getCurrent(), page.getSize(), reagentConsumableInventoryFullVOS);
return pages;
}
}
IPage<ReferenceMaterialFullVO> referenceMaterialPage = baseMapper.getReferenceMaterialPage(page, qw); IPage<ReferenceMaterialFullVO> referenceMaterialPage = baseMapper.getReferenceMaterialPage(page, qw);
return referenceMaterialPage; return referenceMaterialPage;
} }
@ -1043,4 +997,24 @@ public class ReagentConsumableInventoryServiceImpl extends ServiceImpl<ReagentCo
return false; return false;
} }
@Override
public List<StatisticalCornerMark> getStatisticalCornerMarkList() {
List<StatisticalCornerMark> statisticalCornerMarkList = new ArrayList<>();
//到期标识
Integer expireWarning = 2;
//库存不足标识
Integer understockWarning = 1;
Page<ReagentConsumableInventory> page = new Page<>(9999, 9999);
int understockReagentConsumableQuantity = (int) this.getReagentConsumableInventoryREVOList(page, 1, "").getTotal();
statisticalCornerMarkList.add(new StatisticalCornerMark("库存不足的试剂耗材种类数量", understockReagentConsumableQuantity));
int expireReagentConsumableQuantity = (int) this.getReagentConsumableInventoryREVOList(page, 2, "").getTotal();
statisticalCornerMarkList.add(new StatisticalCornerMark("即将到期的试剂耗材种类数量", expireReagentConsumableQuantity));
int understockReferenceMaterialQuantity = (int) this.getReagentConsumableInventoryRMVOList(page, 1, "").getTotal();
statisticalCornerMarkList.add(new StatisticalCornerMark("库存不足的标准物质种类数量", understockReferenceMaterialQuantity));
int expireReferenceMaterialQuantity = (int) this.getReagentConsumableInventoryRMVOList(page, 2, "").getTotal();
statisticalCornerMarkList.add(new StatisticalCornerMark("即将到期的标准物质种类数量", expireReferenceMaterialQuantity));
return statisticalCornerMarkList;
}
} }

@ -3,13 +3,17 @@ package digital.laboratory.platform.reagent.vo;
import digital.laboratory.platform.reagent.entity.BatchDetails; import digital.laboratory.platform.reagent.entity.BatchDetails;
import digital.laboratory.platform.reagent.entity.ReferenceMaterial; import digital.laboratory.platform.reagent.entity.ReferenceMaterial;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
public class BatchDetailsVO extends BatchDetails { public class BatchDetailsVO extends BatchDetails {
@ApiModelProperty(value="供应商名称") @ApiModelProperty(value="供应商名称")

@ -42,7 +42,45 @@
<resultMap id="reagentConsumableInventoryVO" <resultMap id="reagentConsumableInventoryVO"
type="digital.laboratory.platform.reagent.vo.ReagentConsumableInventoryVO" type="digital.laboratory.platform.reagent.vo.ReagentConsumableInventoryVO"
extends="reagentConsumableInventoryMap"></resultMap> extends="reagentConsumableInventoryMap">
<collection property="batchDetailsVOS" ofType="batchDetailsVOS" select="getBatchDetailsListForReagent" column="reagent_consumable_inventory_id"></collection>
</resultMap>
<select id="getBatchDetailsListForReagent" resultMap="batchDetailsVOS" >
select b.*,(select s.supplier_name from supplier_information s where s.id = b.supplier_id ) as supplier_name from batch_details b where b.reagent_consumable_inventory_id =#{reagent_consumable_inventory_id}
</select>
<resultMap id="batchDetailsVOS" type="digital.laboratory.platform.reagent.entity.BatchDetails">
<id property="batchDetailsId" column="batch_details_id"/>
<result property="batch" column="batch"/>
<result property="batchNumber" column="batch_number"/>
<result property="complianceTestSituation" column="compliance_test_situation"/>
<result property="dateOfLastCheck" column="date_of_last_check"/>
<result property="dateOfProduction" column="date_of_production"/>
<result property="deviationOrUncertainty" column="deviation_or_uncertainty"/>
<result property="expirationDate" column="expiration_date"/>
<result property="fixedResult" column="fixed_result"/>
<result property="number" column="number"/>
<result property="purchaseTime" column="purchase_time"/>
<result property="quantity" column="quantity"/>
<result property="reagentConsumableInventoryId" column="reagent_consumable_inventory_id"/>
<result property="serviceStatus" column="service_status"/>
<result property="supplierId" column="supplier_id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="latticeId" column="lattice_id"/>
<result property="location" column="location"/>
<result property="limitDate" column="limit_date"/>
<result property="boxId" column="box_id"/>
<result property="warningInformation" column="warning_information"/>
<result property="warehousingBatchListId" column="warehousing_batch_list_id"/>
<result property="roomNo" column="room_no"/>
<result property="reagentConsumableStashId" column="reagent_consumable_stash_id"/>
<result property="supplierName" column="supplier_name"/>
</resultMap>
<select id="getReagentConsumableInventoryFullVOPage" <select id="getReagentConsumableInventoryFullVOPage"
resultType="digital.laboratory.platform.reagent.vo.ReagentConsumableInventoryFullVO"> resultType="digital.laboratory.platform.reagent.vo.ReagentConsumableInventoryFullVO">
@ -68,8 +106,21 @@
<select id="getReagentConsumableInventoryVOPage" resultMap="reagentConsumableInventoryVO" <select id="getReagentConsumableInventoryVOPage" resultMap="reagentConsumableInventoryVO"
resultType="digital.laboratory.platform.reagent.vo.ReagentConsumableInventoryVO"> resultType="digital.laboratory.platform.reagent.vo.ReagentConsumableInventoryVO">
select * select r.* from reagent_consumable_inventory r
from reagent_consumable_inventory ${ew.customSqlSegment} where
<if test="reagentCategory != null and reagentCategory == 0">
r.category in ('试剂','耗材')
</if>
<if test="reagentCategory != null and reagentCategory == 1">
r.category in ('标准物质','标准储备溶液')
</if>
<if test="warning != null and warning == 1">
and r.warning_information = '库存不足'
</if>
<if test="keywords != null and keywords != ''">
and r.reagent_consumable_name like concat('%',#{keywords},'%')
or r.remark like like concat('%',#{keywords},'%')
</if>
</select> </select>
<select id="getUserList" resultType="digital.laboratory.platform.reagent.vo.UserVO"> <select id="getUserList" resultType="digital.laboratory.platform.reagent.vo.UserVO">

Loading…
Cancel
Save