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