危化品全生命周期管理后端
“djh”
2025-10-16 65ca50935315a89e219b7c974caf95dc28895ffc
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzEntryRecordServiceImpl.java
@@ -66,7 +66,7 @@
    @Override
    public CommonPage selectEntryRecordList(HzEntryRecord entryRecord) {
        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
        if (!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())) {
        if (!currentUser.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode()) && !currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())) {
            entryRecord.setCompanyId(currentUser.getCompanyId());
        }
        PageUtils.startPage();
@@ -295,12 +295,39 @@
        if(entryRecord.getNum()>hazmatBasic.getMaxEntry()){
            throw new ApiException("数量超过单次入库最大数量<"+hazmatBasic.getMaxEntry()+">");
        }
        if (!Objects.equals(existEr.getNum(),entryRecord.getNum())) {
            generateCode2(entryRecord);
        }
        entryRecord.setUpdateBy(currentUser.getUsername());
        int row=baseMapper.updateById(entryRecord);
        if(row<1){
            throw new ApiException("更新入库信息失败");
        }
        return row;
    }
    private void generateCode2(HzEntryRecord entryRecord) {
        SysCompany company=companyMapper.selectById(entryRecord.getCompanyId());
        String code=company.getCode();
        if(StringUtils.isBlank(code)){
            throw new ApiException("公司两位编码为空");
        }
        String currentDate= DateUtil.format(new Date(), DatePattern.PURE_DATE_FORMAT);
        StringBuilder prefixBuilder=new StringBuilder().append(CodePrexEnum.MATERIAL.getCode())
                .append(code)
                .append(currentDate);
        HzEntryRecord er=baseMapper.selectLastEndCodeEntryRecord(prefixBuilder.toString(),entryRecord.getCompanyId());
        int startCode=1;
        int endCode=startCode+entryRecord.getNum()-1;
        if(er!=null){
            startCode=er.getEndCode()+1;
            endCode=startCode+entryRecord.getNum()-1;
        }
        entryRecord.setCodePrex(prefixBuilder.toString());
        entryRecord.setStartCode(startCode);
        entryRecord.setEndCode(endCode);
        entryRecord.setState(EntryStateEnum.UNENTER.getCode());
    }
    @Override
@@ -311,8 +338,12 @@
            throw new ApiException("入库信息不存在");
        }
        checkUserAllowed(entryRecord,currentUser);
        //设置分表id
        IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
        if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
            IdTableNameHandler.setCurrentId(entryRecord.getCompanyId());
        }else {
            //设置分表id
            IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
        }
        PageUtils.startPage();
        List<HzHazmat> hazmatList = hazmatMapper.selectHazmatList(new HzHazmat().setEntryId(entryId));
        IdTableNameHandler.removeCurrentId();
@@ -324,8 +355,10 @@
            throw new ApiException("管理员不能操作");
        }
        if(entryRecord!=null){
            if(!Objects.equals(user.getCompanyId(), entryRecord.getCompanyId())){
                throw new ApiException("无权限操作其他企业数据");
            if (!user.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
                if(!Objects.equals(user.getCompanyId(), entryRecord.getCompanyId())){
                    throw new ApiException("无权限操作其他企业数据");
                }
            }
        }
    }