1
5 小时以前 658141dd2f6ea08bff904d7dfd987a696ece94fe
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -388,20 +388,36 @@
        companyParams.forEach(param -> {
            Companys companys = new Companys();
            BeanUtils.copyProperties(param, companys);
            if (Objects.isNull(companys.getCode())) {
            if (Objects.isNull(companys.getCode()) || StringUtils.isBlank(companys.getCode())) {
                throw new CoolException("企业编码不能为空!!");
            }
            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()).last("limit 1"));
            if (Objects.isNull(one)) {
                String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_COMPANYS_CODE, null);
                companys.setCode(ruleCode);
            } else {
                throw new CoolException(one.getName() + ",企业名重复!!");
            if (Objects.isNull(companys.getName()) || StringUtils.isBlank(companys.getName())) {
                throw new CoolException("企业名称不能为空!!");
            }
            companys.setType(CompanysType.getCustomVal(param.getType()))
                    .setId(null);
            if (!companysService.save(companys)) {
                throw new CoolException("企业保存失败!!");
            // 幂等同步:优先按编码匹配,找不到再按名称匹配
            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>()
                    .eq(Companys::getCode, param.getCode())
                    .last("limit 1"));
            if (Objects.isNull(one)) {
                one = companysService.getOne(new LambdaQueryWrapper<Companys>()
                        .eq(Companys::getName, param.getName())
                        .last("limit 1"));
            }
            companys.setType(CompanysType.getCustomVal(param.getType()));
            if (!Objects.isNull(one)) {
                companys.setId(one.getId());
                // 已存在则更新,不重复报错
                if (!companysService.saveOrUpdate(companys)) {
                    throw new CoolException("企业更新失败!!");
                }
            } else {
                companys.setId(null);
                // 新增时保留ERP传入编码,不再覆盖生成
                if (!companysService.save(companys)) {
                    throw new CoolException("企业保存失败!!");
                }
            }
        });
        return R.ok();