Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/jiwei/wlyy2.0 into dev

yeshijie 6 years ago
parent
commit
be911d2287

+ 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;
    }
}

+ 8 - 2
svr/svr-base/pom.xml

@ -128,12 +128,18 @@
            <groupId>io.github.swagger2markup</groupId>
            <artifactId>swagger2markup</artifactId>
            <version>1.3.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>mailapi</artifactId>
                    <groupId>javax.mail</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 发送邮件 -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <dependency>

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

@ -12,4 +12,5 @@ public interface BaseEmailTemplateConfigDao extends PagingAndSortingRepository<B
    BaseEmailTemplateConfigDO findById(String id);
    BaseEmailTemplateConfigDO findByTemplateName(String templateName);
    BaseEmailTemplateConfigDO findByCode(String code);
}

+ 33 - 27
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);
@ -132,13 +131,13 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
            s.append("saasName?" + saasName + " g1;");
        }
        if (StringUtils.isNotBlank(provinceCode)) {
            s.append("provinceCode=" + provinceCode);
            s.append("provinceCode=" + provinceCode + ";");
        }
        if (StringUtils.isNotBlank(cityCode)) {
            s.append("cityCode=" + cityCode);
            s.append("cityCode=" + cityCode + ";");
        }
        if (StringUtils.isNotBlank(year)) {
            s.append("year=" + year);
            s.append("year=" + year + ";");
        }
        //时间(最近时间排最前)>租户创建时间(最新创建租户排最前)
        String sorts = "-createTime,-saasCreateTime";
@ -210,6 +209,8 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
                }
            }
        }
        basePopulation.setDmNum(null == basePopulation.getDmNum() ? 0 : basePopulation.getDmNum());
        basePopulation.setHbpNum(null == basePopulation.getHbpNum() ? 0 : basePopulation.getHbpNum());
        //更新慢病总人数
        basePopulation.setNcdNum(basePopulation.getHbpNum() + basePopulation.getDmNum());
        return basePopulation;
@ -274,46 +275,53 @@ 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());
            Set<String> populationNameAndYear = new HashSet<String>(basePopulationService.getFacilityCodeByServerType());
            PopulationMsg model;
            List saveLs = new ArrayList<>();
            if (correctLs.size() > 0) {
                for (int i = 0; i < correctLs.size(); i++) {
                    model = correctLs.get(i);
                    Map<Boolean,PopulationMsg> map=validate(model,populationNameAndYear);
                    if (null==map.get(true)) {
                        errorLs.add(model);
                    Map<Boolean, PopulationMsg> map = validate(model, populationNameAndYear);
                    if (null == map.get(true)) {
//                        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);
                result.put("errorLs", errorLs);
                return success("导入成功!", result);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return failed("导入异常,请检查导入文件格式"+e.getMessage());
            return failed("导入异常,请检查导入文件格式" + e.getMessage());
        }
        return failed("导入失败");
    }
    private Map<Boolean,PopulationMsg> validate(PopulationMsg model, Set<String> populationNameAndYear) throws Exception{
        Map<Boolean,PopulationMsg> msgMap =new HashMap<>();
    private Map<Boolean, PopulationMsg> validate(PopulationMsg model, Set<String> populationNameAndYear) throws Exception {
        Map<Boolean, PopulationMsg> msgMap = new HashMap<>();
        Boolean rs = true;
        //验证租户是否存在
        SaasDO saasDO = saasService.findByName(model.getSaasName());
        String nameAndYear=model.getSaasName()+model.getYear();
        String nameAndYear = model.getSaasName() + model.getYear();
        //验证租户+年份的人口基数是否存在
        if (populationNameAndYear.contains(nameAndYear)) {
            model.addErrorMsg("saasName", "已添加"+model.getYear()+model.getSaasName()+"的基础人口信息,请直接修改即可!");
            model.addErrorMsg("saasName", "已添加" + model.getYear() + model.getSaasName() + "的基础人口信息,请直接修改即可!");
            rs = false;
        }
        if (null==saasDO) {
        if (null == saasDO) {
            model.addErrorMsg("saasName", "租户不存在,请核对!");
            rs = false;
        }else {
        } else {
            model.setSaasId(saasDO.getId());
            model.setSaasCreateTime(saasDO.getCreateTime());
            String areaCode = saasDO.getAreaNumber();
@ -352,11 +360,9 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
                }
            }
        }
        msgMap.put(rs,model);
        msgMap.put(rs, model);
        return msgMap;
    }
}

+ 58 - 29
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;
@ -21,8 +23,10 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.mail.MailException;
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,6 +49,8 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private ErrorCodeUtil errorCodeUtil;
    @Autowired
    private BaseEmailTemplateConfigService baseEmailTemplateConfigService;
    @Autowired
    JavaMailSender jms;
    @Value("${spring.mail.username}")
    private String username;
@ -93,6 +99,7 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
        return success("创建成功");
    }
    @PostMapping(value = BaseRequestMapping.Saas.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
@ -175,50 +182,72 @@ 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("操作成功");
        return send(saasDO);
    }
    @GetMapping("/sendEmail")
    @ApiOperation(value = "邮件发送")
    public void send() throws Exception {
        //建立邮件消息
        SimpleMailMessage mainMessage = new SimpleMailMessage();
        //发送者
        mainMessage.setFrom(username);
        //接收者
        mainMessage.setTo("763558454@qq.com");
        //发送的标题
        mainMessage.setSubject("租户审核");
        //发送的内容
        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";
    public ObjEnvelop<SaasDO> send(SaasDO saasDO) {
        try {
            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.name());
            if (null == baseEmailTemplateConfigDO) {
                failed(status.name() + "邮件模板不存在!");
            }
            //建立邮件消息
            SimpleMailMessage mainMessage = new SimpleMailMessage();
            //发送者
            mainMessage.setFrom(username);
            //接收者
//            mainMessage.setTo("763558454@qq.com");
            mainMessage.setTo(saasDO.getEmail());
            //发送的标题
            mainMessage.setSubject(baseEmailTemplateConfigDO.getTemplateName());
            //发送的内容
            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");
            }
            content.append(baseEmailTemplateConfigDO.getKeyword5() + baseEmailTemplateConfigDO.getUrl() + "\n");
            content.append(baseEmailTemplateConfigDO.getRemark());
            mainMessage.setText(content.toString());
            jms.send(mainMessage);
            //发送成功后,初始化租户信息
            saasDO = saasService.saasAudit(saasDO, userDO);
        } catch (MailException e) {
            e.printStackTrace();
            return success("审核完成", saasDO);
        }
        mainMessage.setText(content);
        jms.send(mainMessage);
        return success("审核完成", saasDO);
    }
}

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

@ -44,7 +44,7 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private SaasTypeModuleService saasTypeModuleService;
    @PostMapping(value = BaseRequestMapping.SaasTypeDict.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = BaseRequestMapping.SaasTypeDict.CREATE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<SaasTypeDictVO> create(
            @ApiParam(name = "saasTypeDictJson", value = "saas类型Json数据")
@ -53,6 +53,7 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "saasTypeDefaultModuleIds", required = true) String saasTypeDefaultModuleIds) throws Exception {
        SaasTypeDictDO saasTypeDictDO = toEntity(saasTypeDictJson, SaasTypeDictDO.class);
        //名称重复判断
        List<SaasTypeDictDO> saasTypeDictDOList = saasTypeDictService.findByField("name", saasTypeDictDO.getName());
        if (null != saasTypeDictDOList && saasTypeDictDOList.size() > 0) {
            return failed("租户类型名称重复!", ObjEnvelop.class);
@ -62,7 +63,7 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
    }
    @PostMapping(value = BaseRequestMapping.SaasTypeDict.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = BaseRequestMapping.SaasTypeDict.UPDATE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<SaasTypeDictVO> update(
            @ApiParam(name = "saasTypeDictJson", value = "saas类型Json数据")
@ -157,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";
@ -169,7 +173,7 @@ public class SaasTypeDictEndpoint extends EnvelopRestEndpoint {
        List<ModuleVO> moduleVOs = convertToModels(modules, new ArrayList<>(modules.size()), ModuleVO.class);
        moduleVOs = moduleVOs.stream()
                .filter(module -> {
                    if (CommonContant.IS_MUST.equals(module.getIsMust())) {
                    if (CommonContant.IS_MUST.equals(String.valueOf(module.getIsMust()))) {
                        //是否选中(0-表示未选,1-表示已选)
                        module.setIsCheck(1);
                    } else {

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/population/BasePopulationService.java

@ -63,12 +63,12 @@ public class BasePopulationService extends BaseJpaService<BasePopulationDO, Base
            basePopulationDO.setRegisPopulationNum(populationMsg.getRegisPopulationNum());
            basePopulationDO.setPopulationNum(populationMsg.getPopulationNum());
            //糖尿病人数
            basePopulationDO.setDmNum(populationMsg.getDmNum());
            basePopulationDO.setDmNum(null == populationMsg.getDmNum() ? 0 : populationMsg.getDmNum());
            //高血压人数
            basePopulationDO.setHbpNum(populationMsg.getHbpNum());
            basePopulationDO.setHbpNum(null == populationMsg.getHbpNum() ? 0 : populationMsg.getHbpNum());
            basePopulationDO.setTaskNum(populationMsg.getTaskNum());
            //慢病人数
            basePopulationDO.setNcdNum(populationMsg.getHbpNum() + populationMsg.getDmNum());
            basePopulationDO.setNcdNum(basePopulationDO.getHbpNum() + basePopulationDO.getDmNum());
            corrects.add(basePopulationDO);
            if (corrects.size() > 100) {
                basePopulationDao.save(corrects);

+ 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

@ -302,4 +302,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);
    }

+ 3 - 3
svr/svr-base/src/main/resources/application.yml

@ -81,15 +81,15 @@ spring:
#    base-url: http://localhost:9411 #日志追踪的地址
  mail:
    default-encoding: UTF-8
    host: smtp.qq.com
    host: smtp.163.com
#发送者的邮箱密码
    password: lcmlpoaqitujbfcg
    password: xmijk181016jkzl
#端口
    port: 25
#协议
    protocol: smtp
#发送者的邮箱账号
    username: 763558454@qq.com
    username: i_jiankang@163.com
    properties.mail.smtp.auth: true
    properties.mail.smtp.starttls.enable: true
    properties.mail.smtp.starttls.required: true