From c9ed223546b87fd373d8acf8948d9fdbf843e291 Mon Sep 17 00:00:00 2001 From: gdg <764716047@qq.com> Date: 星期一, 28 十二月 2020 17:28:03 +0800 Subject: [PATCH] 新增接口:从仓库领用 --- src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java | 18 ++++++ src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java | 4 + src/main/java/com/nanometer/smartlab/entity/dto/ReagentReceivingDto.java | 48 ++++++++++++++++ src/main/java/com/nanometer/smartlab/api/ApiAction.java | 61 ++++++++++++++++++++ 4 files changed, 131 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/api/ApiAction.java b/src/main/java/com/nanometer/smartlab/api/ApiAction.java index 53318c8..b604f42 100644 --- a/src/main/java/com/nanometer/smartlab/api/ApiAction.java +++ b/src/main/java/com/nanometer/smartlab/api/ApiAction.java @@ -7,12 +7,15 @@ import com.google.common.collect.Maps; import com.nanometer.smartlab.controller.BaseController; import com.nanometer.smartlab.controller.MenuController; +import com.nanometer.smartlab.dao.OpeReagentStatusDao; import com.nanometer.smartlab.dao.SysLaboratoryContainerDao; import com.nanometer.smartlab.dao.SysWarehouseContainerDao; import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto; +import com.nanometer.smartlab.entity.dto.ReagentReceivingDto; import com.nanometer.smartlab.entity.dto.SysWarehouseDto; import com.nanometer.smartlab.entity.enumtype.ApiStatus; +import com.nanometer.smartlab.entity.enumtype.ArrivalStatus; import com.nanometer.smartlab.entity.enumtype.ReplaceDictType; import com.nanometer.smartlab.entity.enumtype.SeeFlag; import com.nanometer.smartlab.exception.ApiException; @@ -1275,6 +1278,30 @@ try { if (inWarehouseInfo.getReagentCode() != null && inWarehouseInfo.getReagentCode().size() > 0) { + + for (int i = 0; i < inWarehouseInfo.getReagentCode().size(); i++) { + String code = inWarehouseInfo.getReagentCode().get(i); + DangerousEncode dangerousEncode = new DangerousEncode(); + //5-8位 + String reagentCode = code.substring(4, 8); + //数据库存储的前缀00空着 + dangerousEncode.setReagentCode("00"+reagentCode); + List<DangerousEncode> dangerousEncodes = + dangerousEncodeService.selectAll(dangerousEncode,null,null); + //1.编码存在校验 + if (dangerousEncodes.size() <1){ + return ResponseModel.getErrInstance("该试剂危化品编码不存在"); + } + + //2.重复入库校验 无论任何状态 + OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(code); + if (ors != null) { + return ResponseModel.getErrInstance("该试剂危化品编码已存在"); + } + + } + + //3.入库 sysWarehouseService.putInWarehouse(inWarehouseInfo); return ResponseModel.getOkInstence("入库成功"); } else { @@ -1289,4 +1316,38 @@ } + /** + * @Description: 试剂领用到实验室 + * @date 2020/12/24 14:19 + */ + @ResponseBody + @RequestMapping("reagentReceiving") + public Object reagentReceiving(@RequestBody ReagentReceivingDto reagentReceiving) { + try { + if (reagentReceiving.getReagentCode() != null && reagentReceiving.getReagentCode().size() > 0) { + + //1.校验仓库是否有该试剂 + for (int i = 0; i < reagentReceiving.getReagentCode().size(); i++) { + String reagentCode = reagentReceiving.getReagentCode().get(i); + //去试剂状态查找 是否有此试剂条码 + OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(reagentCode); + if (ors == null || ors.getStatus() != ArrivalStatus.WAREHOUSE){ + return ResponseModel.getErrInstance("仓库无此试剂"); + } + } + //2.领用 + sysWarehouseService.reagentReceiving(reagentReceiving); + return ResponseModel.getOkInstence("领用成功"); + } else { + return ResponseModel.getErrInstance("无效试剂条码"); + } + } catch (Exception e) { + e.printStackTrace(); + logger.info(e); + return ResponseModel.getErrInstance("系统出错"); + } + + } + + } diff --git a/src/main/java/com/nanometer/smartlab/entity/dto/ReagentReceivingDto.java b/src/main/java/com/nanometer/smartlab/entity/dto/ReagentReceivingDto.java new file mode 100644 index 0000000..1dcd3c6 --- /dev/null +++ b/src/main/java/com/nanometer/smartlab/entity/dto/ReagentReceivingDto.java @@ -0,0 +1,48 @@ +package com.nanometer.smartlab.entity.dto; + + +import java.util.*; +public class ReagentReceivingDto { + + //试剂编码 + private List<String> reagentCode; + //申领人id + private String applyUserId; + //实验室id + private String labId; + //实验室下货柜id + private String labContainerId; + + + public List<String> getReagentCode() { + return reagentCode; + } + + public void setReagentCode(List<String> reagentCode) { + this.reagentCode = reagentCode; + } + + public String getApplyUserId() { + return applyUserId; + } + + public void setApplyUserId(String applyUserId) { + this.applyUserId = applyUserId; + } + + public String getLabId() { + return labId; + } + + public void setLabId(String labId) { + this.labId = labId; + } + + public String getLabContainerId() { + return labContainerId; + } + + public void setLabContainerId(String labContainerId) { + this.labContainerId = labContainerId; + } +} diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java index 5ad2982..92550d7 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseService.java @@ -2,6 +2,7 @@ import com.nanometer.smartlab.entity.SysWarehouse; import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto; +import com.nanometer.smartlab.entity.dto.ReagentReceivingDto; import com.nanometer.smartlab.entity.dto.SysWarehouseDto; import java.util.List; @@ -23,4 +24,7 @@ List<SysWarehouseDto> getWarehouseList(); void putInWarehouse(InWarehouseInfoDto inWarehouseInfo) throws Exception; + + void reagentReceiving(ReagentReceivingDto reagentReceiving); + } diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java index 2de7310..0ee0932 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java @@ -4,6 +4,7 @@ import com.nanometer.smartlab.dao.SysWarehouseDao; import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.dto.InWarehouseInfoDto; +import com.nanometer.smartlab.entity.dto.ReagentReceivingDto; import com.nanometer.smartlab.entity.dto.SysWarehouseDto; import com.nanometer.smartlab.entity.enumtype.*; import com.nanometer.smartlab.exception.AlarmCode; @@ -302,4 +303,21 @@ } } + + @Override + @Transactional + public void reagentReceiving(ReagentReceivingDto reagentReceiving) { + + reagentReceiving.getReagentCode().forEach(code->{ + // + OpeReagentStatus ors = opeReagentStatusService.getOpeReagentStatusByReagentCode(code); + //1.更新试剂状态 在仓库-》领用 + ors.setStatus(ArrivalStatus.PERSONAL); + ors.setContainerId(reagentReceiving.getLabContainerId()); + ors.setHouseId(reagentReceiving.getLabId()); + ors.setUserId(reagentReceiving.getApplyUserId()); + opeReagentStatusService.updateReagentStatus(ors); + }); + + } } -- Gitblit v1.9.2