| | |
| | | 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; |
| | |
| | | |
| | | 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. |
| | |
| | | |
| | | @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)) { |
| | |
| | | if (StringUtils.isNotBlank(cas)) { |
| | | params.put("cas", "%" + cas + "%"); |
| | | } |
| | | if (StringUtils.isNotBlank(supplierId)) { |
| | | if (supplierId!=null) { |
| | | params.put("supplierId", supplierId); |
| | | } |
| | | if(type!=null){ |
| | |
| | | } |
| | | } |
| | | |
| | | 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); |
| | |
| | | * @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()); |
| | |
| | | * @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); |
| | |
| | | return sysReagentDao.favorList(params); |
| | | } |
| | | |
| | | @Override |
| | | 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); |
| | | 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, 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); |
| | | 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 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)) { |
| | |
| | | } |
| | | |
| | | |
| | | 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); |
| | |
| | | |
| | | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public SysReagent getSysReagent(String id) { |
| | | public SysReagent getSysReagent(Long id) { |
| | | try { |
| | | return this.sysReagentDao.getSysReagent(id); |
| | | } catch (DataAccessException e) { |
| | |
| | | @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) { |
| | |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public boolean updateSysReagent(SysReagent sysReagent) { |
| | | try { |
| | | sysReagent.setName(sysReagent.getName().trim()); |
| | | int row = this.sysReagentDao.updateSysReagent(sysReagent); |
| | | |
| | | if (row == 0) { |
| | |
| | | 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()); |
| | | } |
| | | |
| | |
| | | } 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++; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Map getReagentDetail(String id) { |
| | | public Map getReagentDetail(Long id) { |
| | | return sysReagentDao.getSysReagentDetail(id); |
| | | } |
| | | |
| | |
| | | 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++; |