From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: Tue, 28 Nov 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug
---
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java | 94 ++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 88 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
index 8b14efa..c94b1cc 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
@@ -11,6 +11,7 @@
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.dto.PersonUseDetail;
import com.nanometer.smartlab.entity.enumtype.ValidFlag;
+import com.nanometer.smartlab.util.ExcelUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Lazy;
@@ -101,14 +102,38 @@
}
@Transactional(propagation = Propagation.REQUIRED)
- public List<OpeReagentStatus> getOpeReagentStatusListForLab(String name, String articleNumber, Integer status,
+ public List<OpeReagentStatus> getOpeReagentStatusList22(String reagentId, String articleNumber, Integer status,
String reagentCode, String userId, Integer first, Integer pageSize) {
+ try {
+ Map<String, Object> params = new HashMap<String, Object>();
+
+ params.put("reagentId", reagentId);
+ params.put("articleNumber", articleNumber);
+ params.put("status", status);
+ addParamByUserId(userId, params);
+ if (StringUtils.isNotBlank(reagentCode)) {
+ params.put("reagentCode", "%" + reagentCode + "%");
+ }
+ params.put("first", first);
+ params.put("pageSize", pageSize);
+ return this.opeReagentStatusDao.getOpeReagentStatusList22(params);
+ } catch (DataAccessException e) {
+ logger.error(e.getMessage(), e);
+ throw new BusinessException(ExceptionEnumCode.DB_ERR,
+ MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
+ }
+ }
+
+ @Transactional(propagation = Propagation.REQUIRED)
+ public List<OpeReagentStatus> getOpeReagentStatusListForLab(String name, String articleNumber, Integer status,
+ String reagentCode, String userId,String labName, Integer first, Integer pageSize) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("name", "%" + name + "%");
params.put("articleNumber", articleNumber);
params.put("status", status);
+ params.put("labName", labName);
// addParamByUserId(userId, params);
if (StringUtils.isNotBlank(userId)) {
SysUser sysUser = sysUserService.getSysUser(userId);
@@ -136,7 +161,7 @@
@Transactional(propagation = Propagation.REQUIRED)
public int getOpeReagentStatusTotalCountForLab(String name, String articleNumber, Integer status, String reagentCode,
- String userId) {
+ String userId,String labName) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("name", "%" + name + "%");
@@ -158,6 +183,7 @@
params.put("reagentCode", "%" + reagentCode + "%");
}
params.put("status", status);
+ params.put("labName", labName);
return this.opeReagentStatusDao.getOpeReagentStatusTotalCountForLab(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -332,7 +358,8 @@
// 不是管理员时,加入userid
//if (sysUser.getSeeFlag().getKey() == SeeFlag.MANAGE.getKey()||sysUser.getSeeFlag().getKey() == SeeFlag.LEADING.getKey()) {
- if (sysUser.getSeeFlag().getKey() == SeeFlag.MANAGE.getKey()) {
+ if (sysUser.getSeeFlag().getKey() == SeeFlag.MANAGE.getKey()
+ && sysUser.getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) {
} else {
params.put("userId", userId);
@@ -501,7 +528,7 @@
}
@Override
- public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId) {
+ public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber) {
try {
for (String opeReagentStatusId : reagentCodes) {
OpeReagentStatus opeReagentStatus = this.getOpeReagentStatus(opeReagentStatusId);
@@ -534,6 +561,7 @@
opeUseFlow.setUserId(opeReagentStatus.getUserId());
opeUseFlow.setPlace(opeReagentStatus.getPlace());
opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
+ opeUseFlow.setReceiptNumber(receiptNumber);
Map<String, String> metaMap = new HashMap<>();
metaMap.put("groupId", "operate_status");
@@ -562,9 +590,12 @@
}
@Transactional(propagation = Propagation.REQUIRED)
- public boolean updateReagentStatus(OpeReagentStatus opeReagentStatus) {
+ public boolean updateReagentStatus(OpeReagentStatus opeReagentStatus,String receiptNumber) {
try {
-
+ if(StringUtils.isBlank(receiptNumber)){
+ throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST,
+ MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "领用单号为空"));
+ }
if (isAllowWarehouseUse(opeReagentStatus)) {
// 减少库存
OpeWarehouseReserve opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve(
@@ -585,6 +616,7 @@
opeUseFlow.setUserId(opeReagentStatus.getUserId());
opeUseFlow.setPlace(opeReagentStatus.getPlace());
opeUseFlow.setRemainder(opeReagentStatus.getRemainder());
+ opeUseFlow.setReceiptNumber(receiptNumber);
Map<String, String> metaMap = new HashMap<>();
metaMap.put("groupId", "operate_status");
@@ -1084,4 +1116,54 @@
}
+ /**
+ * @Description: 导出
+ * @date 2021/4/22 10:33
+ */
+ @Override
+ public List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, String userId,String labName) {
+
+ Map<String, Object> params = new HashMap<>();
+ params.put("name", name);
+ params.put("articleNumber", articleNumber);
+ params.put("status", status);
+ params.put("labName", labName);
+ if (StringUtils.isNotBlank(userId)) {
+ SysUser sysUser = sysUserService.getSysUser(userId);
+ BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId());
+ //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下)
+ if (!"系统管理员".equals(baseRole.getName())) {
+ if (StringUtils.isBlank(sysUser.getProject())) {
+ return null;
+ }
+ params.put("project", sysUser.getProject());
+ }
+ }
+ params.put("reagentCode", reagentCode);
+ return opeReagentStatusDao.selectExportList(params);
+ }
+
+ @Override
+ public void exportLabStock2Excel(List<Map> list) throws Exception {
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("houseName", "实验室名称");
+ map.put("containerCode", "临时存储库条码");
+ map.put("reagentName", "试剂名称");
+ map.put("reagentCode", "试剂条形码");
+ map.put("articleNumber", "批号");
+ map.put("cas", "cas");
+ map.put("productHome", "厂家");
+ map.put("supplierName", "供应商");
+ map.put("remainder", "残存量");
+ ExcelUtils.export2Excel(list,"实验室库存",map);
+ }
+
+ @Override
+ public OpeReagentStatus getStatus(String reagentId, String reagentCode) {
+
+
+ return opeReagentStatusDao.getStatus(reagentId,reagentCode);
+ }
+
+
}
--
Gitblit v1.9.2