From fcdb56cf78b63f5b1455bbfab0c2bd7934b0aca5 Mon Sep 17 00:00:00 2001 From: 李宇 <986321569@qq.com> Date: 星期三, 07 四月 2021 18:18:14 +0800 Subject: [PATCH] 去除多余事务 --- src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java index 1c39866..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) { @@ -61,7 +64,7 @@ } } - public List<SysReagent> getSysReagentListNew(String name, String cas, String supplierId,Integer type, Integer first, Integer pageSize) { + 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); @@ -70,6 +73,7 @@ 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); @@ -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, 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); @@ -133,8 +137,24 @@ 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) { + 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); } @@ -160,13 +180,14 @@ } - public int getSysReagentTotalCountNew(String name, String cas, String supplierId,Integer type) { + public int getSysReagentTotalCountNew(String name, String cas, String 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); @@ -239,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()); } @@ -254,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