From 3ef5a9d0aba195d77aa22591b55a9ce9e43372ca Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期四, 22 四月 2021 14:02:00 +0800
Subject: [PATCH] 实验室库存 新增查询条件:实验室名称

---
 src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java |  168 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 123 insertions(+), 45 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java
index f3c8dcd..9c299bf 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java
@@ -1,6 +1,7 @@
 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;
@@ -35,6 +36,8 @@
 
     @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) {
@@ -60,6 +63,101 @@
             throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
         }
     }
+
+    public List<SysReagent> getSysReagentListNew(String name, String cas, String 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("pageSize", pageSize);
+            params.put("productSn", productSn);
+            return this.sysReagentDao.getSysReagentListNew(params);
+        } catch (DataAccessException e) {
+            logger.error(e.getMessage(), e);
+            throw new BusinessException(ExceptionEnumCode.DB_ERR, MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
+        }
+    }
+
+    /**
+    * @Description: 收藏与未收藏  0未收藏  1收藏  统计个数
+    * @date 2020/12/1 17:04
+    */
+    @Override
+    public int favorCount(SysUser user, String name, String cas, String supplierId, String productSn, Integer favorFlag) {
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("user", user.getId());
+        params.put("favorFlag", favorFlag);
+        params.put("name", name);
+        params.put("cas", cas);
+        params.put("supplierId", supplierId);
+        params.put("productSn", productSn);
+        return sysReagentDao.favorCount(params);
+    }
+
+    /**
+    * @Description: 收藏与未收藏  0未收藏  1收藏  统计详情
+    * @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) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("user", user.getId());
+        params.put("favorFlag", favorFlag);
+        params.put("name", name);
+        params.put("cas", cas);
+        params.put("supplierId", supplierId);
+        params.put("productSn", productSn);
+        params.put("first", first);
+        params.put("pageSize", pageSize);
+        return sysReagentDao.favorList(params);
+    }
+
+    @Override
+    public int reagentCount(SysUser user, String name, String cas, String supplierId, String productSn) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("user", user.getId());
+        params.put("name", name);
+        params.put("cas", cas);
+        params.put("supplierId", supplierId);
+        params.put("productSn", productSn);
+        return sysReagentDao.reagentCount(params);
+    }
+
+    @Override
+    public List<SysReagent> reagentList(SysUser user, String name, String cas, String supplierId, String productSn, int first, int pageSize,int count) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("user", user.getId());
+        params.put("name", name);
+        params.put("cas", cas);
+        params.put("supplierId", supplierId);
+        params.put("productSn", productSn);
+        params.put("first", first);
+        params.put("pageSize", pageSize);
+        params.put("MaxSize", count);
+        return sysReagentDao.reagentList(params);
+    }
+
+    @Override
+    public String getReagentUnitByReagentId(String reagentId) {
+        return sysReagentDao.getReagentUnitByReagentId(reagentId);
+    }
+
+    @Override
+    public List<SysReagent> getReagent(String name, String cas, String factory, String specifications, String packing) {
+        Map<String, String> 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);
+    }
+
+
     @Transactional(propagation = Propagation.REQUIRED)
     public int getSysReagentTotalCount(String name, String cas, String supplierId,Integer type) {
         try {
@@ -81,55 +179,25 @@
         }
     }
 
-    @Transactional(propagation = Propagation.REQUIRED)
-    public List<SysReagent> getSysReagentList2(SysUser user,Integer favorFlag, String name, String cas, String productSn, String supplierId, Integer first, Integer pageSize) {
-        try {
-            Map<String, Object> params = new HashMap<String, Object>();
-            if (StringUtils.isNotBlank(name)) {
-                params.put("name", "%" + name + "%");
-            }
-            if (StringUtils.isNotBlank(cas)) {
-                params.put("cas", "%" + cas + "%");
-            }
-            if (StringUtils.isNotBlank(supplierId)) {
-                params.put("supplierId", supplierId);
-            }
-            if (StringUtils.isNotBlank(productSn)) {
-                params.put("productSn","%"+ productSn+"%");
-            }
 
-            params.put("user", user.getId());
-            params.put("favor", favorFlag);
-            params.put("first", first);
-            params.put("pageSize", pageSize);
-            return this.sysReagentDao.getSysReagentList(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 int getSysReagentTotalCount2(SysUser user,Integer favorFlag, String name, String cas,String productSn, String supplierId) {
+    public int getSysReagentTotalCountNew(String name, String cas, String supplierId,Integer type,String productSn) {
         try {
             Map<String, Object> params = new HashMap<String, Object>();
-            if (StringUtils.isNotBlank(name)) {
-                params.put("name", "%" + name + "%");
-            }
-            if (StringUtils.isNotBlank(cas)) {
-                params.put("cas", "%" + cas + "%");
-            }
-            if (StringUtils.isNotBlank(productSn)) {
-                params.put("productSn","%"+ productSn+"%");
-            }
-            params.put("user", user.getId());
-            params.put("favor", favorFlag);
+            params.put("name", name);
+            params.put("cas", cas);
+            params.put("type", type);
             params.put("supplierId", supplierId);
-            return this.sysReagentDao.getSysReagentTotalCount(params);
+            params.put("productSn", productSn);
+            return this.sysReagentDao.getSysReagentTotalCountNew(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 SysReagent getSysReagent(String id) {
@@ -192,6 +260,11 @@
 
             List<String> ids = new ArrayList<String>();
             for (SysReagent sysReagent : sysReagentList) {
+                //判断试剂在库中是否存在
+                int count = opeWarehouseReserveService.getOpeWarehouseReserveTotalCount(sysReagent.getId(), sysReagent.getSupplierId());
+                if (count > 0) {
+                    throw new Exception();
+                }
                 ids.add(sysReagent.getId());
             }
 
@@ -207,20 +280,25 @@
         } 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);
+                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());

--
Gitblit v1.9.2