浏览代码

临时提交

zdm 6 年之前
父节点
当前提交
8dd41c9006

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/saas/BaseEmailTemplateConfigDO.java

@ -16,6 +16,8 @@ public class BaseEmailTemplateConfigDO extends UuidIdentityEntityWithOperator {
    private String templateName; // T '自定义模板名称
    @Column(name = "first")
    private String first; //
    @Column(name = "code")
    private String code; //
    @Column(name = "url")
    private String url; // 转链接
    @Column(name = "remark")
@ -132,4 +134,12 @@ public class BaseEmailTemplateConfigDO extends UuidIdentityEntityWithOperator {
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
}

+ 1 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/saas/BaseEmailTemplateConfigDao.java

@ -10,4 +10,5 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface BaseEmailTemplateConfigDao extends PagingAndSortingRepository<BaseEmailTemplateConfigDO, String> {
    BaseEmailTemplateConfigDO findById(String id);
    BaseEmailTemplateConfigDO findByCode(String code);
}

+ 16 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/population/BasePopulationEndpoint.java

@ -60,12 +60,11 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
    static final String parentFile = "population";
    @PostMapping(value = BaseRequestMapping.BasePopulation.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = BaseRequestMapping.BasePopulation.CREATE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<BasePopulationVO> create(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        BasePopulationDO basePopulation = toEntity(jsonData, BasePopulationDO.class);
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam(value = "jsonData") String jsonData) throws Exception {BasePopulationDO basePopulation = toEntity(jsonData, BasePopulationDO.class);
        //根据saasid获取所属机构的行政区划
        if (StringUtils.isNotBlank(basePopulation.getSaasId())) {
            basePopulation = updateBasePopulation(basePopulation);
@ -73,7 +72,7 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
            return failed("租户id不能为空!", ObjEnvelop.class);
        }
        Boolean bo = checkNameAndYear(basePopulation.getSaasId(), basePopulation.getYear());
        if (!bo) {
        if (bo) {
            return failed("已添加" + basePopulation.getYear() + basePopulation.getSaasName() + "的基础人口信息,请直接修改即可!", ObjEnvelop.class);
        }
        basePopulation = basePopulationService.save(basePopulation);
@ -89,11 +88,11 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
        return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.BasePopulation.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = BaseRequestMapping.BasePopulation.UPDATE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<BasePopulationVO> update(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam(value = "jsonData") String jsonData) throws Exception {
        BasePopulationDO basePopulation = toEntity(jsonData, BasePopulationDO.class);
        if (null == basePopulation.getId()) {
            return failed("ID不能为空", ObjEnvelop.class);
@ -105,7 +104,7 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
            return failed("租户id不能为空!", ObjEnvelop.class);
        }
        Boolean bo = checkNameAndYear(basePopulation.getSaasId(), basePopulation.getYear());
        if (!bo) {
        if (bo) {
            return failed("已添加" + basePopulation.getYear() + basePopulation.getSaasName() + "的基础人口信息,请直接修改即可!", ObjEnvelop.class);
        }
        basePopulation = basePopulationService.save(basePopulation);
@ -274,6 +273,9 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
            //验证未通过
            List<PopulationMsg> errorLs = excelReader.getErrorLs();
            List<PopulationMsg> correctLs = excelReader.getCorrectLs();
            if(errorLs.size()>0){
                return failed("格式有误,导入失败!");
            }
            //获取所有租户+年份的基础人口信息
            Set<String> populationNameAndYear = new HashSet<String>(basePopulationService.getFacilityCodeByServerType());
            PopulationMsg model;
@ -283,11 +285,15 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
                    model = correctLs.get(i);
                    Map<Boolean, PopulationMsg> map = validate(model, populationNameAndYear);
                    if (null == map.get(true)) {
                        errorLs.add(model);
//                        errorLs.add(model);
                        return failed("格式有误,导入失败!");
                    } else {
                        saveLs.add(model);
                    }
                }
//                if(errorLs.size()>0){
//                    return failed("格式有误,导入失败!");
//                }
                Map<String, Object> result = basePopulationService.batchInsertPopulation(saveLs);
                result.put("errorLs", errorLs);
                return success("导入成功!", result);

+ 46 - 27
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasEndpoint.java

@ -1,9 +1,11 @@
package com.yihu.jw.base.endpoint.saas;
import com.yihu.jw.base.service.saas.BaseEmailTemplateConfigService;
import com.yihu.jw.base.service.saas.SaasService;
import com.yihu.jw.base.service.saas.SaasTypeDictService;
import com.yihu.jw.base.service.user.UserService;
import com.yihu.jw.base.util.ErrorCodeUtil;
import com.yihu.jw.entity.base.saas.BaseEmailTemplateConfigDO;
import com.yihu.jw.entity.base.saas.SaasDO;
import com.yihu.jw.entity.base.saas.SaasTypeDictDO;
import com.yihu.jw.entity.base.user.UserDO;
@ -23,6 +25,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -45,13 +48,15 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private ErrorCodeUtil errorCodeUtil;
    @Autowired
    private BaseEmailTemplateConfigService baseEmailTemplateConfigService;
    @Autowired
    JavaMailSender jms;
    @Value("${spring.mail.username}")
    private String username;
    @PostMapping(value = BaseRequestMapping.Saas.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建-基本信息")
    public Envelop create (
    public Envelop create(
            @ApiParam(name = "jsonSaas", value = "租户数据", required = true)
            @RequestParam String jsonSaas) throws Exception {
        SaasDO saasDO = toEntity(jsonSaas, SaasDO.class);
@ -75,7 +80,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.Saas.SYSTEM_CONFIGURATION, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建-系统配置")
    public Envelop createSystemConfig (
    public Envelop createSystemConfig(
            @ApiParam(name = "saasDO", value = "Json数据", required = true)
            @RequestParam(value = "saasDO") SaasDO saasDO) throws Exception {
@ -85,7 +90,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.Saas.THEME_STYLE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建-主题风格")
    public Envelop createThemeConfig (
    public Envelop createThemeConfig(
            @ApiParam(name = "saasDO", value = "Json数据", required = true)
            @RequestParam(value = "saasDO") SaasDO saasDO) throws Exception {
@ -105,7 +110,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.Saas.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public Envelop update (
    public Envelop update(
            @ApiParam(name = "json", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        SaasDO saasDO = toEntity(jsonData, SaasDO.class);
@ -118,7 +123,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseRequestMapping.Saas.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<SaasVO> page (
    public PageEnvelop<SaasVO> page(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
@ -130,13 +135,13 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<SaasDO> saasDOS = saasService.search(fields, filters, sorts, page, size);
        int count = (int)saasService.getCount(filters);
        int count = (int) saasService.getCount(filters);
        return success(saasDOS, count, page, size, SaasVO.class);
    }
    @GetMapping(value = BaseRequestMapping.Saas.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<SaasVO> list (
    public ListEnvelop<SaasVO> list(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
@ -165,50 +170,64 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.Saas.AUDIT)
    @ApiOperation(value = "审核")
    public Envelop audit(
    public ObjEnvelop<SaasDO> audit(
            @ApiParam(name = "id", value = "SaasId", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = "状态", required = true)
            @RequestParam(value = "status") SaasDO.Status status,
            @ApiParam(name = "auditFailedReason", value = "审核不通过的原因(非必填)")
            @RequestParam(value = "auditFailedReason",required = false) String auditFailedReason) throws Exception {
            @RequestParam(value = "auditFailedReason", required = false) String auditFailedReason) throws Exception {
        SaasDO saasDO = saasService.retrieve(id);
        if (null == saasDO) {
            return failed("无相关SAAS配置", Envelop.class);
            return failed("无相关SAAS配置", ObjEnvelop.class);
        }
        saasDO.setStatus(status);
        saasDO.setAuditFailedReason(auditFailedReason);
        saasService.save(saasDO);
        return success("操作成功");
        saasDO= send(saasDO);
        return success("审核完成",saasDO);
    }
    @GetMapping("/sendEmail")
    @ApiOperation(value = "邮件发送")
    public void send() throws Exception {
    public SaasDO send(SaasDO saasDO) throws Exception {
        SaasDO.Status status = saasDO.getStatus();
        //用户信息初始化
        UserDO userDO = new UserDO();
        userDO.setEmail(saasDO.getEmail());
        userDO.setMobile(saasDO.getMobile());
        userDO.setName(saasDO.getManagerName());
        userDO.setUsername(userDO.getEmail());
         String  password = userDO.getMobile().substring(0, 6);
        BaseEmailTemplateConfigDO baseEmailTemplateConfigDO = baseEmailTemplateConfigService.findByCode(status.toString());
        //建立邮件消息
        SimpleMailMessage mainMessage = new SimpleMailMessage();
        //发送者
        mainMessage.setFrom(username);
        //接收者
        mainMessage.setTo("763558454@qq.com");
//        mainMessage.setTo(saasDO.getEmail());
        //发送的标题
        mainMessage.setSubject("租户审核");
        mainMessage.setSubject(baseEmailTemplateConfigDO.getTemplateName());
        //发送的内容
        String content =  "您好!\n"+ "感谢您注册健康之路城市i健康。\n";
        if (true) {
            content = content + "您提交的是租户注册信息已审核通过,登录账号、密码如下所示:\n";
            content = content + "账号:test"+"\n";
            content = content + "密码:123456"+"\n";
            content = content + "点击以下链接进入健康之路城市i健康综合管理平台:"+ "http://www.baidu.com \n";
            content = content + "如果以上链接无法点击,请将上面的地址复制到你的浏览器(如IE)的地址栏进入健康之路城市i健康综合管理平台\n";
        }else {
            content = content + "您提交的是租户注册信息审核未通过,审核未通过原因如下:\n";
            content = content + "营业执照图片模糊,不清晰。\n";
            content = content + "请点击以下链接修改注册信息并重新提交审核:"+ "http://www.baidu.com \n";
            content = content + "如果以上链接无法点击,请将上面的地址复制到你的浏览器(如IE)的地址栏进入租户注册信息修改。\n";
        StringBuffer content = new StringBuffer();
        content.append(baseEmailTemplateConfigDO.getFirst() + "\n").append(baseEmailTemplateConfigDO.getKeyword1() + "\n");
        content.append(baseEmailTemplateConfigDO.getKeyword2() + "\n");
        if (status.equals(SaasDO.Status.auditPassed)) {
            //账号
            content.append(baseEmailTemplateConfigDO.getKeyword3()+userDO.getMobile() + "\n");
            //密码
            content.append(baseEmailTemplateConfigDO.getKeyword4()+password + "\n");
        } else if (status.equals(SaasDO.Status.auditNotPassed)) {
            //审核未通过的原因
            content.append(saasDO.getAuditFailedReason() + "\n");
        }
        mainMessage.setText(content);
        content.append(baseEmailTemplateConfigDO.getKeyword5() + baseEmailTemplateConfigDO.getUrl() + "\n");
        content.append(baseEmailTemplateConfigDO.getRemark());
        mainMessage.setText(content.toString());
        jms.send(mainMessage);
        //发送成功后,初始化租户信息
//        saasDO = saasService.saasAudit(saasDO, userDO);
        return saasDO;
    }
}

+ 7 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasTypeDictEndpoint.java

@ -158,11 +158,14 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "saasTypeDictId", value = "租户类型id")
            @RequestParam(value = "saasTypeDictId", required = false) String saasTypeDictId) throws Exception {
        //根据租户类型获取关联的模块
        String fis = "status=1;saasTypeId=" + saasTypeDictId;
        List<SaasTypeModuleDO> saasTypeModuleDOList = saasTypeModuleService.search(fis);
        List<SaasTypeModuleDO> saasTypeModuleDOList = new ArrayList<>();
        Set<String> moduleIdSet = new HashSet<>();
        for (SaasTypeModuleDO saasTypeModuleDO : saasTypeModuleDOList) {
            moduleIdSet.add(saasTypeModuleDO.getModuleId());
        if(StringUtils.isNotBlank(saasTypeDictId)){
            String fis = "status=1;saasTypeId=" + saasTypeDictId;
            saasTypeModuleDOList = saasTypeModuleService.search(fis);
            for (SaasTypeModuleDO saasTypeModuleDO : saasTypeModuleDOList) {
                moduleIdSet.add(saasTypeModuleDO.getModuleId());
            }
        }
        //获取生效中的模块
        String filters = "status=1";

+ 3 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/BaseEmailTemplateConfigService.java

@ -19,5 +19,8 @@ public class BaseEmailTemplateConfigService extends BaseJpaService<BaseEmailTemp
    public BaseEmailTemplateConfigDO findById(String id) {
        return baseEmailTemplateConfigDao.findById(id);
    }
    public BaseEmailTemplateConfigDO findByCode(String code) {
        return baseEmailTemplateConfigDao.findByCode(code);
    }
}

+ 140 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasService.java

@ -296,4 +296,144 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
        return saasDao.findByName(name);
    }
    /**
     *审核通过后,初始化租户信息
     * @param saas
     * @param user
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public SaasDO saasAudit(SaasDO saas, UserDO user) {
        //初始化角色
        RoleDO roleDO = roleDao.findByCode(roleCode);
        //初始化租户管理员
        user.setEnabled(true);
        user.setLocked(false);
        user.setSalt(randomString(5));
        String password = user.getPassword();
        //密码默认手机号后6位
        if (StringUtils.isEmpty(password)) {
            password = user.getMobile().substring(0, 6);
        }
        user.setPassword(MD5.md5Hex(password + "{" + user.getSalt() + "}"));
        //初始化管理员角色
        UserRoleDO userRoleDO = new UserRoleDO();
        userRoleDO.setRoleId(roleDO.getId());
        List<BaseOrgDO> orgDOList = saas.getOrgList();
        userDao.save(user);
        userRoleDO.setUserId(user.getId());
        userRoleDao.save(userRoleDO);
        saas.setManager(user.getId());
        saas = saasDao.save(saas);
        String saasId = saas.getId();
        if (orgDOList != null && orgDOList.size() > 0) {
            orgDOList.forEach(org -> {
                org.setSaasid(saasId);
            });
        }
        //系统字典项
        List<SystemDictEntryDO> systemDictEntryDOList = systemDictEntryDao.findBySaasId(defaultSaasId);
        List<SystemDictEntryDO> dictEntryDOList = new ArrayList<>(systemDictEntryDOList.size());
        systemDictEntryDOList.forEach(dict->{
            SystemDictEntryDO systemDictEntryDO = new SystemDictEntryDO();
            systemDictEntryDO.setCode(dict.getCode());
            systemDictEntryDO.setSort(dict.getSort());
            systemDictEntryDO.setSaasId(saasId);
            systemDictEntryDO.setPyCode(dict.getPyCode());
            systemDictEntryDO.setDictCode(dict.getDictCode());
            systemDictEntryDO.setRemark(dict.getRemark());
            systemDictEntryDO.setValue(dict.getValue());
            dictEntryDOList.add(systemDictEntryDO);
        });
        //药品字典
        List<DictMedicineDO> dictMedicineDOList = dictMedicineDao.findBySaasId(defaultSaasId);
        List<DictMedicineDO> medicineDOList = new ArrayList<>(dictMedicineDOList.size());
        dictMedicineDOList.forEach(dict->{
            DictMedicineDO dictMedicineDO = new DictMedicineDO();
            dictMedicineDO.setCode(dict.getCode());
            dictMedicineDO.setDosageForm(dict.getDosageForm());
            dictMedicineDO.setIndication(dict.getIndication());
            dictMedicineDO.setName(dict.getName());
            dictMedicineDO.setPackingSpecification(dict.getPackingSpecification());
            dictMedicineDO.setSequence(dict.getSequence());
            dictMedicineDO.setSpecification(dict.getSpecification());
            dictMedicineDO.setSpellCode(dict.getSpellCode());
            dictMedicineDO.setSubjectCode(dict.getSubjectCode());
            dictMedicineDO.setWbzxCode(dict.getWbzxCode());
            dictMedicineDO.setSaasId(saasId);
            dictMedicineDO.setStorageConditions(dict.getStorageConditions());
            medicineDOList.add(dictMedicineDO);
        });
        //职称字典
        List<DictJobTitleDO> dictJobTitleDOList = dictJobTitleDao.findBySaasId(defaultSaasId);
        List<DictJobTitleDO> jobTitleDOList = new ArrayList<>(dictJobTitleDOList.size());
        dictJobTitleDOList.forEach(dict->{
            DictJobTitleDO jobTitleDO = new DictJobTitleDO();
            jobTitleDO.setSaasId(saasId);
            jobTitleDO.setName(dict.getName());
            jobTitleDO.setCode(dict.getCode());
            jobTitleDO.setCreateTime(new Date());
            jobTitleDOList.add(jobTitleDO);
        });
        //icd10字典
        List<DictIcd10DO> dictIcd10DOList = dictIcd10Dao.findBySaasId(defaultSaasId);
        List<DictIcd10DO> icd10DOList = new ArrayList<>(dictIcd10DOList.size());
        dictIcd10DOList.forEach(dict->{
            DictIcd10DO icd10DO = new DictIcd10DO();
            icd10DO.setSaasId(saasId);
            icd10DO.setName(dict.getName());
            icd10DO.setCode(dict.getCode());
            icd10DO.setCreateTime(new Date());
            icd10DO.setDescription(dict.getDescription());
            icd10DOList.add(icd10DO);
        });
        //健康问题字典
        List<DictHealthProblemDO> dictHealthProblemDOList = dictHealthProblemDao.findBySaasId(defaultSaasId);
        List<DictHealthProblemDO> healthProblemDOList = new ArrayList<>(dictHealthProblemDOList.size());
        dictHealthProblemDOList.forEach(dict->{
            DictHealthProblemDO healthProblemDO = new DictHealthProblemDO();
            healthProblemDO.setSaasId(saasId);
            healthProblemDO.setName(dict.getName());
            healthProblemDO.setCode(dict.getCode());
            healthProblemDO.setCreateTime(new Date());
            healthProblemDO.setDescription(dict.getDescription());
            healthProblemDO.setChronicFlag(dict.getChronicFlag());
            healthProblemDOList.add(healthProblemDO);
        });
        //病种字典
        List<DictDiseaseDO> dictDiseaseDOList = dictDiseaseDao.findBySaasId(defaultSaasId);
        List<DictDiseaseDO> diseaseDOList = new ArrayList<>(dictDiseaseDOList.size());
        dictDiseaseDOList.forEach(dict->{
            DictDiseaseDO diseaseDO = new DictDiseaseDO();
            diseaseDO.setSaasId(saasId);
            diseaseDO.setName(dict.getName());
            diseaseDO.setCode(dict.getCode());
            diseaseDO.setCreateTime(new Date());
            diseaseDOList.add(diseaseDO);
        });
        //科室字典
        List<DictHospitalDeptDO> dictHospitalDeptDOList = dictHospitalDeptDao.findBySaasId(defaultSaasId);
        List<DictHospitalDeptDO> hospitalDeptDOList = new ArrayList<>(dictHospitalDeptDOList.size());
        dictHospitalDeptDOList.forEach(dict->{
            DictHospitalDeptDO deptDO = new DictHospitalDeptDO();
            deptDO.setSaasId(saasId);
            deptDO.setName(dict.getName());
            deptDO.setCode(dict.getCode());
            deptDO.setCreateTime(new Date());
            hospitalDeptDOList.add(deptDO);
        });
        //保存数据
//        systemDictDao.save(dictDOList);
        systemDictEntryDao.save(dictEntryDOList);
        dictMedicineDao.save(medicineDOList);
        dictJobTitleDao.save(jobTitleDOList);
        dictIcd10Dao.save(icd10DOList);
        dictHealthProblemDao.save(healthProblemDOList);
        dictDiseaseDao.save(diseaseDOList);
        dictHospitalDeptDao.save(hospitalDeptDOList);
        baseOrgDao.save(orgDOList);
        return saas;
    }
}

+ 21 - 22
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasTypeDictService.java

@ -38,41 +38,39 @@ public class SaasTypeDictService extends BaseJpaService<SaasTypeDictDO, SaasType
    @Autowired
    private SaasTypeModuleDao saasTypeModuleDao;
    @Transactional
    public SaasTypeDictDO save(SaasTypeDictDO saasTypeDictDO, String saasTypeModuleIds) {
        String saasTypeId;
        if (StringUtils.isEmpty(saasTypeDictDO.getId())) {
            //新增
            saasTypeDictDO.setCode(getNextSaasTypeDictCode());
            saasTypeId = getCode();
        } else {
            //编辑
            saasTypeId = saasTypeDictDO.getId();
        }
        //保存数据
        saasTypeDictDO = saasTypeDictDao.save(saasTypeDictDO);
        String saasTypeId = saasTypeDictDO.getId();
        //根据moduleId获取模块
        String[] ids = saasTypeModuleIds.split(",");
        SaasTypeModuleDO saasTypeModuleDO;
        List<SaasTypeModuleDO> saasDefaultModuleDOS = new ArrayList<>();
        for (String id : ids) {
            ModuleDO moduleDO = moduleDao.findOne(id);
            saasTypeModuleDO = new SaasTypeModuleDO();
            saasTypeModuleDO.setModuleId(id);
            saasTypeModuleDO.setName(moduleDO.getName());
            saasTypeModuleDO.setParentModuleId(moduleDO.getParentId());
            saasTypeModuleDO.setType(moduleDO.getType());
            saasTypeModuleDO.setStatus(moduleDO.getStatus());
            saasTypeModuleDO.setIsEnd(moduleDO.getIsEnd());
            saasTypeModuleDO.setIsMust(moduleDO.getIsMust());
            saasTypeModuleDO.setUrl(moduleDO.getUrl());
            saasTypeModuleDO.setRemark(moduleDO.getRemark());
            saasTypeModuleDO.setSaasTypeId(saasTypeId);
            saasDefaultModuleDOS.add(saasTypeModuleDO);
            if(!StringUtils.isEmpty(id)){
                ModuleDO moduleDO = moduleDao.findOne(id);
                saasTypeModuleDO = new SaasTypeModuleDO();
                saasTypeModuleDO.setModuleId(id);
                saasTypeModuleDO.setName(moduleDO.getName());
                saasTypeModuleDO.setParentModuleId(moduleDO.getParentId());
                saasTypeModuleDO.setType(moduleDO.getType());
                saasTypeModuleDO.setStatus(moduleDO.getStatus());
                saasTypeModuleDO.setIsEnd(moduleDO.getIsEnd());
                saasTypeModuleDO.setIsMust(moduleDO.getIsMust());
                saasTypeModuleDO.setUrl(moduleDO.getUrl());
                saasTypeModuleDO.setRemark(moduleDO.getRemark());
                saasTypeModuleDO.setSaasTypeId(saasTypeId);
                saasDefaultModuleDOS.add(saasTypeModuleDO);
            }
        }
        //初始化租户默认模块
        saasTypeModuleDao.save(saasDefaultModuleDOS);
        //保存数据
        SaasTypeDictDO saasTypeDictDO1 = saasTypeDictDao.save(saasTypeDictDO);
        return saasTypeDictDO1;
        return saasTypeDictDO;
    }
    /**
@ -103,6 +101,7 @@ public class SaasTypeDictService extends BaseJpaService<SaasTypeDictDO, SaasType
    public SaasTypeDictDO findById(String id) {
        return saasTypeDictDao.findById(id);
    }
    public SaasTypeDictDO findByCode(Integer code) {
        return saasTypeDictDao.findByCode(code);
    }