From 1123d12eb51d23edcd4a39660ef8cd47802b931d Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期二, 30 一月 2024 11:06:32 +0800 Subject: [PATCH] change config --- src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java | 123 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 115 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java index f4c3e7a..c94b1cc 100644 --- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java @@ -11,12 +11,14 @@ import com.nanometer.smartlab.entity.*; import com.nanometer.smartlab.entity.dto.PersonUseDetail; import com.nanometer.smartlab.entity.enumtype.ValidFlag; +import com.nanometer.smartlab.util.ExcelUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.context.annotation.Lazy; import org.springframework.dao.DataAccessException; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.DuplicateKeyException; +import org.springframework.stereotype.Repository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -62,6 +64,8 @@ private OpeUseFlowDao opeUseFlowDao; @Resource private OpeWarehouseReserveDao opeWarehouseReserveDao; + @Resource + private BaseRoleService baseRoleService; @Resource(name="baseMetaDao") BaseMetaDao baseMetaDao; @@ -98,15 +102,50 @@ } @Transactional(propagation = Propagation.REQUIRED) - public List<OpeReagentStatus> getOpeReagentStatusListForLab(String name, String articleNumber, Integer status, + public List<OpeReagentStatus> getOpeReagentStatusList22(String reagentId, String articleNumber, Integer status, String reagentCode, String userId, Integer first, Integer pageSize) { + try { + Map<String, Object> params = new HashMap<String, Object>(); + + params.put("reagentId", reagentId); + params.put("articleNumber", articleNumber); + params.put("status", status); + addParamByUserId(userId, params); + if (StringUtils.isNotBlank(reagentCode)) { + params.put("reagentCode", "%" + reagentCode + "%"); + } + params.put("first", first); + params.put("pageSize", pageSize); + return this.opeReagentStatusDao.getOpeReagentStatusList22(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 List<OpeReagentStatus> getOpeReagentStatusListForLab(String name, String articleNumber, Integer status, + String reagentCode, String userId,String labName, Integer first, Integer pageSize) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("name", "%" + name + "%"); params.put("articleNumber", articleNumber); params.put("status", status); - addParamByUserId(userId, params); + params.put("labName", labName); +// addParamByUserId(userId, params); + if (StringUtils.isNotBlank(userId)) { + SysUser sysUser = sysUserService.getSysUser(userId); + BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId()); + //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下) + if (!"系统管理员".equals(baseRole.getName())) { + if (StringUtils.isBlank(sysUser.getProject())) { + return null; + } + params.put("project", sysUser.getProject()); + } + } if (StringUtils.isNotBlank(reagentCode)) { params.put("reagentCode", "%" + reagentCode + "%"); } @@ -122,17 +161,29 @@ @Transactional(propagation = Propagation.REQUIRED) public int getOpeReagentStatusTotalCountForLab(String name, String articleNumber, Integer status, String reagentCode, - String userId) { + String userId,String labName) { try { Map<String, Object> params = new HashMap<String, Object>(); params.put("name", "%" + name + "%"); - addParamByUserId(userId, params); +// addParamByUserId(userId, params); params.put("articleNumber", articleNumber); + if (StringUtils.isNotBlank(userId)) { + SysUser sysUser = sysUserService.getSysUser(userId); + BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId()); + //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下) + if (!"系统管理员".equals(baseRole.getName())) { + if (StringUtils.isBlank(sysUser.getProject())) { + return 0; + } + params.put("project", sysUser.getProject()); + } + } if (StringUtils.isNotBlank(reagentCode)) { params.put("reagentCode", "%" + reagentCode + "%"); } params.put("status", status); + params.put("labName", labName); return this.opeReagentStatusDao.getOpeReagentStatusTotalCountForLab(params); } catch (DataAccessException e) { logger.error(e.getMessage(), e); @@ -307,7 +358,8 @@ // 不是管理员时,加入userid //if (sysUser.getSeeFlag().getKey() == SeeFlag.MANAGE.getKey()||sysUser.getSeeFlag().getKey() == SeeFlag.LEADING.getKey()) { - if (sysUser.getSeeFlag().getKey() == SeeFlag.MANAGE.getKey()) { + if (sysUser.getSeeFlag().getKey() == SeeFlag.MANAGE.getKey() + && sysUser.getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) { } else { params.put("userId", userId); @@ -476,7 +528,7 @@ } @Override - public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId) { + public boolean updateReagentStatus3(List<String> reagentCodes,String userId,String projectNum,String laboratoryId,String laboratoryContainerId,String receiptNumber) { try { for (String opeReagentStatusId : reagentCodes) { OpeReagentStatus opeReagentStatus = this.getOpeReagentStatus(opeReagentStatusId); @@ -509,6 +561,7 @@ opeUseFlow.setUserId(opeReagentStatus.getUserId()); opeUseFlow.setPlace(opeReagentStatus.getPlace()); opeUseFlow.setRemainder(opeReagentStatus.getRemainder()); + opeUseFlow.setReceiptNumber(receiptNumber); Map<String, String> metaMap = new HashMap<>(); metaMap.put("groupId", "operate_status"); @@ -537,9 +590,12 @@ } @Transactional(propagation = Propagation.REQUIRED) - public boolean updateReagentStatus(OpeReagentStatus opeReagentStatus) { + public boolean updateReagentStatus(OpeReagentStatus opeReagentStatus,String receiptNumber) { try { - + if(StringUtils.isBlank(receiptNumber)){ + throw new BusinessException(ExceptionEnumCode.PARAM_NO_EXIST, + MessageUtil.getMessageByCode(ExceptionEnumCode.PARAM_NO_EXIST.getCode(), "领用单号为空")); + } if (isAllowWarehouseUse(opeReagentStatus)) { // 减少库存 OpeWarehouseReserve opeWarehouseReserve = this.opeWarehouseReserveService.getOpeWarehouseReserve( @@ -560,6 +616,7 @@ opeUseFlow.setUserId(opeReagentStatus.getUserId()); opeUseFlow.setPlace(opeReagentStatus.getPlace()); opeUseFlow.setRemainder(opeReagentStatus.getRemainder()); + opeUseFlow.setReceiptNumber(receiptNumber); Map<String, String> metaMap = new HashMap<>(); metaMap.put("groupId", "operate_status"); @@ -1059,4 +1116,54 @@ } + /** + * @Description: 导出 + * @date 2021/4/22 10:33 + */ + @Override + public List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, String userId,String labName) { + + Map<String, Object> params = new HashMap<>(); + params.put("name", name); + params.put("articleNumber", articleNumber); + params.put("status", status); + params.put("labName", labName); + if (StringUtils.isNotBlank(userId)) { + SysUser sysUser = sysUserService.getSysUser(userId); + BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId()); + //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下) + if (!"系统管理员".equals(baseRole.getName())) { + if (StringUtils.isBlank(sysUser.getProject())) { + return null; + } + params.put("project", sysUser.getProject()); + } + } + params.put("reagentCode", reagentCode); + return opeReagentStatusDao.selectExportList(params); + } + + @Override + public void exportLabStock2Excel(List<Map> list) throws Exception { + Map<String, String> map = new LinkedHashMap<>(); + map.put("houseName", "实验室名称"); + map.put("containerCode", "临时存储库条码"); + map.put("reagentName", "试剂名称"); + map.put("reagentCode", "试剂条形码"); + map.put("articleNumber", "批号"); + map.put("cas", "cas"); + map.put("productHome", "厂家"); + map.put("supplierName", "供应商"); + map.put("remainder", "残存量"); + ExcelUtils.export2Excel(list,"实验室库存",map); + } + + @Override + public OpeReagentStatus getStatus(String reagentId, String reagentCode) { + + + return opeReagentStatusDao.getStatus(reagentId,reagentCode); + } + + } -- Gitblit v1.9.2