kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
@@ -67,14 +67,6 @@
    @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()+1000));
            }
            this.opeUseFlowDao.insertOpeUseFlow(opeUseFlow);
            return opeUseFlow;
        } catch (DuplicateKeyException ex) {
@@ -91,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>();
@@ -116,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);
@@ -137,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,String operatestate) {
    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>();
@@ -235,8 +245,13 @@
        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,String operatestate) {
    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);
@@ -287,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
@@ -343,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"));
@@ -354,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;
@@ -364,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)) {
@@ -378,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());
                }
 //           }
@@ -425,14 +440,15 @@
        opeUseFlowDao.updateReceiptNumber(code, receiptNumber,note);
    }
    //---------待完善------------20240408
    @Transactional
    public void updateReceiptNumberByCode(List<OpeApplyReserve> selectedTmpOrderList,String receiptNumber,String note) {
        for (OpeApplyReserve oar : selectedTmpOrderList) {
            if (oar.getFlag() == 1) {
                //库中领取 code存的是 试剂状态的id
                for (String statusId : oar.getReagentCode()) {
                    String code = opeReagentStatusService.getOpeReagentStatus(statusId).getReagentCode();
                for (String reagentCode : oar.getReagentCodes()) {
                    String code = opeReagentStatusService.getOpeReagentStatusByCode(reagentCode).getReagentCode();
                    //此时状态为领用待入库
                    this.updateReceiptNumber(code, receiptNumber,note);
                }
@@ -451,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);
            }
@@ -470,21 +486,17 @@
    @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,String note) {
        for (OpeWarehouseReserve owr : selectTmpList) {
            if (owr.getFlag() == 1) {
                //库中领取 code存的是 试剂状态的id
                for (String statusId : owr.getReagentCodes()) {
                    String code = opeReagentStatusService.getOpeReagentStatus(statusId).getReagentCode();
                    String code = opeReagentStatusService.getOpeReagentStatusByCode(statusId).getReagentCode();
                    //此时状态为领用待入库
                    this.updateReceiptNumber(code, receiptNumber,note);
                }
@@ -502,7 +514,7 @@
    }
    @Override
    public int getPersonalUseInfoCount(String reagentCode,String userId, Date startDate, Date endDate, 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<>();
@@ -541,26 +553,17 @@
        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());
        metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
        List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
        params.put("operatestate1", baseMetas1.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 startDate, Date endDate, 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<>();
        SimpleDateFormat sdfstart = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
@@ -594,16 +597,9 @@
        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());
        metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
        List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
        params.put("operatestate1", baseMetas1.get(0).getId());
        params.put("operatestate1", OperateStatus.TRANSFER.getKey());
        params.put("first", first);
        params.put("pageSize", pageSize);
@@ -615,15 +611,9 @@
    @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());
        metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
        List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
        params.put("operatestate1", baseMetas1.get(0).getId());
        params.put("operatestate1", OperateStatus.TRANSFER.getKey());
        params.put("receiptNumber", receiptNumber);
@@ -635,15 +625,9 @@
    @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());
        metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
        List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
        params.put("operatestate1", baseMetas1.get(0).getId());
        params.put("operatestate1", OperateStatus.TRANSFER.getKey());
        params.put("receiptNumber", receiptNumber);
@@ -658,25 +642,20 @@
    @Override
    @Transactional
    public void scrapReagent(String reagentId,String reagentCode, String userId) {
    public void scrapReagent(Long reagentId,String reagentCode, Long userId) {
        //1.试剂状态表更新试剂状态为报废
        OpeReagentStatus status = opeReagentStatusService.getStatus(reagentId, reagentCode);
        if (status.getStatus() == ArrivalStatus.SCRAP) {
        if (status.getStatus() == ArrivalStatus.SCRAP.getKey()) {
            throw new BusinessException(ExceptionEnumCode.PARAM_ERR,"该试剂已是报废状态,无法进行操作");
        }
        //报废
        status.setStatus(ArrivalStatus.SCRAP);
        status.setStatus(ArrivalStatus.SCRAP.getKey());
        status.setUserId(userId);
        opeReagentStatusDao.updateOpeReagentStatusDao(status);
        //2.插入一条报废的流向记录
        OpeUseFlow useFlow = new OpeUseFlow();
        //获取报废状态id
        Map<String, Object> params = new HashMap<>();
        params.put("groupId", "operate_status");
        params.put("metaKey", String.valueOf(OperateStatus.SCRAP.getKey()));
        List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(params);
        useFlow.setOperateState(baseMetas.get(0).getId());
        useFlow.setOperateState(OperateStatus.SCRAP.getKey());
        useFlow.setReagentCode(reagentCode);
        useFlow.setContainerId(status.getContainerId());
        useFlow.setHouseId(status.getHouseId());
@@ -684,11 +663,11 @@
        useFlow.setPlace(status.getPlace());
        useFlow.setRemainder(status.getRemainder());
        useFlow.setStoreType(status.getStoreType());
        useFlow.setProject(status.getProjectNum());
        useFlow.setProjectId(status.getProjectId());
        useFlow.setArticleNumber(status.getArticleNumber());
        useFlow.setCreateTime(new Timestamp(new Date().getTime()));
        useFlow.setId(IDUtils.uuid());
      //  useFlow.setId(IDUtils.uuid());
        opeUseFlowDao.insertOpeUseFlow(useFlow);
    }
@@ -699,21 +678,16 @@
    }
    @Override
    public OpeUseFlow selectByReceiptNumber(String receiptNumber,String userId) {
    public OpeUseFlow selectByReceiptNumber(String receiptNumber,Long userId) {
        Map<String, Object> params = new HashMap<>();
        params.put("userId", userId);
        params.put("receiptNumber", receiptNumber);
        //操作状态位仓库领取
        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());
        metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
        List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
        params.put("operatestate1", baseMetas1.get(0).getId());
        params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey());
        params.put("operatestate1", OperateStatus.TRANSFER.getKey());
        addParamByUserId(userId, params);
@@ -721,7 +695,7 @@
    }
    @Override
    public List<Map> selectAll(String houseName, String reagentId, String reagentCode, String containerCode, String userId, Date startDate, Date endDate) {
    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>();
@@ -786,9 +760,8 @@
     * @Description: 查询导出
     */
    @Override
    public List<Map> selectExportDetail(String reagentCode, String userId, Date startTime, Date endTime, String receiptNumber, String department, String project, String applyPerson, String reagentName) {
    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<>();
        Map<String, String> metaMap2 = new HashMap<>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        if (startTime != null) {
            params.put("startTime", sdf.format(startTime) +" 00:00:00");
@@ -807,13 +780,10 @@
        params.put("applyPerson", applyPerson);
        params.put("reagentName", reagentName);
        params.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());
        metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
        List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
        params.put("operatestate1", baseMetas1.get(0).getId());
        params.put("operatestate", OperateStatus.WAREHOUSEOUT.getKey());
        params.put("operatestate1", OperateStatus.TRANSFER.getKey());
        addParamByUserId(userId, params);
        return opeUseFlowDao.selectDetail(params);
    }
@@ -830,7 +800,7 @@
        map.put("productHome", "厂家");
        map.put("articleNumber", "批号");
        map.put("username", "申领人");
        map.put("project", "课题组");
        map.put("projectName", "课题组");
        map.put("department", "部门");
        map.put("location", "地点");
        map.put("createTime", "领用时间");
@@ -838,4 +808,7 @@
        return true;
    }
}