From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/service/SysReagentServiceImpl.java | 215 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 182 insertions(+), 33 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..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,13 +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 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)) { @@ -160,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); @@ -179,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) { @@ -191,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) { @@ -212,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) { @@ -237,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()); } @@ -254,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++; @@ -297,7 +446,7 @@ } @Override - public Map getReagentDetail(String id) { + public Map getReagentDetail(Long id) { return sysReagentDao.getSysReagentDetail(id); } @@ -313,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