瀏覽代碼

Merge branch '2.0' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into 2.0

wangzhinan 2 年之前
父節點
當前提交
3aac7b3a6f

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceDO.java

@ -18,6 +18,7 @@ public class BaseProcessGuidanceDO extends UuidIdentityEntityWithCreateTime {
    private String name;
    private Integer status;//状态(1生效 0失效)
    private Integer isAllDept;//是否全部科室 1是0否
    private String statusName;
    private List<BaseProcessGuidanceDeptDO> deptDOList;//关联部门
@ -41,6 +42,15 @@ public class BaseProcessGuidanceDO extends UuidIdentityEntityWithCreateTime {
        this.status = status;
    }
    @Column(name = "is_all_dept")
    public Integer getIsAllDept() {
        return isAllDept;
    }
    public void setIsAllDept(Integer isAllDept) {
        this.isAllDept = isAllDept;
    }
    @Transient
    public String getStatusName() {
        return statusName;

+ 9 - 9
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidancePresetDO.java

@ -17,7 +17,7 @@ public class BaseProcessGuidancePresetDO extends UuidIdentityEntityWithCreateTim
    private String processGuidanceId;//流程指引id
    private String processCode;//步骤code =节点id(nodeId)
    private String processName;//步骤名称
//    private Integer sortNo;//步骤排序
    private Integer sortNo;//步骤排序
    private Integer isOptional;//是否可选项(1必要项,2可选项 )
    @Column(name = "process_guidance_id")
@ -47,14 +47,14 @@ public class BaseProcessGuidancePresetDO extends UuidIdentityEntityWithCreateTim
        this.processName = processName;
    }
//    @Column(name = "sort_no")
//    public Integer getSortNo() {
//        return sortNo;
//    }
//
//    public void setSortNo(Integer sortNo) {
//        this.sortNo = sortNo;
//    }
    @Column(name = "sort_no")
    public Integer getSortNo() {
        return sortNo;
    }
    public void setSortNo(Integer sortNo) {
        this.sortNo = sortNo;
    }
    @Column(name = "is_optional")
    public Integer getIsOptional() {

+ 20 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidancePushLogDO.java

@ -22,6 +22,7 @@ public class BaseProcessGuidancePushLogDO extends UuidIdentityEntityWithCreateTi
    private Date sendTime;//发送时间
    private Integer sendType;//发送类型1wx模板,2短信
    private Integer userType;//用户类型1居民 2医生
    private Integer status;//状态1成功 2失败
    private String userId;//对象id
    private String userName;//送对象姓名
    private String mobile;//手机号
@ -30,6 +31,7 @@ public class BaseProcessGuidancePushLogDO extends UuidIdentityEntityWithCreateTi
    private String sendTypeName;//发送类型
    private String userTypeName;//用户类型
    private String statusName;//状态
    @Column(name = "node_id")
    public String getNodeId() {
@ -147,4 +149,22 @@ public class BaseProcessGuidancePushLogDO extends UuidIdentityEntityWithCreateTi
    public void setUserTypeName(String userTypeName) {
        this.userTypeName = userTypeName;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
}

+ 2 - 9
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/patient/BasePatientEndpoint.java

@ -16,7 +16,6 @@ import com.yihu.jw.entity.base.servicePackage.ServicePackageRecordDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.entity.care.archive.ArchiveDO;
import com.yihu.jw.entity.care.device.DeviceDetail;
import com.yihu.jw.entity.care.label.WlyyPatientLabelDO;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.service.BasePatientService;
@ -24,22 +23,15 @@ import com.yihu.jw.restmodel.base.patient.BasePatientVO;
import com.yihu.jw.restmodel.web.*;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.encrypt.MD5;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jxl.Sheet;
import jxl.Workbook;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@ -156,10 +148,11 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
            @RequestParam(value = "size") int size) {
        try {
            return basePatientService.pageByCondition(name, archiveType , archiveStatus, page, size);
        }catch (Exception e){
            e.printStackTrace();
            return PageEnvelop.getError(e.getMessage(),-1);
        }

+ 82 - 158
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/processGuidance/BaseProcessGuidanceEndpoint.java

@ -15,10 +15,12 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
/**
@ -51,6 +53,8 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
    private BaseProcessGuidancePushLogService processGuidancePushLogService;
    @Resource
    private BaseProcessGuidancePresetDao processGuidancePresetDao;
    @Resource
    private JdbcTemplate jdbcTemplate;
    @PostMapping(value = "saveProcessGuidance")
    @ApiOperation(value = "保存或更新流程")
@ -58,56 +62,7 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
                                              @RequestParam(value = "jsonData") String jsonData) {
        try {
            BaseProcessGuidanceDO guidanceDO = toEntity(jsonData, BaseProcessGuidanceDO.class);
            String guidanceId = guidanceDO.getId();
            List<BaseProcessGuidanceDeptDO> deptDOList = guidanceDO.getDeptDOList();
            List<BaseProcessGuidancePresetDO> presetDOList = guidanceDO.getPresetDOList();
            if(StringUtils.isNotBlank(guidanceId)){
                //更新的时候先删除关联
                processGuidanceDeptDao.deleteByProcessGuidanceId(guidanceId);
                processGuidancePresetDao.deleteByProcessGuidanceId(guidanceId);
                BaseProcessGuidanceDO old = processGuidanceDao.findById(guidanceId).orElse(null);
                if(old==null){
                    return ObjEnvelop.getError("参数错误,id不存在");
                }
                old.setStatus(guidanceDO.getStatus());
                old.setName(guidanceDO.getName());
                guidanceDO = processGuidanceDao.save(old);
                if(deptDOList!=null&&deptDOList.size()>0){
                    deptDOList.forEach(one->{
                        one.setProcessGuidanceId(guidanceId);
                    });
                    processGuidanceDeptDao.saveAll(deptDOList);
                }
                if(presetDOList!=null&&presetDOList.size()>0){
                    presetDOList.forEach(one->{
                        one.setProcessGuidanceId(guidanceId);
                        one.setCreateTime(new Date());
                    });
                    processGuidancePresetDao.saveAll(presetDOList);
                }
            }else{
                guidanceDO.setCreateTime(new Date());
                guidanceDO = processGuidanceService.save(guidanceDO);
                final String guidanceDOId = guidanceDO.getId();
                if(deptDOList!=null&&deptDOList.size()>0){
                    deptDOList.forEach(one->{
                        one.setProcessGuidanceId(guidanceDOId);
                    });
                    processGuidanceDeptDao.saveAll(deptDOList);
                }
                if(presetDOList!=null&&presetDOList.size()>0){
                    presetDOList.forEach(one->{
                        one.setProcessGuidanceId(guidanceDOId);
                        one.setCreateTime(new Date());
                    });
                    processGuidancePresetDao.saveAll(presetDOList);
                }
            }
            return success(guidanceDO);
            return processGuidanceService.saveProcessGuidance(guidanceDO);
        }catch (Exception e){
            e.printStackTrace();
        }
@ -126,22 +81,32 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<BaseProcessGuidancePushLogDO> processGuidancePushLogDOS = processGuidancePushLogService.search(fields, filters, sorts, page, size);
        processGuidancePushLogDOS.forEach(one->{
            if(one.getSendType()==1){
                one.setSendTypeName("wx模板");
            }else {
                one.setSendTypeName("短信");
            }
            if(one.getUserType()==1){
                one.setUserTypeName("居民");
            }else {
                one.setUserTypeName("医生");
            }
        });
        int count = (int) processGuidancePushLogService.getCount(filters);
        return success(processGuidancePushLogDOS, count, page, size, BaseProcessGuidancePushLogDO.class);
            @RequestParam(value = "size") int size){
        try {
            List<BaseProcessGuidancePushLogDO> processGuidancePushLogDOS = processGuidancePushLogService.search(fields, filters, sorts, page, size);
            processGuidancePushLogDOS.forEach(one->{
                if(one.getSendType()==1){
                    one.setSendTypeName("wx模板");
                }else {
                    one.setSendTypeName("短信");
                }
                if(one.getUserType()==1){
                    one.setUserTypeName("居民");
                }else {
                    one.setUserTypeName("医生");
                }
                if(one.getStatus()==1){
                    one.setStatusName("成功");
                }else {
                    one.setStatusName("失败");
                }
            });
            int count = (int) processGuidancePushLogService.getCount(filters);
            return success(processGuidancePushLogDOS, count, page, size, BaseProcessGuidancePushLogDO.class);
        }catch (Exception e){
            e.printStackTrace();
        }
        return PageEnvelop.getError("查询失败");
    }
    @PostMapping(value = "saveProcessGuidanceNodeSms")
@ -150,24 +115,7 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
                                                @RequestParam(value = "jsonData") String jsonData) {
        try {
            BaseProcessGuidanceNodeSmsDO nodeSmsDO = toEntity(jsonData, BaseProcessGuidanceNodeSmsDO.class);
            if(StringUtils.isBlank(nodeSmsDO.getNodeId())){
                return ObjEnvelop.getError("参数错误,节点id不能为空");
            }
            String nodeSmsDOId = nodeSmsDO.getId();
            if(StringUtils.isNotBlank(nodeSmsDOId)){
                BaseProcessGuidanceNodeSmsDO oldNodeSms = processGuidanceNodeSmsDao.findById(nodeSmsDOId).orElse(null);
                if(oldNodeSms==null){
                    return ObjEnvelop.getError("参数错误,id不存在");
                }
                oldNodeSms.setContent(nodeSmsDO.getContent());
                oldNodeSms.setIsPush(nodeSmsDO.getIsPush());
                oldNodeSms.setTemplateId(nodeSmsDO.getTemplateId());
                nodeSmsDO = processGuidanceNodeSmsDao.save(oldNodeSms);
            }else{
                nodeSmsDO = processGuidanceNodeSmsDao.save(nodeSmsDO);
            }
            return success(nodeSmsDO);
            return processGuidanceService.saveProcessGuidanceNodeSms(nodeSmsDO);
        }catch (Exception e){
            e.printStackTrace();
        }
@ -183,22 +131,7 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
            if(StringUtils.isBlank(nodeWxDO.getNodeId())){
                return ObjEnvelop.getError("参数错误,节点id不能为空");
            }
            String nodeWxId = nodeWxDO.getId();
            if(StringUtils.isNotBlank(nodeWxId)){
                BaseProcessGuidanceNodeWxDO oldNodeWx = processGuidanceNodeWxDao.findById(nodeWxId).orElse(null);
                if(oldNodeWx==null){
                    return ObjEnvelop.getError("参数错误,id不存在");
                }
                oldNodeWx.setIsPush(nodeWxDO.getIsPush());
                oldNodeWx.setPreview(nodeWxDO.getPreview());
                oldNodeWx.setTemplateId(nodeWxDO.getTemplateId());
                oldNodeWx.setTemplateName(nodeWxDO.getTemplateName());
                nodeWxDO = processGuidanceNodeWxDao.save(oldNodeWx);
            }else{
                nodeWxDO = processGuidanceNodeWxDao.save(nodeWxDO);
            }
            return success(nodeWxDO);
            return processGuidanceService.saveProcessGuidanceNodeWx(nodeWxDO);
        }catch (Exception e){
            e.printStackTrace();
        }
@ -223,44 +156,7 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
                              @RequestParam(value = "jsonData") String jsonData) {
        try {
            BaseProcessGuidanceNodeDO nodeDO = toEntity(jsonData, BaseProcessGuidanceNodeDO.class);
            String nodeId = nodeDO.getId();
            List<BaseProcessGuidanceNodeAppDO> nodeAppDOList = nodeDO.getNodeAppDOList();
            if(StringUtils.isNotBlank(nodeId)){
                //更新的时候先删除关联应用
                processGuidanceNodeAppDao.deleteByNodeId(nodeId);
                BaseProcessGuidanceNodeDO oldNode = processGuidanceNodeDao.findById(nodeId).orElse(null);
                if(oldNode==null){
                    return ObjEnvelop.getError("参数错误,id不存在");
                }
                oldNode.setStatus(nodeDO.getStatus());
                oldNode.setNodeName(nodeDO.getNodeName());
                oldNode.setNodeCode(nodeDO.getNodeCode());
                oldNode.setNodeDescribe(nodeDO.getNodeDescribe());
                oldNode.setNotice(nodeDO.getNotice());
                nodeDO = processGuidanceNodeDao.save(oldNode);
                if(nodeAppDOList!=null&&nodeAppDOList.size()>0){
                    nodeAppDOList.forEach(one->{
                        one.setCreateTime(new Date());
                        one.setNodeId(nodeId);
                    });
                    processGuidanceNodeAppDao.saveAll(nodeAppDOList);
                }
            }else{
                nodeDO.setCreateTime(new Date());
                nodeDO = processGuidanceNodeDao.save(nodeDO);
                final String nodeId1 = nodeDO.getId();
                if(nodeAppDOList!=null&&nodeAppDOList.size()>0){
                    nodeAppDOList.forEach(one->{
                        one.setCreateTime(new Date());
                        one.setNodeId(nodeId1);
                    });
                    processGuidanceNodeAppDao.saveAll(nodeAppDOList);
                }
            }
            return success(nodeDO);
            return processGuidanceService.saveProcessGuidanceNode(nodeDO);
        }catch (Exception e){
            e.printStackTrace();
        }
@ -364,24 +260,57 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "deptName", value = "部门名称")
            @RequestParam(value = "deptName", required = false) String deptName,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<BaseProcessGuidanceDO> processGuidanceDOList = processGuidanceService.search(fields, filters, sorts, page, size);
        processGuidanceDOList.forEach(one->{
            if(one.getStatus()==1){
                one.setStatusName("生效");
            }else {
                one.setStatusName("失效");
            @RequestParam(value = "size") int size){
        try {
            if(StringUtils.isBlank(deptName)){
                List<BaseProcessGuidanceDO> processGuidanceDOList = processGuidanceService.search(fields, filters, sorts, page, size);
                processGuidanceDOList.forEach(one->{
                    if(one.getStatus()==1){
                        one.setStatusName("生效");
                    }else {
                        one.setStatusName("失效");
                    }
                    List<BaseProcessGuidanceDeptDO> deptDOList = processGuidanceDeptDao.findByProcessGuidanceId(one.getId());
                    one.setDeptDOList(deptDOList);
                });
                int count = (int) processGuidanceService.getCount(filters);
                return success(processGuidanceDOList, count, page, size, BaseProcessGuidanceDO.class);
            }
            List<BaseProcessGuidanceDeptDO> deptDOList = processGuidanceDeptDao.findByProcessGuidanceId(one.getId());
            one.setDeptDOList(deptDOList);
        });
        int count = (int) processGuidanceService.getCount(filters);
        return success(processGuidanceDOList, count, page, size, BaseProcessGuidanceDO.class);
            String sql = "SELECT DISTINCT g.* ";
            String sqlCount = "SELECT count(DISTINCT g.id) ";
            String filter = " FROM base_process_guidance g " +
                    "LEFT JOIN base_process_guidance_dept d on g.id = d.process_guidance_id " +
                    "WHERE (g.is_all_dept = 1 or d.dept_name like '%"+deptName+"%') ";
            if(StringUtils.isNotBlank(filters)){
                filter += " and g.name like '%"+filters.split("\\?")[1]+"%'";
            }
            String limit = " limit "+(page-1)*size+","+size;
            Integer count = jdbcTemplate.queryForObject(sqlCount + filter,Integer.class);
            List<BaseProcessGuidanceDO> processGuidanceDOList = new ArrayList<>();
            if(count>0){
                processGuidanceDOList = jdbcTemplate.query(sql+filter+limit,new BeanPropertyRowMapper<>(BaseProcessGuidanceDO.class));
                processGuidanceDOList.forEach(one->{
                    if(one.getStatus()==1){
                        one.setStatusName("生效");
                    }else {
                        one.setStatusName("失效");
                    }
                    List<BaseProcessGuidanceDeptDO> deptDOList = processGuidanceDeptDao.findByProcessGuidanceId(one.getId());
                    one.setDeptDOList(deptDOList);
                });
            }
            return success(processGuidanceDOList, count, page, size, BaseProcessGuidanceDO.class);
        }catch (Exception e){
            e.printStackTrace();
        }
        return PageEnvelop.getError("查询失败");
    }
    @GetMapping(value = "getProcessGuidanceById")
@ -418,10 +347,7 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            processGuidanceDeptDao.deleteByProcessGuidanceId(id);
            processGuidancePresetDao.deleteByProcessGuidanceId(id);
            processGuidanceDao.deleteById(id);
            return success("删除成功");
            return processGuidanceService.delProcessGuidance(id);
        }catch (Exception e){
            e.printStackTrace();
        }
@ -434,9 +360,7 @@ public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            processGuidanceNodeAppDao.deleteByNodeId(id);
            processGuidanceNodeDao.deleteById(id);
            return success("删除成功");
            return processGuidanceService.delProcessGuidanceNode(id);
        }catch (Exception e){
            e.printStackTrace();
        }

+ 5 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/DictHospitalDeptService.java

@ -437,9 +437,11 @@ public class DictHospitalDeptService extends BaseJpaService<DictHospitalDeptDO,
       List<Map<String,Object>> listCount = hibenateUtils.createSQLQuery(sql);
       if (sysDictDOS!=null&&list.size()>0){
           for (Map<String,Object> map:list){
               for (WlyyHospitalSysDictDO sysDictDO:sysDictDOS){
                   if (map.get("consultDeptFlag").toString().equalsIgnoreCase(sysDictDO.getDictCode())){
                       map.put("consultDeptFlagName",sysDictDO.getDictValue());
               if(map.get("consultDeptFlag")!=null){
                   for (WlyyHospitalSysDictDO sysDictDO:sysDictDOS){
                       if (map.get("consultDeptFlag").toString().equalsIgnoreCase(sysDictDO.getDictCode())){
                           map.put("consultDeptFlagName",sysDictDO.getDictValue());
                       }
                   }
               }
           }

+ 179 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceService.java

@ -1,11 +1,17 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDO;
import com.yihu.jw.base.dao.processGuidance.*;
import com.yihu.jw.entity.base.processGuidance.*;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/10/8.
@ -15,7 +21,178 @@ public class BaseProcessGuidanceService extends BaseJpaService<BaseProcessGuidan
    @Resource
    private BaseProcessGuidanceDao processGuidanceDao;
    @Resource
    private BaseProcessGuidanceDeptDao processGuidanceDeptDao;
    @Resource
    private BaseProcessGuidancePresetDao processGuidancePresetDao;
    @Resource
    private BaseProcessGuidanceNodeSmsDao processGuidanceNodeSmsDao;
    @Resource
    private BaseProcessGuidanceNodeWxDao processGuidanceNodeWxDao;
    @Resource
    private BaseProcessGuidanceNodeAppDao processGuidanceNodeAppDao;
    @Resource
    private BaseProcessGuidanceNodeDao processGuidanceNodeDao;
    @Transactional(rollbackFor = Exception.class)
    public Envelop delProcessGuidanceNode(String id) {
        processGuidanceNodeAppDao.deleteByNodeId(id);
        processGuidanceNodeDao.deleteById(id);
        return Envelop.getSuccess("删除成功");
    }
    @Transactional(rollbackFor = Exception.class)
    public Envelop delProcessGuidance(String id) {
        processGuidanceDeptDao.deleteByProcessGuidanceId(id);
        processGuidancePresetDao.deleteByProcessGuidanceId(id);
        processGuidanceDao.deleteById(id);
        return Envelop.getSuccess("删除成功");
    }
    @Transactional(rollbackFor = Exception.class)
    public ObjEnvelop saveProcessGuidanceNode(BaseProcessGuidanceNodeDO nodeDO) {
        String nodeId = nodeDO.getId();
        List<BaseProcessGuidanceNodeAppDO> nodeAppDOList = nodeDO.getNodeAppDOList();
        if(StringUtils.isNotBlank(nodeId)){
            //更新的时候先删除关联应用
            processGuidanceNodeAppDao.deleteByNodeId(nodeId);
            BaseProcessGuidanceNodeDO oldNode = processGuidanceNodeDao.findById(nodeId).orElse(null);
            if(oldNode==null){
                return ObjEnvelop.getError("参数错误,id不存在");
            }
            oldNode.setStatus(nodeDO.getStatus());
            oldNode.setNodeName(nodeDO.getNodeName());
            oldNode.setNodeCode(nodeDO.getNodeCode());
            oldNode.setNodeDescribe(nodeDO.getNodeDescribe());
            oldNode.setNotice(nodeDO.getNotice());
            nodeDO = processGuidanceNodeDao.save(oldNode);
            if(nodeAppDOList!=null&&nodeAppDOList.size()>0){
                nodeAppDOList.forEach(one->{
                    one.setCreateTime(new Date());
                    one.setNodeId(nodeId);
                });
                nodeAppDOList = processGuidanceNodeAppDao.saveAll(nodeAppDOList);
                nodeDO.setNodeAppDOList(nodeAppDOList);
            }
        }else{
            nodeDO.setCreateTime(new Date());
            nodeDO = processGuidanceNodeDao.save(nodeDO);
            final String nodeId1 = nodeDO.getId();
            if(nodeAppDOList!=null&&nodeAppDOList.size()>0){
                nodeAppDOList.forEach(one->{
                    one.setCreateTime(new Date());
                    one.setNodeId(nodeId1);
                });
                nodeAppDOList = processGuidanceNodeAppDao.saveAll(nodeAppDOList);
                nodeDO.setNodeAppDOList(nodeAppDOList);
            }
        }
        return ObjEnvelop.getSuccess("保存成功",nodeDO);
    }
    @Transactional(rollbackFor = Exception.class)
    public ObjEnvelop saveProcessGuidanceNodeWx(BaseProcessGuidanceNodeWxDO nodeWxDO) {
        String nodeWxId = nodeWxDO.getId();
        if(StringUtils.isNotBlank(nodeWxId)){
            BaseProcessGuidanceNodeWxDO oldNodeWx = processGuidanceNodeWxDao.findById(nodeWxId).orElse(null);
            if(oldNodeWx==null){
                return ObjEnvelop.getError("参数错误,id不存在");
            }
            oldNodeWx.setIsPush(nodeWxDO.getIsPush());
            oldNodeWx.setPreview(nodeWxDO.getPreview());
            oldNodeWx.setTemplateId(nodeWxDO.getTemplateId());
            oldNodeWx.setTemplateName(nodeWxDO.getTemplateName());
            nodeWxDO = processGuidanceNodeWxDao.save(oldNodeWx);
        }else{
            nodeWxDO = processGuidanceNodeWxDao.save(nodeWxDO);
        }
        return ObjEnvelop.getSuccess("保存成功",nodeWxDO);
    }
    @Transactional(rollbackFor = Exception.class)
    public ObjEnvelop saveProcessGuidanceNodeSms(BaseProcessGuidanceNodeSmsDO nodeSmsDO) {
        if(StringUtils.isBlank(nodeSmsDO.getNodeId())){
            return ObjEnvelop.getError("参数错误,节点id不能为空");
        }
        String nodeSmsDOId = nodeSmsDO.getId();
        if(StringUtils.isNotBlank(nodeSmsDOId)){
            BaseProcessGuidanceNodeSmsDO oldNodeSms = processGuidanceNodeSmsDao.findById(nodeSmsDOId).orElse(null);
            if(oldNodeSms==null){
                return ObjEnvelop.getError("参数错误,id不存在");
            }
            oldNodeSms.setContent(nodeSmsDO.getContent());
            oldNodeSms.setIsPush(nodeSmsDO.getIsPush());
            oldNodeSms.setTemplateId(nodeSmsDO.getTemplateId());
            nodeSmsDO = processGuidanceNodeSmsDao.save(oldNodeSms);
        }else{
            nodeSmsDO = processGuidanceNodeSmsDao.save(nodeSmsDO);
        }
        return ObjEnvelop.getSuccess("保存成功",nodeSmsDO);
    }
    @Transactional(rollbackFor = Exception.class)
    public ObjEnvelop saveProcessGuidance(BaseProcessGuidanceDO guidanceDO) {
        String guidanceId = guidanceDO.getId();
        List<BaseProcessGuidanceDeptDO> deptDOList = guidanceDO.getDeptDOList();
        List<BaseProcessGuidancePresetDO> presetDOList = guidanceDO.getPresetDOList();
        if(StringUtils.isNotBlank(guidanceId)){
            BaseProcessGuidanceDO old = processGuidanceDao.findById(guidanceId).orElse(null);
            if(old==null){
                return ObjEnvelop.getError("参数错误,id不存在");
            }
            //更新的时候先删除关联
            processGuidanceDeptDao.deleteByProcessGuidanceId(guidanceId);
            processGuidancePresetDao.deleteByProcessGuidanceId(guidanceId);
            old.setStatus(guidanceDO.getStatus());
            old.setName(guidanceDO.getName());
            old.setIsAllDept(guidanceDO.getIsAllDept());
            guidanceDO = processGuidanceDao.save(old);
            if(deptDOList!=null&&deptDOList.size()>0){
                deptDOList.forEach(one->{
                    one.setProcessGuidanceId(guidanceId);
                });
                deptDOList = processGuidanceDeptDao.saveAll(deptDOList);
                guidanceDO.setDeptDOList(deptDOList);
            }
            if(presetDOList!=null&&presetDOList.size()>0){
                presetDOList.forEach(one->{
                    one.setProcessGuidanceId(guidanceId);
                    one.setCreateTime(new Date());
                });
                presetDOList = processGuidancePresetDao.saveAll(presetDOList);
                guidanceDO.setPresetDOList(presetDOList);
            }
        }else{
            guidanceDO.setCreateTime(new Date());
            guidanceDO = processGuidanceDao.save(guidanceDO);
            final String guidanceDOId = guidanceDO.getId();
            if(deptDOList!=null&&deptDOList.size()>0){
                deptDOList.forEach(one->{
                    one.setProcessGuidanceId(guidanceDOId);
                });
                deptDOList = processGuidanceDeptDao.saveAll(deptDOList);
                guidanceDO.setDeptDOList(deptDOList);
            }
            if(presetDOList!=null&&presetDOList.size()>0){
                presetDOList.forEach(one->{
                    one.setProcessGuidanceId(guidanceDOId);
                    one.setCreateTime(new Date());
                });
                presetDOList = processGuidancePresetDao.saveAll(presetDOList);
                guidanceDO.setPresetDOList(presetDOList);
            }
        }
        return ObjEnvelop.getSuccess("保存成功",guidanceDO);
    }
}