From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: Mon, 01 Jul 2024 10:58:35 +0800
Subject: [PATCH] change
---
src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java | 141 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 112 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
index 2de7310..646f52e 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysWarehouseServiceImpl.java
@@ -1,9 +1,11 @@
package com.nanometer.smartlab.service;
import com.nanometer.smartlab.dao.BaseMetaDao;
+import com.nanometer.smartlab.dao.OpeReagentStatusDao;
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;
@@ -22,10 +24,8 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
/**
* Created by cmower on 17/11/20.
@@ -51,6 +51,10 @@
OpeUseFlowService opeUseFlowService;
@Resource
OpeWarehouseReserveService opeWarehouseReserveService;
+ @Resource
+ private SysLaboratoryService sysLaboratoryService;
+ @Resource
+ private OpeReagentStatusDao opeReagentStatusDao;
@Transactional(propagation = Propagation.REQUIRED)
public List<SysWarehouse> getSysWarehouseList(String type, String name, Integer first, Integer pageSize) {
@@ -88,7 +92,7 @@
}
@Transactional(propagation = Propagation.REQUIRED)
- public SysWarehouse getSysWarehouse(String id) {
+ public SysWarehouse getSysWarehouse(Long id) {
try {
return this.sysWarehouseDao.getSysWarehouse(id);
} catch (DataAccessException e) {
@@ -100,9 +104,9 @@
@Transactional(propagation = Propagation.REQUIRED)
public SysWarehouse insertSysWarehouse(SysWarehouse sysWarehouse) {
try {
- if (sysWarehouse.getId() == null) {
- sysWarehouse.setId(IDUtils.uuid());
- }
+// if (sysWarehouse.getId() == null) {
+// sysWarehouse.setId(IDUtils.uuid());
+// }
this.sysWarehouseDao.insertSysWarehouse(sysWarehouse);
return sysWarehouse;
} catch (DuplicateKeyException ex) {
@@ -145,7 +149,7 @@
return false;
}
- List<String> ids = new ArrayList<String>();
+ List<Long> ids = new ArrayList<Long>();
for (SysWarehouse sysWarehouse : sysWarehouseList) {
ids.add(sysWarehouse.getId());
}
@@ -167,9 +171,9 @@
public List<SysWarehouse> getAllSysWarehouseList() {
return this.sysWarehouseDao.getAllSysWarehouseList();
}
-
+
@Transactional(propagation = Propagation.REQUIRED)
- public boolean isSysWarehouseExist(String barCode, String editId) {
+ public boolean isSysWarehouseExist(String barCode, Long editId) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("barCode", barCode);
@@ -189,7 +193,7 @@
}
@Override
- @Transactional
+ @Transactional(propagation = Propagation.REQUIRED)
public void putInWarehouse(InWarehouseInfoDto inWarehouseInfo) throws Exception {
List<String> codes = inWarehouseInfo.getReagentCode();
if (codes !=null && codes.size()>0){
@@ -223,6 +227,21 @@
String reagentName = dangerousEncodes.get(0).getReagentName();
String cas = dangerousEncodes.get(0).getCas();
+ //危险性质 reagent_character
+ String dangerousInfo = dangerousEncodes.get(0).getMemo();
+ BaseMeta meta = baseMetaService.getBaseMeta("reagent_character", null, dangerousInfo);
+ BaseMeta baseMeta = new BaseMeta();
+ if (meta == null){
+ // baseMeta.setId(IDUtils.uuid());
+ baseMeta.setGroupCode("reagent_character");
+ baseMeta.setValidFlag(ValidFlag.VALID);
+ baseMeta.setMetaValue(dangerousInfo);
+ baseMeta.setMetaKey(dangerousInfo);
+ baseMetaService.insertBaseMeta(baseMeta);
+ }else{
+ baseMeta = meta;
+ }
+
//查找是否存在试剂
List<SysReagent> reagent = sysReagentService
.getReagent(reagentName, cas, factory.getId(), specifications.getId(), packing.getId());
@@ -230,32 +249,34 @@
OpeReagentStatus ors = new OpeReagentStatus();
if (reagent != null &&reagent.size()>0){
//存在试剂
- String reagentId = reagent.get(0).getId();
+ Long reagentId = reagent.get(0).getId();
ors.setReagentId(reagentId);
}else{
//试剂不存在
SysReagent sr = new SysReagent();
- sr.setId(IDUtils.uuid());
+ // sr.setId(IDUtils.uuid());
sr.setCas(cas);
sr.setName(reagentName);
- sr.setProductHome(factory.getId());
- sr.setReagentFormat(specifications.getId());
- sr.setReagentUnit(packing.getId());
+ // sr.setProductHome(factory.getId());
+// sr.setReagentFormat(specifications.getId());
+// sr.setReagentUnit(packing.getId());
+// //危险性质
+// sr.setReagentCharacter(baseMeta.getId());
//设备生成试剂类型 为3
sr.setType(3);
sr.setDangerousFlag(DangerousFlag.NORMAL);
SysReagent sysReagent = sysReagentService.insertSysReagent(sr);
- String reagentId = sysReagent.getId();
+ Long reagentId = sysReagent.getId();
ors.setReagentId(reagentId);
}
- ors.setId(IDUtils.uuid());
+ // ors.setId(IDUtils.uuid());
//入仓库
- ors.setStatus(ArrivalStatus.WAREHOUSE);
+ ors.setStatus(ArrivalStatus.WAREHOUSE.getKey());
//批号
ors.setArticleNumber(inWarehouseInfo.getArticleNumber());
- ors.setValidFlag(ValidFlag.VALID);
+ ors.setValidFlag(ValidFlag.VALID.getKey());
ors.setContainerId(inWarehouseInfo.getContainerId());
ors.setHouseId(inWarehouseInfo.getWarehouseId());
ors.setUserId(inWarehouseInfo.getUser());
@@ -265,18 +286,14 @@
//更新试剂流向
OpeUseFlow opeUseFlow = new OpeUseFlow();
//入仓库
- opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE);
+ opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE.getKey());
opeUseFlow.setContainerId(inWarehouseInfo.getContainerId());
opeUseFlow.setHouseId(inWarehouseInfo.getWarehouseId());
- opeUseFlow.setStoreType(StoreType.DIRECTSTORE);
+ opeUseFlow.setStoreType(StoreType.DIRECTSTORE.getKey());
opeUseFlow.setReagentCode(code);
//持有者
opeUseFlow.setUserId(inWarehouseInfo.getUser());
- Map<String, String> metaMap = new HashMap<>();
- metaMap.put("groupId", "operate_status");
- metaMap.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEIN.getKey()));
- List<BaseMeta> baseMetaList = baseMetaDao.getBaseMetaList(metaMap);
- opeUseFlow.setOperateState(baseMetaList.get(0).getId());
+ opeUseFlow.setOperateState(OperateStatus.WAREHOUSEIN.getKey());
opeUseFlowService.insertOpeUseFlow(opeUseFlow);
//更新仓库库存
@@ -289,10 +306,11 @@
opeWarehouseReserve.setArticleNumber(inWarehouseInfo.getArticleNumber());
opeWarehouseReserve.setReserve(0);
opeWarehouseReserve.setWarehouseId(inWarehouseInfo.getWarehouseId());
+ opeWarehouseReserve.setUserId(1L);
}
//库存加1
opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() + 1);
- if (StringUtils.isBlank(opeWarehouseReserve.getId())) {
+ if (opeWarehouseReserve.getId()!=null) {
this.opeWarehouseReserveService.insertOpeWarehouseReserve(opeWarehouseReserve);
} else {
this.opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
@@ -302,4 +320,69 @@
}
}
+
+ @Override
+ @Transactional(propagation = Propagation.REQUIRED)
+ public void reagentReceiving(ReagentReceivingDto reagentReceiving) {
+
+
+
+ String number = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
+ String receiptNum = "BS" + number;
+
+ 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());
+
+ if (opeReagentStatusService.isAllowWarehouseUse(ors)) {
+ // 减少库存
+ OpeWarehouseReserve opeWarehouseReserve = opeWarehouseReserveService.getOpeWarehouseReserve(
+ ors.getReagent().getId(), ors.getArticleNumber());
+ opeWarehouseReserve.setReserve(opeWarehouseReserve.getReserve() - 1);
+ opeWarehouseReserveService.updateOpeWarehouseReserve(opeWarehouseReserve);
+ }
+ ors.setStatus(ArrivalStatus.NOREGISTER.getKey());
+ opeReagentStatusDao.updateOpeReagentStatusDao(ors);
+ OpeUseFlow opeUseFlow = new OpeUseFlow();
+ opeUseFlow.setReagentCode(ors.getReagentCode());
+ opeUseFlow.setStatus(ors.getStatus());
+ opeUseFlow.setHouseId(ors.getHouseId());
+ opeUseFlow.setContainerId(ors.getContainerId());
+ opeUseFlow.setUserId(ors.getUserId());
+ opeUseFlow.setPlace(ors.getPlace());
+ opeUseFlow.setRemainder(ors.getRemainder());
+ //新增 领用单号
+ opeUseFlow.setReceiptNumber(receiptNum);
+
+
+ opeUseFlow.setOperateState(OperateStatus.WAREHOUSEOUT.getKey());
+ this.opeUseFlowService.insertOpeUseFlow(opeUseFlow);
+
+ });
+
+ }
+
+ @Override
+ @Transactional
+ public void updateSysWarehouse2(SysWarehouse sysWarehouse, SysLaboratory sysLaboratory) {
+ //1.0更新自己
+ this.updateSysWarehouse(sysWarehouse);
+ //2.更新实验室
+ sysLaboratory.setInfoCode(sysWarehouse.getInfoCode());
+ sysLaboratory.setBarCode(sysWarehouse.getBarCode());
+ sysLaboratory.setLocation1(sysWarehouse.getLocation1());
+ sysLaboratory.setLocation2(sysWarehouse.getLocation2());
+ sysLaboratory.setDepartment(sysWarehouse.getDepartment());
+ sysLaboratoryService.updateSysLaboratory(sysLaboratory);
+ }
+
+ @Override
+ public List<Map> getAllWarehouse() {
+ return sysWarehouseDao.selectAllWarehouse();
+ }
}
--
Gitblit v1.9.2