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/SysReagentServiceImpl.java | 212 ++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 178 insertions(+), 34 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java
index d615fcc..298406f 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java
@@ -1,12 +1,15 @@
package com.nanometer.smartlab.service;
import com.nanometer.smartlab.dao.SysReagentDao;
+import com.nanometer.smartlab.entity.OpeWarehouseReserve;
import com.nanometer.smartlab.entity.SysReagent;
import com.nanometer.smartlab.entity.SysUser;
import com.nanometer.smartlab.exception.AlarmCode;
import com.nanometer.smartlab.exception.AlarmException;
import com.nanometer.smartlab.exception.BusinessException;
import com.nanometer.smartlab.exception.ExceptionEnumCode;
+import com.nanometer.smartlab.model.CommonPage;
+import com.nanometer.smartlab.util.ExcelUtils;
import com.nanometer.smartlab.util.IDUtils;
import com.nanometer.smartlab.util.MessageUtil;
import org.apache.commons.lang.StringUtils;
@@ -20,10 +23,8 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
/**
* Created by johnny on 17/11/29.
@@ -35,9 +36,11 @@
@Resource(name = "sysReagentDao")
SysReagentDao sysReagentDao;
+ @Resource
+ OpeWarehouseReserveService opeWarehouseReserveService;
@Transactional(propagation = Propagation.REQUIRED)
- public List<SysReagent> getSysReagentList(String name, String cas, String supplierId,Integer type, Integer first, Integer pageSize) {
+ public List<SysReagent> getSysReagentList(String name, String cas, Long supplierId,Integer type, Integer first, Integer pageSize) {
try {
Map<String, Object> params = new HashMap<String, Object>();
if (StringUtils.isNotBlank(name)) {
@@ -46,7 +49,7 @@
if (StringUtils.isNotBlank(cas)) {
params.put("cas", "%" + cas + "%");
}
- if (StringUtils.isNotBlank(supplierId)) {
+ if (supplierId!=null) {
params.put("supplierId", supplierId);
}
if(type!=null){
@@ -61,15 +64,16 @@
}
}
- public List<SysReagent> getSysReagentListNew(String name, String cas, String supplierId,Integer type, Integer first, Integer pageSize) {
+ public List<SysReagent> getSysReagentListNew(String name, String cas, Long supplierId,Integer type, Integer first, Integer pageSize,String productSn) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("name", name);
params.put("cas", cas);
params.put("supplierId", supplierId);
- params.put("type", type);
params.put("first", first);
+ params.put("type", type);
params.put("pageSize", pageSize);
+ params.put("productSn", productSn);
return this.sysReagentDao.getSysReagentListNew(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -82,7 +86,7 @@
* @date 2020/12/1 17:04
*/
@Override
- public int favorCount(SysUser user, String name, String cas, String supplierId, String productSn, Integer favorFlag) {
+ public int favorCount(SysUser user, String name, String cas, Long supplierId, String productSn, Integer favorFlag) {
Map<String, Object> params = new HashMap<>();
params.put("user", user.getId());
@@ -99,7 +103,7 @@
* @date 2020/12/1 17:04
*/
@Override
- public List<SysReagent> favorList(SysUser user, String name, String cas, String supplierId, String productSn, Integer favorFlag, Integer first, Integer pageSize) {
+ public List<SysReagent> favorList(SysUser user, String name, String cas, Long supplierId, String productSn, Integer favorFlag, Integer first, Integer pageSize) {
Map<String, Object> params = new HashMap<>();
params.put("user", user.getId());
params.put("favorFlag", favorFlag);
@@ -113,7 +117,7 @@
}
@Override
- public int reagentCount(SysUser user, String name, String cas, String supplierId, String productSn) {
+ public int reagentCount(SysUser user, String name, String cas, Long supplierId, String productSn) {
Map<String, Object> params = new HashMap<>();
params.put("user", user.getId());
params.put("name", name);
@@ -124,7 +128,7 @@
}
@Override
- public List<SysReagent> reagentList(SysUser user, String name, String cas, String supplierId, String productSn, int first, int pageSize) {
+ public List<SysReagent> reagentList(SysUser user, String name, String cas, Long supplierId, String productSn, int first, int pageSize,int count) {
Map<String, Object> params = new HashMap<>();
params.put("user", user.getId());
params.put("name", name);
@@ -133,18 +137,146 @@
params.put("productSn", productSn);
params.put("first", first);
params.put("pageSize", pageSize);
- params.put("MaxSize", first+pageSize);
+ params.put("MaxSize", count);
return sysReagentDao.reagentList(params);
}
@Override
- public String getReagentUnitByReagentId(String reagentId) {
+ public CommonPage<SysReagent> reagentList(Integer pageNum,Integer pageSize,String name,String cas){
+ if(pageNum==null||pageNum<1){
+ pageNum=1;
+ }
+ if(pageSize==null||pageSize<1){
+ pageSize=10;
+ }
+ if(pageSize>50){
+ pageSize=50;
+ }
+ Map<String, Object> params = new HashMap<>();
+
+ params.put("name",name);
+ params.put("cas",cas);
+ params.put("first", (pageNum-1)*pageSize);
+ params.put("pageSize", pageSize);
+ CommonPage commonPage=new CommonPage();
+ commonPage.setPageNum(pageNum);
+ commonPage.setPageSize(pageSize);
+ Long total=new Long(sysReagentDao.reagentSimpleInfoCount(params));
+ commonPage.setTotal(total);
+ commonPage.setTotalPage(CommonPage.getTotalPage(total,pageSize));
+ List<SysReagent> sysReagents=sysReagentDao.reagentSimpleInfoList(params);
+ commonPage.setList(sysReagents);
+ return commonPage;
+ }
+
+ @Override
+ public String getReagentUnitByReagentId(Long reagentId) {
return sysReagentDao.getReagentUnitByReagentId(reagentId);
+ }
+
+ @Override
+ public List<SysReagent> getReagent(String name, String cas, Long factory, Long specifications, Long packing) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("name", name);
+ params.put("cas", cas);
+ params.put("factory", factory);
+ params.put("specifications", specifications);
+ params.put("packing", packing);
+ return sysReagentDao.getReagent(params);
+ }
+
+ @Override
+ public List<SysReagent> selectReagentSafetyNum() {
+
+ return sysReagentDao.selectReagentSafetyNum();
+ }
+
+ @Override
+ public void updateSafetyNum(SysReagent sysReagent) {
+ sysReagentDao.updateSafetyNum(sysReagent.getId(), sysReagent.getSafetynum());
+ }
+
+
+ /**
+ * @Description: 根据detail的信息获取试剂的id
+ * @date 2021/6/21 9:45
+ */
+ @Override
+ public SysReagent getReagentByDetail(Map<String, Object> detail) {
+ List<SysReagent> reagentIds = sysReagentDao.countReagentByDetail(detail);
+ if (reagentIds.size() != 1) {
+ return null;
+ }
+ return reagentIds.get(0);
+ }
+
+ @Override
+ public SysReagent getRowData(Long rowKey) {
+ return sysReagentDao.getRowData(rowKey);
+ }
+
+ @Override
+ public SysReagent getSysReagentListNewRowData(Long rowKey) {
+ return sysReagentDao.getSysReagentListNewRowData(rowKey);
+ }
+
+ @Override
+ public boolean export2Excel(List<Map> list, Integer type) throws Exception {
+ Map<String,String> map = new LinkedHashMap<>();
+ if (type==null||type == 0){
+ map.put("kind", "种类");
+ map.put("name", "名称");
+ map.put("product_sn", "产品编号");
+ map.put("cas", "CAS");
+ map.put("reagent_type", "试剂类型");
+ map.put("reagent_character", "危险性质");
+ map.put("supplierName", "供应商");
+ map.put("product_home", "厂家");
+ map.put("reagent_format", "规格");
+ map.put("reagent_unit", "包装");
+ map.put("price", "含税售价");
+ map.put("per_box", "每箱数量");
+ ExcelUtils.export2Excel(list,"耗材列表",map);
+ }else {
+ map.put("kind", "种类");
+ map.put("name", "试剂名称");
+ map.put("control_products", "管制品");
+ map.put("product_sn", "产品编号");
+ map.put("cas", "CAS");
+ map.put("reagent_type", "试剂类型");
+ map.put("reagent_character", "危险性质");
+ map.put("supplierName", "供应商");
+ map.put("product_home", "厂家");
+ map.put("reagent_format", "规格");
+ map.put("reagent_unit", "包装");
+ map.put("price", "含税售价");
+// map.put("originprice", "原始售价");
+ map.put("per_box", "每箱数量");
+ map.put("safetynum", "安全库存");
+ ExcelUtils.export2Excel(list,"试剂列表",map);
+ }
+ return true;
+ }
+
+ @Override
+ public List<Map> selectAll(String name, String cas, Long supplierId, Integer type, String productSn) {
+ Map<String, Object> params = new HashMap<String, Object>();
+ params.put("name", name);
+ params.put("cas", cas);
+ params.put("supplierId", supplierId);
+ params.put("type", type);
+ params.put("productSn", productSn);
+ return sysReagentDao.selectAll(params);
+ }
+
+ @Override
+ public void updateSysReagentPrice(Long reagentId, BigDecimal applyPrice) {
+ sysReagentDao.updateSysReagentPriceById(reagentId, applyPrice);
}
@Transactional(propagation = Propagation.REQUIRED)
- public int getSysReagentTotalCount(String name, String cas, String supplierId,Integer type) {
+ public int getSysReagentTotalCount(String name, String cas, Long supplierId,Integer type) {
try {
Map<String, Object> params = new HashMap<String, Object>();
if (StringUtils.isNotBlank(name)) {
@@ -165,13 +297,14 @@
}
- public int getSysReagentTotalCountNew(String name, String cas, String supplierId,Integer type) {
+ public int getSysReagentTotalCountNew(String name, String cas, Long supplierId,Integer type,String productSn) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("name", name);
params.put("cas", cas);
params.put("type", type);
params.put("supplierId", supplierId);
+ params.put("productSn", productSn);
return this.sysReagentDao.getSysReagentTotalCountNew(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -184,7 +317,7 @@
@Transactional(propagation = Propagation.REQUIRED)
- public SysReagent getSysReagent(String id) {
+ public SysReagent getSysReagent(Long id) {
try {
return this.sysReagentDao.getSysReagent(id);
} catch (DataAccessException e) {
@@ -196,10 +329,10 @@
@Transactional(propagation = Propagation.REQUIRED)
public SysReagent insertSysReagent(SysReagent sysReagent) {
try {
- if (sysReagent.getId() == null) {
- sysReagent.setId(IDUtils.uuid());
- }
-
+// if (sysReagent.getId() == null) {
+// sysReagent.setId(IDUtils.uuid());
+// }
+ sysReagent.setName(sysReagent.getName().trim());
this.sysReagentDao.insertSysReagent(sysReagent);
return sysReagent;
} catch (DuplicateKeyException ex) {
@@ -217,6 +350,7 @@
@Transactional(propagation = Propagation.REQUIRED)
public boolean updateSysReagent(SysReagent sysReagent) {
try {
+ sysReagent.setName(sysReagent.getName().trim());
int row = this.sysReagentDao.updateSysReagent(sysReagent);
if (row == 0) {
@@ -242,8 +376,13 @@
return false;
}
- List<String> ids = new ArrayList<String>();
+ List<Long> ids = new ArrayList<Long>();
for (SysReagent sysReagent : sysReagentList) {
+ //判断试剂在库中是否存在
+ int count = opeWarehouseReserveService.getOpeWarehouseReserveTotalCount(sysReagent.getId(), sysReagent.getSupplierId());
+ if (count > 0) {
+ throw new Exception();
+ }
ids.add(sysReagent.getId());
}
@@ -259,24 +398,29 @@
} catch (DataAccessException ex) {
logger.error(ex.getMessage(), ex);
throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new BusinessException(ExceptionEnumCode.SYS_ERR,"试剂在库中已经有了不能删除");
}
}
@Override
+ @Transactional
public int insertSysReagentList(List<SysReagent> sysReagentList) {
try {
int i = 0;
for (SysReagent sysReagent:sysReagentList
) {
- SysReagent sysReagentTmpl = new SysReagent();
- sysReagentTmpl = sysReagentDao.getSysReagentByCas(sysReagent);
- if(sysReagentTmpl!=null){
- sysReagent.setId(sysReagentTmpl.getId());
- this.sysReagentDao.updateSysReagentForExport(sysReagent);
- }else{
- if (sysReagent.getId() == null) {
- sysReagent.setId(IDUtils.uuid());
+ List<SysReagent> sysReagentTmpl = sysReagentDao.getSysReagentByCas(sysReagent);
+ if(sysReagentTmpl.size()>0){
+ for (SysReagent sr : sysReagentTmpl) {
+ sysReagent.setId(sr.getId());
+ this.sysReagentDao.updateSysReagentForExport(sysReagent);
}
+ }else{
+// if (sysReagent.getId() == null) {
+// sysReagent.setId(IDUtils.uuid());
+// }
this.sysReagentDao.insertSysReagent(sysReagent);
}
i++;
@@ -302,7 +446,7 @@
}
@Override
- public Map getReagentDetail(String id) {
+ public Map getReagentDetail(Long id) {
return sysReagentDao.getSysReagentDetail(id);
}
@@ -318,9 +462,9 @@
sysReagent.setId(sysReagentTmpl.getId());
this.sysReagentDao.updateSysReagentForExport(sysReagent);
}else{
- if (sysReagent.getId() == null) {
- sysReagent.setId(IDUtils.uuid());
- }
+// if (sysReagent.getId() == null) {
+// sysReagent.setId(IDUtils.uuid());
+// }
this.sysReagentDao.insertSysReagent(sysReagent);
}
i++;
--
Gitblit v1.9.2