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/OpeUseFlowServiceImpl.java | 456 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 363 insertions(+), 93 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java index d14da94..2b01f35 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java @@ -8,13 +8,15 @@ import javax.annotation.Resource; -import com.nanometer.smartlab.dao.BaseMetaDao; -import com.nanometer.smartlab.dao.SysLaboratoryContainerDao; -import com.nanometer.smartlab.dao.SysWarehouseContainerDao; +import com.hazelcast.core.IFunction; +import com.nanometer.smartlab.dao.*; import com.nanometer.smartlab.entity.*; +import com.nanometer.smartlab.entity.dto.OpeUseFlowQueryDto; import com.nanometer.smartlab.entity.dto.PersonUseDetail; import com.nanometer.smartlab.entity.enumtype.OperateStatus; +import com.nanometer.smartlab.model.CommonPage; import com.nanometer.smartlab.util.Constants; +import com.nanometer.smartlab.util.ExcelUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.log4j.Logger; @@ -25,7 +27,6 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import com.nanometer.smartlab.dao.OpeUseFlowDao; import com.nanometer.smartlab.entity.enumtype.ArrivalStatus; import com.nanometer.smartlab.entity.enumtype.SeeFlag; import com.nanometer.smartlab.exception.AlarmCode; @@ -56,24 +57,16 @@ @Resource private OpeReagentStatusService opeReagentStatusService; @Resource - private OpeUseFlowService opeUseFlowService; - @Resource private SysReagentService sysReagentService; @Resource private BaseMetaDao baseMetaDao; + @Resource + private OpeReagentStatusDao opeReagentStatusDao; @Transactional(propagation = Propagation.REQUIRED) public OpeUseFlow insertOpeUseFlow(OpeUseFlow opeUseFlow) { try { - if (opeUseFlow.getId() == null) { - opeUseFlow.setId(IDUtils.uuid()); - } - - if(opeUseFlow.getCreateTime()==null){ - opeUseFlow.setCreateTime(new Timestamp(System.currentTimeMillis())); - } - this.opeUseFlowDao.insertOpeUseFlow(opeUseFlow); return opeUseFlow; } catch (DuplicateKeyException ex) { @@ -90,8 +83,26 @@ } } + @Override + public int batchInsertOpeUseFlow(List<OpeUseFlow> opeUseFlowList) { + try { + return this.opeUseFlowDao.batchInsertOpeUseFlow(opeUseFlowList); + } catch (DuplicateKeyException ex) { + logger.warn(ex.getMessage(), ex); + throw new AlarmException(AlarmCode.DATA_DUPLICATE, + MessageUtil.getMessage(AlarmCode.DATA_DUPLICATE.getCode())); + } catch (DataIntegrityViolationException ex) { + logger.warn(ex.getMessage(), ex); + throw new AlarmException(AlarmCode.DATA_CONFICT, MessageUtil.getMessage(AlarmCode.DATA_CONFICT.getCode())); + } catch (DataAccessException ex) { + logger.error(ex.getMessage(), ex); + throw new BusinessException(ExceptionEnumCode.DB_ERR, + MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), ex); + } + } + @Transactional(propagation = Propagation.REQUIRED) - public List<OpeUseFlow> getOpeUseFlowList(String reagentId, String reagentCode, Integer status, String userId, + public List<OpeUseFlow> getOpeUseFlowList(Long reagentId, String reagentCode, Integer status, Long userId, Integer first, Integer pageSize) { try { Map<String, Object> params = new HashMap<String, Object>(); @@ -115,7 +126,7 @@ } @Transactional(propagation = Propagation.REQUIRED) - public int getOpeUseFlowTotalCount(String reagentId, String reagentCode, Integer status, String userId) { + public int getOpeUseFlowTotalCount(Long reagentId, String reagentCode, Integer status, Long userId) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentId", reagentId); @@ -136,8 +147,8 @@ } @Transactional(propagation = Propagation.REQUIRED) - public List<OpeUseFlow> getOpeUseFlowListByName(String houseName,String reagentId, String reagentCode,String containerCode, Integer status, String userId, - Date startDate,Date endDate,Integer first, Integer pageSize) { + public List<OpeUseFlow> getOpeUseFlowListByName(String houseName,Long reagentId, String reagentCode,String containerCode, Integer status, Long userId, + Date startDate,Date endDate,Integer first, Integer pageSize,Integer operatestate) { try { Map<String, Object> params = new HashMap<String, Object>(); @@ -176,6 +187,7 @@ params.put("status", status); params.put("houseName", houseName); + params.put("operatestate", operatestate); params.put("containerCode", containerCode); addParamByUserId(userId, params); @@ -189,8 +201,57 @@ } } + public CommonPage<OpeUseFlow> getOpeUseFlowSimpleInfoList(Integer pageNum, Integer pageSize, OpeUseFlowQueryDto opeUseFlowQueryDto) { + CommonPage commonPage=new CommonPage(); + Map<String, Object> params = new HashMap<String, Object>(); + if(pageNum==null||pageNum<1){ + pageNum=1; + } + if(pageSize==null||pageSize<1){ + pageSize=10; + } + if(pageSize>50){ + pageSize=50;//每页最多查询50条记录 + } + commonPage.setPageNum(pageNum); + commonPage.setPageSize(pageSize); + + params.put("reagentName", opeUseFlowQueryDto.getReagentName()); + if (StringUtils.isNotBlank(opeUseFlowQueryDto.getReagentCode())) { + params.put("reagentCode", "%" + opeUseFlowQueryDto.getReagentCode() + "%"); + } + SimpleDateFormat sdfstart = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); + SimpleDateFormat sdfend = new SimpleDateFormat("yyyy-MM-dd 23:59:59"); + Date now = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(now); + cal.add(Calendar.DATE, -7); + Date startTime = cal.getTime(); + params.put("startDate",opeUseFlowQueryDto.getStartDate()!=null?opeUseFlowQueryDto.getStartDate():sdfstart.format(startTime)); + params.put("endDate",opeUseFlowQueryDto.getEndDate()!=null?opeUseFlowQueryDto.getEndDate():sdfend.format(now)); + + params.put("houseName", opeUseFlowQueryDto.getHouseName()); + params.put("operatestate", opeUseFlowQueryDto.getOperatestate()); + params.put("containerCode", opeUseFlowQueryDto.getContainerCode()); + + params.put("first", (pageNum-1)*pageSize); + params.put("pageSize", pageSize); + + Long total= new Long(this.opeUseFlowDao.getOpeUseFlowTotalCount(params)); + commonPage.setTotalPage(CommonPage.getTotalPage(total,pageSize)); + commonPage.setTotal(total); + List<OpeUseFlow> opeUseFlows= this.opeUseFlowDao.getOpeUseFlowSimpleInfoList(params); + commonPage.setList(opeUseFlows); + return commonPage; + } + + @Override + public OpeUseFlow getLastUseFlow(String reagentCode) { + return this.opeUseFlowDao.getLastUseFlow(reagentCode); + } + @Transactional(propagation = Propagation.REQUIRED) - public int getOpeUseFlowTotalCountByName(String houseName,String reagentId, String reagentCode,String containerCode, Integer status, String userId,Date startDate,Date endDate) { + public int getOpeUseFlowTotalCountByName(String houseName,Long reagentId, String reagentCode,String containerCode, Integer status, Long userId,Date startDate,Date endDate,Integer operatestate) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("reagentName", reagentId); @@ -227,6 +288,7 @@ params.put("endDate",sdfend.format(now)); } + params.put("operatestate", operatestate); params.put("houseName", houseName); params.put("containerCode", containerCode); addParamByUserId(userId, params); @@ -240,8 +302,8 @@ } } - private void addParamByUserId(String userId, Map<String, Object> params) { - if (StringUtils.isNotBlank(userId)) { + private void addParamByUserId(Long userId, Map<String, Object> params) { + if (userId!=null) { SysUser sysUser = sysUserService.getSysUser(userId); // 不是管理员时,加入userid @@ -296,9 +358,9 @@ //0:个人领用 1:在库 3:报废 //<!--0:个人领用 1:在仓库sys_warehouse_container 2:在实验室sys_laboratory_container 3:报废--> OpeUseFlow opeUseFlow = new OpeUseFlow(); - opeUseFlow.setId(IDUtils.uuid()); + // opeUseFlow.setId(IDUtils.uuid()); opeUseFlow.setCreateTime(new Timestamp(DateUtils.parseDate(params.get("updateTime").toString(), Constants.TIME_PATTERN_YYYY_MM_DD_HH_MM_SS).getTime())); - opeUseFlow.setStatus(ArrivalStatus.parse(Integer.valueOf(String.valueOf(params.get("status"))))); + opeUseFlow.setStatus(Integer.valueOf(String.valueOf(params.get("status")))); opeUseFlow.setReagentCode((String) params.get("reagentCode")); if (params.get("idcard") != null) { SysUser sysUser = sysUserService.getSysUserByIdCard((String) params.get("idcard")); @@ -307,8 +369,8 @@ continue; } opeUseFlow.setUserId(sysUser.getId()); - opeUseFlow.setContainerId("0"); - opeUseFlow.setHouseId("0"); + opeUseFlow.setContainerId(0l); + opeUseFlow.setHouseId(0l); } else { logger.error("The idcard is empty!"); continue; @@ -317,13 +379,13 @@ SysWarehouseContainer container = sysWarehouseContainerDao.getSysWarehouseContainerByContainerCode((String) params.get("containerCode")); if (Objects.isNull(container)==false) { if (params.get("status").toString().equals("1")) { - opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE); + opeUseFlow.setStatus(ArrivalStatus.WAREHOUSE.getKey()); } else { - opeUseFlow.setStatus(ArrivalStatus.PERSONAL); + opeUseFlow.setStatus(ArrivalStatus.PERSONAL.getKey()); } opeUseFlow.setContainerId(container.getId()); opeUseFlow.setHouseId(container.getWarehouseId()); - opeUseFlow.setPlace(container.getStructure()); + // opeUseFlow.setPlace(container.getStructure()); }else{ SysLaboratoryContainer sysLaboratoryContainer = sysLaboratoryContainerDao.getSysLaboratoryContainerByContainerCode((String) params.get("containerCode")); if (Objects.isNull(sysLaboratoryContainer)) { @@ -331,13 +393,13 @@ continue; } if (params.get("status").toString().equals("1")) { - opeUseFlow.setStatus(ArrivalStatus.LABORATORY); + opeUseFlow.setStatus(ArrivalStatus.LABORATORY.getKey()); } else { - opeUseFlow.setStatus(ArrivalStatus.PERSONAL); + opeUseFlow.setStatus(ArrivalStatus.PERSONAL.getKey()); } opeUseFlow.setContainerId(sysLaboratoryContainer.getId()); opeUseFlow.setHouseId(sysLaboratoryContainer.getLaboratoryId()); - opeUseFlow.setPlace(sysLaboratoryContainer.getStructure()); + // opeUseFlow.setPlace(sysLaboratoryContainer.getStructure()); } // } @@ -374,29 +436,28 @@ } @Override - public void updateReceiptNumber(String code, String receiptNumber) { - opeUseFlowDao.updateReceiptNumber(code, receiptNumber); + public void updateReceiptNumber(String code, String receiptNumber,String note) { + opeUseFlowDao.updateReceiptNumber(code, receiptNumber,note); } + //---------待完善------------20240408 @Transactional - public void updateReceiptNumberByCode(List<OpeApplyReserve> selectedTmpOrderList,String receiptNumber) { + public void updateReceiptNumberByCode(List<OpeApplyReserve> selectedTmpOrderList,String receiptNumber,String note) { for (OpeApplyReserve oar : selectedTmpOrderList) { - //根据id或者试剂的条码直接查找 状态表单 查询订单所有的流向 - List<String> codeTmp = opeReagentStatusService - .generateReagentCode(oar.getStartReagentCode2(), oar.getEndReagentCode2()); - assert codeTmp.size() > 0; - if (oar.getFlag() == 1) { //库中领取 code存的是 试剂状态的id - for (String statusId : codeTmp) { - String code = opeReagentStatusService.getOpeReagentStatus(statusId).getReagentCode(); + for (String reagentCode : oar.getReagentCodes()) { + String code = opeReagentStatusService.getOpeReagentStatusByCode(reagentCode).getReagentCode(); //此时状态为领用待入库 - opeUseFlowService.updateReceiptNumber(code, receiptNumber); + this.updateReceiptNumber(code, receiptNumber,note); } }else{ + //根据id或者试剂的条码直接查找 状态表单 查询订单所有的流向 + List<String> codeTmp = opeReagentStatusService + .generateReagentCode(oar.getStartReagentCode2(), oar.getEndReagentCode2()); for (String code : codeTmp) { - opeUseFlowService.updateReceiptNumber(code, receiptNumber); + this.updateReceiptNumber(code, receiptNumber,note); } } @@ -406,13 +467,13 @@ } @Override - public Map<String, Integer> getRegentInfoFromReceiptNumber(String receiptNumber) { + public Map<Long, Integer> getRegentInfoFromReceiptNumber(String receiptNumber) { List<Map> maps = opeUseFlowDao.getRegentInfoFromReceiptNumber(receiptNumber); if (maps.size() > 0) { - Map<String, Integer> printInfo = new HashMap<>(); + Map<Long, Integer> printInfo = new HashMap<>(); for (Map map : maps) { Integer count =Integer.parseInt(String.valueOf(map.get("count")));; - String reagentId = (String) map.get("reagentId"); + Long reagentId = Long.valueOf(map.get("reagentId").toString()); SysReagent reagent = sysReagentService.getSysReagent(reagentId); printInfo.put(reagent.getId(), count); } @@ -425,32 +486,26 @@ @Override public Map getApplyUserByReagentCode(String reagentCode) { - Map<String, String> metaMap2 = new HashMap<>(); - metaMap2.put("groupId", "operate_status"); - metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); - List<BaseMeta> baseMetaList2 = baseMetaDao.getBaseMetaList(metaMap2); - String id = baseMetaList2.get(0).getId(); - return opeUseFlowDao.getUserIdByReagentCode(reagentCode, id); + return opeUseFlowDao.getUserIdByReagentCode(reagentCode, OperateStatus.WAREHOUSEOUT.getKey()); } + //---------待完善------------20240408 @Override - public void updateReceiptNumberByCode2(List<OpeWarehouseReserve> selectTmpList, String receiptNumber) { + public void updateReceiptNumberByCode2(List<OpeWarehouseReserve> selectTmpList, String receiptNumber,String note) { for (OpeWarehouseReserve owr : selectTmpList) { - //根据id或者试剂的条码直接查找 状态表单 查询订单所有的流向 - List<String> codeTmp = opeReagentStatusService - .generateReagentCode(owr.getStartReagentCode2(), owr.getEndReagentCode2()); - assert codeTmp.size() > 0; - if (owr.getFlag() == 1) { //库中领取 code存的是 试剂状态的id - for (String statusId : codeTmp) { - String code = opeReagentStatusService.getOpeReagentStatus(statusId).getReagentCode(); + for (String statusId : owr.getReagentCodes()) { + String code = opeReagentStatusService.getOpeReagentStatusByCode(statusId).getReagentCode(); //此时状态为领用待入库 - opeUseFlowService.updateReceiptNumber(code, receiptNumber); + this.updateReceiptNumber(code, receiptNumber,note); } }else{ + //根据id或者试剂的条码直接查找 状态表单 查询订单所有的流向 + List<String> codeTmp = opeReagentStatusService + .generateReagentCode(owr.getStartReagentCode2(), owr.getEndReagentCode2()); for (String code : codeTmp) { - opeUseFlowService.updateReceiptNumber(code, receiptNumber); + this.updateReceiptNumber(code, receiptNumber,note); } } @@ -459,12 +514,38 @@ } @Override - public int getPersonalUseInfoCount(String reagentCode,String userId, Date startTime, Date endTime, String receiptNumber, + public int getPersonalUseInfoCount(String reagentCode,Long userId, Date startDate, Date endDate, String receiptNumber, String department, String project,String applyPerson,String reagentName) { Map<String,Object> params = new HashMap<>(); - params.put("userId", userId); - params.put("startTime", startTime); - params.put("endTime", endTime); + + SimpleDateFormat sdfstart = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); + SimpleDateFormat sdfend = new SimpleDateFormat("yyyy-MM-dd 23:59:59"); + Date now = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(now); + cal.add(Calendar.DATE, -7); + Date startTime = cal.getTime(); + + if (null != startDate){ + try { + params.put("startTime",sdfstart.format(startDate)); + }catch (Exception e){ + e.printStackTrace(); + } + }else { + params.put("startTime",sdfstart.format(startTime)); + } + + if (null != endDate){ + try { + params.put("endTime",sdfend.format(endDate)); + }catch (Exception e){ + e.printStackTrace(); + } + }else { + params.put("endTime",sdfend.format(now)); + } + params.put("receiptNumber", receiptNumber); params.put("department", department); params.put("project", project); @@ -472,39 +553,54 @@ params.put("applyPerson", applyPerson); if (StringUtils.isNotBlank(reagentName)) { //根据试剂名获取单号 - } params.put("reagentName", reagentName); - //操作状态位仓库领取 - Map<String, String> metaMap2 = new HashMap<>(); - metaMap2.put("groupId", "operate_status"); - metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); - List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); - params.put("operatestate", baseMetas.get(0).getId()); + params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey()); + params.put("operatestate1", OperateStatus.TRANSFER.getKey()); addParamByUserId(userId, params); return opeUseFlowDao.countPersonalUseInfo(params); } @Override - public List<OpeUseFlow> getPersonalUseInfoList(String reagentCode,String userId, Date startTime, Date endTime, String receiptNumber, + public List<OpeUseFlow> getPersonalUseInfoList(String reagentCode,Long userId, Date startDate, Date endDate, String receiptNumber, String department, String project,String applyPerson,String reagentName, int first, int pageSize) { Map<String, Object> params = new HashMap<>(); - params.put("userId", userId); - params.put("startTime", startTime); - params.put("endTime", endTime); + SimpleDateFormat sdfstart = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); + SimpleDateFormat sdfend = new SimpleDateFormat("yyyy-MM-dd 23:59:59"); + Date now = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(now); + cal.add(Calendar.DATE, -7); + Date startTime = cal.getTime(); + if (null != startDate){ + try { + params.put("startTime",sdfstart.format(startDate)); + }catch (Exception e){ + e.printStackTrace(); + } + }else { + params.put("startTime",sdfstart.format(startTime)); + } + if (null != endDate){ + try { + params.put("endTime",sdfend.format(endDate)); + }catch (Exception e){ + e.printStackTrace(); + } + }else { + params.put("endTime",sdfend.format(now)); + } params.put("receiptNumber", receiptNumber); params.put("department", department); params.put("project", project); params.put("reagentCode", reagentCode); params.put("applyPerson", applyPerson); params.put("reagentName", reagentName); - //操作状态位仓库领取 - Map<String, String> metaMap2 = new HashMap<>(); - metaMap2.put("groupId", "operate_status"); - metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); - List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); - params.put("operatestate", baseMetas.get(0).getId()); + params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey()); + + params.put("operatestate1", OperateStatus.TRANSFER.getKey()); + params.put("first", first); params.put("pageSize", pageSize); @@ -515,11 +611,10 @@ @Override public List<PersonUseDetail> getApplyInfo(String receiptNumber) { Map<String,Object> params = new HashMap<>(); - Map<String, String> metaMap2 = new HashMap<>(); - metaMap2.put("groupId", "operate_status"); - metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); - List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); - params.put("operatestate", baseMetas.get(0).getId()); + params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey()); + + params.put("operatestate1", OperateStatus.TRANSFER.getKey()); + params.put("receiptNumber", receiptNumber); return opeUseFlowDao.getApplyInfo(params); @@ -530,15 +625,190 @@ @Override public int getApplyInfoSize(String receiptNumber) { Map<String,Object> params = new HashMap<>(); - Map<String, String> metaMap2 = new HashMap<>(); - metaMap2.put("groupId", "operate_status"); - metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey())); - List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2); - params.put("operatestate", baseMetas.get(0).getId()); + params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey()); + + params.put("operatestate1", OperateStatus.TRANSFER.getKey()); + params.put("receiptNumber", receiptNumber); return opeUseFlowDao.getApplyInfoSize(params); } + @Override + public int getOpeUseFlow(OpeUseFlow opeUseFlow) { + return opeUseFlowDao.countOpeUseFlow(opeUseFlow); + } + + @Override + @Transactional + public void scrapReagent(Long reagentId,String reagentCode, Long userId) { + //1.试剂状态表更新试剂状态为报废 + OpeReagentStatus status = opeReagentStatusService.getStatus(reagentId, reagentCode); + if (status.getStatus() == ArrivalStatus.SCRAP.getKey()) { + throw new BusinessException(ExceptionEnumCode.PARAM_ERR,"该试剂已是报废状态,无法进行操作"); + } + //报废 + status.setStatus(ArrivalStatus.SCRAP.getKey()); + status.setUserId(userId); + opeReagentStatusDao.updateOpeReagentStatusDao(status); + + //2.插入一条报废的流向记录 + OpeUseFlow useFlow = new OpeUseFlow(); + useFlow.setOperateState(OperateStatus.SCRAP.getKey()); + useFlow.setReagentCode(reagentCode); + useFlow.setContainerId(status.getContainerId()); + useFlow.setHouseId(status.getHouseId()); + useFlow.setUserId(userId); + useFlow.setPlace(status.getPlace()); + useFlow.setRemainder(status.getRemainder()); + useFlow.setStoreType(status.getStoreType()); + useFlow.setProjectId(status.getProjectId()); + useFlow.setArticleNumber(status.getArticleNumber()); + + useFlow.setCreateTime(new Timestamp(new Date().getTime())); + // useFlow.setId(IDUtils.uuid()); + opeUseFlowDao.insertOpeUseFlow(useFlow); + + } + + @Override + public OpeUseFlow selectById(String id) { + return opeUseFlowDao.selectById(id); + } + + @Override + public OpeUseFlow selectByReceiptNumber(String receiptNumber,Long userId) { + + Map<String, Object> params = new HashMap<>(); + params.put("userId", userId); + params.put("receiptNumber", receiptNumber); + //操作状态位仓库领取 + + params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey()); + + params.put("operatestate1", OperateStatus.TRANSFER.getKey()); + + addParamByUserId(userId, params); + + return opeUseFlowDao.selectByReceiptNumber(params); + } + + @Override + public List<Map> selectAll(String houseName, Long reagentId, String reagentCode, String containerCode, Long userId, Date startDate, Date endDate) { + try { + Map<String, Object> params = new HashMap<String, Object>(); + + params.put("reagentName", reagentId); + if (StringUtils.isNotBlank(reagentCode)) { + params.put("reagentCode", "%" + reagentCode + "%"); + } + SimpleDateFormat sdfstart = new SimpleDateFormat("yyyy-MM-dd 00:00:00"); + SimpleDateFormat sdfend = new SimpleDateFormat("yyyy-MM-dd 23:59:59"); + Date now = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(now); + cal.add(Calendar.DATE, -7); + Date startTime = cal.getTime(); + + if (null != startDate){ + try { + params.put("startDate",sdfstart.format(startDate)); + }catch (Exception e){ + e.printStackTrace(); + } + }else { + params.put("startDate",sdfstart.format(startTime)); + } + if (null != endDate){ + try { + params.put("endDate",sdfend.format(endDate)); + }catch (Exception e){ + e.printStackTrace(); + } + }else { + params.put("endDate",sdfend.format(now)); + } + params.put("houseName", houseName); + params.put("containerCode", containerCode); + addParamByUserId(userId, params); + return opeUseFlowDao.selectAll(params); + } catch (DataAccessException e) { + logger.error(e.getMessage(), e); + throw new BusinessException(ExceptionEnumCode.DB_ERR, + MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e); + } + } + + @Override + public boolean export2Excel(List<Map> list) throws Exception { + Map<String,String> map = new LinkedHashMap<>(); + map.put("reagentCode", "试剂条形码"); + map.put("reagentName", "试剂名称"); + map.put("laboratoryContainerCode", "柜号"); + map.put("operatestateName", "操作状态"); + map.put("remainder", "残存量"); + map.put("userName", "持有者"); + map.put("createTime", "更新时间"); + map.put("warehouseContainerName", "场所名"); + ExcelUtils.export2Excel(list,"试剂流向追踪列表",map); + return true; + } + + + /** + * @Description: 查询导出 + */ + @Override + public List<Map> selectExportDetail(String reagentCode, Long userId, Date startTime, Date endTime, String receiptNumber, String department, String project, String applyPerson, String reagentName) { + Map<String, Object> params = new HashMap<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (startTime != null) { + params.put("startTime", sdf.format(startTime) +" 00:00:00"); + } + + if (endTime != null) { + params.put("endTime", sdf.format(endTime) + " 23:59:59"); + } + + params.put("reagentCode", reagentCode); + + params.put("endTime", endTime); + params.put("receiptNumber", receiptNumber); + params.put("department", department); + params.put("project", project); + params.put("applyPerson", applyPerson); + params.put("reagentName", reagentName); + params.put("groupId", "operate_status"); + + params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey()); + + params.put("operatestate1", OperateStatus.TRANSFER.getKey()); + addParamByUserId(userId, params); + return opeUseFlowDao.selectDetail(params); + } + + @Override + public boolean export22Excel(List<Map> list) throws Exception { + Map<String,String> map = new LinkedHashMap<>(); + map.put("productSn", "产品编号"); + map.put("reagentName", "试剂名称"); + map.put("reagentCode", "试剂条形码"); + map.put("controlProducts", "管制品"); + map.put("reagentFormat", "规格型号"); + map.put("perInfo", "包装"); + map.put("productHome", "厂家"); + map.put("articleNumber", "批号"); + map.put("username", "申领人"); + map.put("projectName", "课题组"); + map.put("department", "部门"); + map.put("location", "地点"); + map.put("createTime", "领用时间"); + ExcelUtils.export2Excel(list,"试剂领用记录表",map); + return true; + } + + + + } -- Gitblit v1.9.2