main
杨海航 1 year ago
parent 6abeb8ef4b
commit 55aab82989
  1. 37
      src/main/java/digital/laboratory/platform/reagent/controller/ReagentConsumableStashController.java
  2. 34
      src/main/java/digital/laboratory/platform/reagent/dto/ReagentConsumableInventoryDTO.java
  3. 85
      src/main/java/digital/laboratory/platform/reagent/entity/ReagentConsumableStash.java
  4. 15
      src/main/java/digital/laboratory/platform/reagent/mapper/ReagentConsumableStashMapper.java
  5. 13
      src/main/java/digital/laboratory/platform/reagent/service/ReagentConsumableStashService.java
  6. 34
      src/main/java/digital/laboratory/platform/reagent/service/impl/BatchDetailsServiceImpl.java
  7. 4
      src/main/java/digital/laboratory/platform/reagent/service/impl/ReagentConsumableInventoryServiceImpl.java
  8. 20
      src/main/java/digital/laboratory/platform/reagent/service/impl/ReagentConsumableStashImpl.java
  9. 2
      src/main/java/digital/laboratory/platform/reagent/service/impl/StandardMaterialApprovalFormServiceImpl.java
  10. 166
      src/main/java/digital/laboratory/platform/reagent/vo/ReferenceMaterialFullVO.java
  11. 40
      src/main/resources/mapper/ReagentConsumableStashMapper.xml

@ -0,0 +1,37 @@
package digital.laboratory.platform.reagent.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.reagent.entity.ReagentConsumableStash;
import digital.laboratory.platform.reagent.service.ReagentConsumableStashService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("reagent_consumable_stash")
@Api(value = "reagent_consumable_stash", tags = "试剂耗材仓库管理")
public class ReagentConsumableStashController {
@Autowired
private ReagentConsumableStashService reagentConsumableStashService;
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping
public R<IPage<ReagentConsumableStash>> getReagentConsumableStash(Page page, String argument) {
IPage<ReagentConsumableStash> reagentConsumableStashIPage = reagentConsumableStashService.getReagentConsumableStashPage(page, Wrappers.<ReagentConsumableStash>query()
.like(StrUtil.isNotBlank(argument), "reagent_consumable_name", argument)
.ne("total_quantity", 0)
.or()
.like(StrUtil.isNotBlank(argument), "room_no", argument)
.ne("total_quantity", 0));
return R.ok(reagentConsumableStashIPage);
}
}

@ -0,0 +1,34 @@
package digital.laboratory.platform.reagent.dto;
import com.amazonaws.services.s3.S3ResourceType;
import digital.laboratory.platform.reagent.entity.ReagentConsumableInventory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
@Data
public class ReagentConsumableInventoryDTO extends ReagentConsumableInventory {
@ApiModelProperty(value = "(位置信息)")
private String location;
@ApiModelProperty(value="(供应商ID)")
private String supplierId;
@ApiModelProperty(value="(有效日期)")
private LocalDate expirationDate;
@ApiModelProperty(value="(生产日期)")
private LocalDate dateOfProduction;
@ApiModelProperty(value="(房间号)")
private String roomNo;
private String articleNumber;
private String packages;
}

@ -0,0 +1,85 @@
package digital.laboratory.platform.reagent.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@TableName(value = "reagent_consumable_stash", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "试剂耗材仓库")
public class ReagentConsumableStash extends BaseEntity {
@ApiModelProperty(value="纯度等级")
private String purityGrade;
@ApiModelProperty(value = "CAS-号")
private String casNumber;
@ApiModelProperty(value = "物品编码")
private String code;
@ApiModelProperty(value = "名称")
private String reagentConsumableName;
@ApiModelProperty(value = "(品牌)")
private String brand;
@ApiModelProperty(value = "(类别)")
private String category;
@ApiModelProperty(value = "偏差/不确定度")
private String deviationOrUncertainty;
@ApiModelProperty(value = "(试剂耗材Id)")
private String reagentConsumableId;
@ApiModelProperty(value = "(规格型号)")
private String specificationAndModel;
@ApiModelProperty(value = "(种类)")
private String species;
@ApiModelProperty(value = "(标准值/纯度)")
private String standardValueOrPurity;
@ApiModelProperty(value = "(技术参数)")
private String technicalParameter;
@ApiModelProperty(value = "(总数量)")
private Integer totalQuantity;
@ApiModelProperty(value = "(包装份数)")
private String packagedCopies;
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@ApiModelProperty(value = "Reagent_consumable_stash")
private String id;
@ApiModelProperty(value = "单价")
private Double unitPrice;
@ApiModelProperty(value = "别名")
private String alias;
@ApiModelProperty(value = "存储条件")
private String storageCondition;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "包装单位")
private String minimumUnit;
@ApiModelProperty(value = "英文名")
private String englishName;
@ApiModelProperty(value = "房间号")
private String roomNo;
}

@ -0,0 +1,15 @@
package digital.laboratory.platform.reagent.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import digital.laboratory.platform.reagent.entity.ReagentConsumableStash;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface ReagentConsumableStashMapper extends BaseMapper<ReagentConsumableStash> {
IPage<ReagentConsumableStash> getReagentConsumableStashPage(IPage<ReagentConsumableStash> page, @Param(Constants.WRAPPER) QueryWrapper qw);
}

@ -0,0 +1,13 @@
package digital.laboratory.platform.reagent.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.reagent.entity.ReagentConsumableStash;
import org.springframework.stereotype.Service;
public interface ReagentConsumableStashService extends IService<ReagentConsumableStash> {
IPage<ReagentConsumableStash> getReagentConsumableStashPage(Page page, QueryWrapper<ReagentConsumableStash> qw);
}

@ -2,15 +2,9 @@ package digital.laboratory.platform.reagent.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.reagent.entity.BatchDetails;
import digital.laboratory.platform.reagent.entity.ReagentConsumableInventory;
import digital.laboratory.platform.reagent.entity.ReferenceMaterial;
import digital.laboratory.platform.reagent.entity.SupplierInformation;
import digital.laboratory.platform.reagent.entity.*;
import digital.laboratory.platform.reagent.mapper.BatchDetailsMapper;
import digital.laboratory.platform.reagent.service.BatchDetailsService;
import digital.laboratory.platform.reagent.service.ReagentConsumableInventoryService;
import digital.laboratory.platform.reagent.service.ReferenceMaterialService;
import digital.laboratory.platform.reagent.service.SupplierInformationService;
import digital.laboratory.platform.reagent.service.*;
import digital.laboratory.platform.reagent.vo.BatchDetailsVO;
import digital.laboratory.platform.reagent.vo.ReferenceMaterialVO;
import org.springframework.beans.BeanUtils;
@ -38,7 +32,8 @@ public class BatchDetailsServiceImpl extends ServiceImpl<BatchDetailsMapper, Bat
private SupplierInformationService supplierInformationService;
@Autowired
private ReferenceMaterialService referenceMaterialService;
private ReagentConsumableStashService reagentConsumableStashService;
@Override
public List<BatchDetailsVO> getBatchDetailsList(String reagentConsumableInventoryId) {
@ -68,4 +63,25 @@ public class BatchDetailsServiceImpl extends ServiceImpl<BatchDetailsMapper, Bat
return batchDetailsVOS;
}
//----------------------------------------------------------------
//修改库存(只能修改批次数量,同时更新总数量与对应仓库数量)
public BatchDetails updateQuantity(String batchDetailsId, Integer quantity) {
BatchDetails batchDetails = this.getById(batchDetailsId);
ReagentConsumableInventory reagentConsumableInventory = reagentConsumableInventoryService.getById(batchDetails.getReagentConsumableInventoryId());
ReagentConsumableStash reagentConsumableStash = reagentConsumableStashService.getById(batchDetails.getReagentConsumableStashId());
reagentConsumableInventory.setTotalQuantity(reagentConsumableInventory.getTotalQuantity() - batchDetails.getQuantity() + quantity);
reagentConsumableStash.setTotalQuantity(reagentConsumableInventory.getTotalQuantity() - batchDetails.getQuantity() + quantity);
batchDetails.setQuantity(quantity);
if (this.updateById(batchDetails) && reagentConsumableStashService.updateById(reagentConsumableStash) && reagentConsumableInventoryService.updateById(reagentConsumableInventory)) {
return batchDetails;
} else {
throw new RuntimeException(String.format("修改失败"));
}
}
}

@ -686,9 +686,6 @@ public class ReagentConsumableInventoryServiceImpl extends ServiceImpl<ReagentCo
reagentConsumableStashService.save(consumableStash);
}
}
if (reagentConsumableInventoryDTO.getCategory().equals("标准物质")) {
ReferenceMaterial referenceMaterial = new ReferenceMaterial();
referenceMaterial.setReagentConsumableId(reagentConsumables.getReagentConsumableId());
@ -713,7 +710,6 @@ public class ReagentConsumableInventoryServiceImpl extends ServiceImpl<ReagentCo
batchDetailsService.save(batchDetails);
}
}
@Override
//更新柜子系统方法,柜子ID、物品ID、入库OR出库 (opCode 1 or -1)
public void updateCabinet(String latticeId, String itemId, int opCode) {

@ -0,0 +1,20 @@
package digital.laboratory.platform.reagent.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.reagent.entity.ReagentConsumableStash;
import digital.laboratory.platform.reagent.mapper.ReagentConsumableStashMapper;
import digital.laboratory.platform.reagent.service.ReagentConsumableStashService;
import org.springframework.stereotype.Service;
@Service
public class ReagentConsumableStashImpl extends ServiceImpl<ReagentConsumableStashMapper, ReagentConsumableStash> implements ReagentConsumableStashService {
@Override
public IPage<ReagentConsumableStash> getReagentConsumableStashPage(Page page, QueryWrapper<ReagentConsumableStash> qw) {
return baseMapper.getReagentConsumableStashPage(page, qw);
}
}

@ -207,7 +207,7 @@ public class StandardMaterialApprovalFormServiceImpl extends ServiceImpl<Standar
standardMaterialApprovalFormVO.setReasonForApplicationPrint(3);
}
if (reasonForApplication.equals("定值未达使用要求,报废销毁")) {
if (reasonForApplication.equals("定值未达使用要求报废销毁")) {
standardMaterialApprovalFormVO.setReasonForApplicationPrint(4);
}

@ -0,0 +1,166 @@
package digital.laboratory.platform.reagent.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import digital.laboratory.platform.reagent.entity.ReferenceMaterial;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ReferenceMaterialFullVO extends ReferenceMaterial {
@ApiModelProperty(value = "标准物质ID")
private String referenceMaterialId;
@ApiModelProperty(value = "购置时间")
private LocalDateTime purchaseTime;
@ApiModelProperty(value = "制造商ID")
private String manufacturerId;
@ApiModelProperty(value = "批号")
private String batchNumber;
@ApiModelProperty(value = "标准物质编号")
private String number;
@ApiModelProperty(value = "供应商名称")
private String supplierName;
@ApiModelProperty(value = "批次")
private String batch;
@ApiModelProperty(value = "标准物质状态")
private Integer referenceMaterialStatus;
@ApiModelProperty(value="(定值结果)")
private String fixedResult;
@ApiModelProperty(value="(配置浓度(mg/mL))")
private double configurationConcentration;
@ApiModelProperty(value="(配置日期)")
private LocalDateTime configurationDate;
@ApiModelProperty(value="(溶液编号)")
private String solutionNumbering;
@ApiModelProperty(value="(有效期限)")
private Integer validityPeriod;
@ApiModelProperty(value="纯度等级")
private String purityGrade;
@ApiModelProperty(value = "CAS-号")
private String casNumber;
@ApiModelProperty(value = "物品编码")
private String code;
/**
* 名称
* (品牌)
*/
@ApiModelProperty(value = "(品牌)")
private String brand;
/**
* (类别)
*/
@ApiModelProperty(value = "(类别)")
private String category;
/**
* 偏差/不确定度
*/
@ApiModelProperty(value = "偏差/不确定度")
private String deviationOrUncertainty;
/**
* (指导书ID)
*/
@ApiModelProperty(value = "(指导书ID)")
private String instructionBookId;
/**
* (规格型号)
*/
@ApiModelProperty(value = "(规格型号)")
private String specificationAndModel;
/**
* (种类)
*/
@ApiModelProperty(value = "(种类)")
private String species;
/**
* (标准值/纯度)
*/
@ApiModelProperty(value = "(标准值/纯度)")
private String standardValueOrPurity;
/**
* (技术参数)
*/
@ApiModelProperty(value = "(技术参数)")
private String technicalParameter;
/**
* (总数量)
*/
@ApiModelProperty(value = "(总数量)")
private Integer totalQuantity;
/**
* (包装份数)
*/
@ApiModelProperty(value = "(包装份数)")
private String packagedCopies;
@ApiModelProperty(value = "单价")
private Double unitPrice;
/**
* 别名
*/
@ApiModelProperty(value = "别名")
private String alias;
/**
* 存储条件
*/
@ApiModelProperty(value = "存储条件")
private String storageCondition;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String remark;
/**
* 包装单位
*/
@ApiModelProperty(value = "包装单位")
private String minimumUnit;
@ApiModelProperty(value = "英文名")
private String englishName;
/**
* 存储期限
*/
@ApiModelProperty(value = "存储期限")
private Integer storageLife;
/**
/**
* (预警值)
*/
@ApiModelProperty(value="(预警值)")
private Integer warningValue;
@ApiModelProperty(value="(预警信息)")
private String warningInformation;
}

@ -0,0 +1,40 @@
<?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="digital.laboratory.platform.reagent.mapper.ReagentConsumableStashMapper">
<resultMap id="reagentConsumableStashMap" type="digital.laboratory.platform.reagent.entity.ReagentConsumableStash">
<id property="id" column="id"/>
<result property="brand" column="brand"/>
<result property="category" column="category"/>
<result property="deviationOrUncertainty" column="deviation_or_uncertainty"/>
<result property="reagentConsumableId" column="reagent_consumable_id"/>
<result property="specificationAndModel" column="specification_and_model"/>
<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="standardValueOrPurity" column="standard_value_or_purity"/>
<result property="technicalParameter" column="technical_parameter"/>
<result property="totalQuantity" column="total_quantity"/>
<result property="species" column="species"/>
<result property="packagedCopies" column="packaged_copies"/>
<result property="minimumUnit" column="minimum_unit"/>
<result property="remark" column="remark"/>
<result property="storageCondition" column="storage_condition"/>
<result property="alias" column="alias"/>
<result property="englishName" column="english_name"/>
<result property="unitPrice" column="unit_price"/>
<result property="reagentConsumableName" column="reagent_consumable_name"/>
<result property="casNumber" column="cas_number"/>
<result property="code" column="code"/>
<result property="purityGrade" column="purity_grade"/>
<result property="roomNo" column="room_no"/>
</resultMap>
<select id="getReagentConsumableStashPage" resultType="digital.laboratory.platform.reagent.entity.ReagentConsumableStash">
SELECT * FROM reagent_consumable_stash
${ew.customSqlSegment}
</select>
</mapper>
Loading…
Cancel
Save