浏览代码

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

wangzhinan 2 年之前
父节点
当前提交
11e6c73aec
共有 35 个文件被更改,包括 1884 次插入247 次删除
  1. 1 1
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  2. 2 2
      business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java
  3. 143 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseAppMenu.java
  4. 70 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceDO.java
  5. 47 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceDeptDO.java
  6. 56 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeAppDO.java
  7. 89 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeDO.java
  8. 57 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeSmsDO.java
  9. 67 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeWxDO.java
  10. 67 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidancePresetDO.java
  11. 150 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidancePushLogDO.java
  12. 8 13
      common/common-util/src/main/java/com/yihu/jw/util/date/DateTimeUtil.java
  13. 53 193
      common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java
  14. 6 28
      starter/mysql-starter/src/main/java/com/yihu/jw/mysql/query/BaseJpaService.java
  15. 25 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseAppMenuDao.java
  16. 12 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDao.java
  17. 17 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDeptDao.java
  18. 18 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeAppDao.java
  19. 12 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeDao.java
  20. 17 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeSmsDao.java
  21. 16 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeWxDao.java
  22. 18 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePresetDao.java
  23. 12 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePushLogDao.java
  24. 213 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseAppMenuEndPoint.java
  25. 446 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/processGuidance/BaseProcessGuidanceEndpoint.java
  26. 101 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseAppMenuService.java
  27. 20 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceDeptService.java
  28. 20 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeAppService.java
  29. 20 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeService.java
  30. 19 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeSmsService.java
  31. 19 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeWxService.java
  32. 20 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePresetService.java
  33. 20 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePushLogService.java
  34. 21 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceService.java
  35. 2 10
      svr/svr-basic/src/main/java/com/yihu/jw/basic/resource/service/RsReportCategoryService.java

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -438,7 +438,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    public WlyyOutpatientVO findOutpatientInfo(String patient, String conNo) throws Exception {
        logger.info("findOutpatientList patient:" + patient);
        /*String patNo = patientMappingService.findHisPatNoByPatient(patient);*/
        BasePatientDO patientDO = basePatientDao.getOne(patient);
        BasePatientDO patientDO = basePatientDao.findById(patient).orElse(null);
        if (patientDO==null){
            return null;
        }

+ 2 - 2
business/base-service/src/main/java/com/yihu/jw/patient/service/BasePatientService.java

@ -707,9 +707,9 @@ public class BasePatientService<T, R extends CrudRepository> extends BaseJpaServ
    }
    public PageEnvelop pageByCondition(String name, Integer archiveType, Integer archiveStatus,int page,int size){
        List<Map<String ,Object>> list = new ArrayList<>();
        List<Map<String ,Object>> list;
        if (page>0){
            page--;
//            page--;
        }else{
            page=0;
        }

+ 143 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/menu/BaseAppMenu.java

@ -0,0 +1,143 @@
package com.yihu.jw.entity.base.menu;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.List;
/**
 * app端菜单配置
 * Created by yeshijie on 2022/9/27.
 */
@Entity
@Table(name = "base_app_menu")
public class BaseAppMenu extends UuidIdentityEntityWithCreateTime {
    public final static String topPid = "0";//顶级父id
    private String pid;//父类id(第一级pid为0)
    private String name;//菜单名称
    private String code;//菜单编码
    private String img;//图标
    private String url;//跳转链接
    private Integer isTop;//是否展示在app首页(1是 0否)
    private String isTopName;
    private Integer status;//状态(1有效,0失效)
    private String statusName;
    private Integer sort;//排序字段
    private String remark;//备注
    private List<BaseAppMenu> children = new ArrayList<>(); // 子节点
    @Column(name = "pid")
    public String getPid() {
        return pid;
    }
    public void setPid(String pid) {
        this.pid = pid;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "img")
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
    @Column(name = "url")
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    @Column(name = "is_top")
    public Integer getIsTop() {
        return isTop;
    }
    public void setIsTop(Integer isTop) {
        this.isTop = isTop;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @Column(name = "sort")
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Transient
    public List<BaseAppMenu> getChildren() {
        return children;
    }
    public void setChildren(List<BaseAppMenu> children) {
        this.children = children;
    }
    @Transient
    public String getIsTopName() {
        return isTopName;
    }
    public void setIsTopName(String isTopName) {
        this.isTopName = isTopName;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }
}

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

@ -0,0 +1,70 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;
/**
 * 全流程指引-预设流程
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance")
public class BaseProcessGuidanceDO extends UuidIdentityEntityWithCreateTime {
    private String name;
    private Integer status;//状态(1生效 0失效)
    private String statusName;
    private List<BaseProcessGuidanceDeptDO> deptDOList;//关联部门
    private List<BaseProcessGuidancePresetDO> presetDOList;//预设流程节点
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @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;
    }
    @Transient
    public List<BaseProcessGuidanceDeptDO> getDeptDOList() {
        return deptDOList;
    }
    public void setDeptDOList(List<BaseProcessGuidanceDeptDO> deptDOList) {
        this.deptDOList = deptDOList;
    }
    @Transient
    public List<BaseProcessGuidancePresetDO> getPresetDOList() {
        return presetDOList;
    }
    public void setPresetDOList(List<BaseProcessGuidancePresetDO> presetDOList) {
        this.presetDOList = presetDOList;
    }
}

+ 47 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceDeptDO.java

@ -0,0 +1,47 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 全流程指引-预设流程关联部门
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_dept")
public class BaseProcessGuidanceDeptDO extends UuidIdentityEntity {
      private String processGuidanceId;//预设流程id
      private String deptCode;//科室code
      private String deptName;//科室姓名
      @Column(name = "process_guidance_id")
      public String getProcessGuidanceId() {
            return processGuidanceId;
      }
      public void setProcessGuidanceId(String processGuidanceId) {
            this.processGuidanceId = processGuidanceId;
      }
      @Column(name = "dept_code")
      public String getDeptCode() {
            return deptCode;
      }
      public void setDeptCode(String deptCode) {
            this.deptCode = deptCode;
      }
      @Column(name = "dept_name")
      public String getDeptName() {
            return deptName;
      }
      public void setDeptName(String deptName) {
            this.deptName = deptName;
      }
}

+ 56 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeAppDO.java

@ -0,0 +1,56 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_node_app")
public class BaseProcessGuidanceNodeAppDO extends UuidIdentityEntityWithCreateTime {
    private String nodeId;//节点id
    private String name;//应用名称
    private String url;//链接地址
    private String img;//应用图标
    @Column(name = "node_id")
    public String getNodeId() {
        return nodeId;
    }
    public void setNodeId(String nodeId) {
        this.nodeId = nodeId;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "url")
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    @Column(name = "img")
    public String getImg() {
        return img;
    }
    public void setImg(String img) {
        this.img = img;
    }
}

+ 89 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeDO.java

@ -0,0 +1,89 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_node")
public class BaseProcessGuidanceNodeDO extends UuidIdentityEntityWithCreateTime {
    private String nodeName;//节点名称
    private String nodeCode;//节点CODE
    private String nodeDescribe;//节点描述
    private String notice;//注意事项
    private Integer status;//状态1生效 0失效
    private String statusName;
    private List<BaseProcessGuidanceNodeAppDO> nodeAppDOList;//关联应用
    @Column(name = "node_name")
    public String getNodeName() {
        return nodeName;
    }
    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }
    @Column(name = "node_code")
    public String getNodeCode() {
        return nodeCode;
    }
    public void setNodeCode(String nodeCode) {
        this.nodeCode = nodeCode;
    }
    @Column(name = "node_describe")
    public String getNodeDescribe() {
        return nodeDescribe;
    }
    public void setNodeDescribe(String nodeDescribe) {
        this.nodeDescribe = nodeDescribe;
    }
    @Column(name = "notice")
    public String getNotice() {
        return notice;
    }
    public void setNotice(String notice) {
        this.notice = notice;
    }
    @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;
    }
    @Transient
    public List<BaseProcessGuidanceNodeAppDO> getNodeAppDOList() {
        return nodeAppDOList;
    }
    public void setNodeAppDOList(List<BaseProcessGuidanceNodeAppDO> nodeAppDOList) {
        this.nodeAppDOList = nodeAppDOList;
    }
}

+ 57 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeSmsDO.java

@ -0,0 +1,57 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * base_process_guidance_sms
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_node_sms")
public class BaseProcessGuidanceNodeSmsDO extends UuidIdentityEntity {
    private String nodeId;//节点id
    private Integer isPush;//是否推送(1开启,0关闭)
    private String templateId;//短信模板id
    private String content;//短信内容
    @Column(name = "node_id")
    public String getNodeId() {
        return nodeId;
    }
    public void setNodeId(String nodeId) {
        this.nodeId = nodeId;
    }
    @Column(name = "is_push")
    public Integer getIsPush() {
        return isPush;
    }
    public void setIsPush(Integer isPush) {
        this.isPush = isPush;
    }
    @Column(name = "template_id")
    public String getTemplateId() {
        return templateId;
    }
    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}

+ 67 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/processGuidance/BaseProcessGuidanceNodeWxDO.java

@ -0,0 +1,67 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 全流程指引-节点-微信模板
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_node_wx")
public class BaseProcessGuidanceNodeWxDO extends UuidIdentityEntity {
    private String nodeId;//节点id nodeId=system表示系统模板
    private Integer isPush;//是否推送(1开启,0关闭)
    private String templateId;//模板id
    private String templateName;//模板名称
    private String preview;//模板预览
    @Column(name = "node_id")
    public String getNodeId() {
        return nodeId;
    }
    public void setNodeId(String nodeId) {
        this.nodeId = nodeId;
    }
    @Column(name = "is_push")
    public Integer getIsPush() {
        return isPush;
    }
    public void setIsPush(Integer isPush) {
        this.isPush = isPush;
    }
    @Column(name = "template_id")
    public String getTemplateId() {
        return templateId;
    }
    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }
    @Column(name = "template_name")
    public String getTemplateName() {
        return templateName;
    }
    public void setTemplateName(String templateName) {
        this.templateName = templateName;
    }
    @Column(name = "preview")
    public String getPreview() {
        return preview;
    }
    public void setPreview(String preview) {
        this.preview = preview;
    }
}

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

@ -0,0 +1,67 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * 全流程指引预设流程
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_preset")
public class BaseProcessGuidancePresetDO extends UuidIdentityEntityWithCreateTime {
    private String processGuidanceId;//流程指引id
    private String processCode;//步骤code =节点id(nodeId)
    private String processName;//步骤名称
//    private Integer sortNo;//步骤排序
    private Integer isOptional;//是否可选项(1必要项,2可选项 )
    @Column(name = "process_guidance_id")
    public String getProcessGuidanceId() {
        return processGuidanceId;
    }
    public void setProcessGuidanceId(String processGuidanceId) {
        this.processGuidanceId = processGuidanceId;
    }
    @Column(name = "process_code")
    public String getProcessCode() {
        return processCode;
    }
    public void setProcessCode(String processCode) {
        this.processCode = processCode;
    }
    @Column(name = "process_name")
    public String getProcessName() {
        return processName;
    }
    public void setProcessName(String processName) {
        this.processName = processName;
    }
//    @Column(name = "sort_no")
//    public Integer getSortNo() {
//        return sortNo;
//    }
//
//    public void setSortNo(Integer sortNo) {
//        this.sortNo = sortNo;
//    }
    @Column(name = "is_optional")
    public Integer getIsOptional() {
        return isOptional;
    }
    public void setIsOptional(Integer isOptional) {
        this.isOptional = isOptional;
    }
}

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

@ -0,0 +1,150 @@
package com.yihu.jw.entity.base.processGuidance;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
 * 全流程指引推送日志
 * Created by yeshijie on 2022/9/30.
 */
@Entity
@Table(name = "base_process_guidance_push_log")
public class BaseProcessGuidancePushLogDO extends UuidIdentityEntityWithCreateTime{
    private String nodeId;//节点id
    private String nodeName;//节点名称
    private String title;//消息标题
    private Date sendTime;//发送时间
    private Integer sendType;//发送类型1wx模板,2短信
    private Integer userType;//用户类型1居民 2医生
    private String userId;//对象id
    private String userName;//送对象姓名
    private String mobile;//手机号
    private String idcard;//身份证
    private String openid;//微信openid
    private String sendTypeName;//发送类型
    private String userTypeName;//用户类型
    @Column(name = "node_id")
    public String getNodeId() {
        return nodeId;
    }
    public void setNodeId(String nodeId) {
        this.nodeId = nodeId;
    }
    @Column(name = "node_name")
    public String getNodeName() {
        return nodeName;
    }
    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }
    @Column(name = "title")
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    @Column(name = "send_time")
    public Date getSendTime() {
        return sendTime;
    }
    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }
    @Column(name = "send_type")
    public Integer getSendType() {
        return sendType;
    }
    public void setSendType(Integer sendType) {
        this.sendType = sendType;
    }
    @Column(name = "user_type")
    public Integer getUserType() {
        return userType;
    }
    public void setUserType(Integer userType) {
        this.userType = userType;
    }
    @Column(name = "user_id")
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    @Column(name = "user_name")
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    @Column(name = "mobile")
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "openid")
    public String getOpenid() {
        return openid;
    }
    public void setOpenid(String openid) {
        this.openid = openid;
    }
    @Transient
    public String getSendTypeName() {
        return sendTypeName;
    }
    public void setSendTypeName(String sendTypeName) {
        this.sendTypeName = sendTypeName;
    }
    @Transient
    public String getUserTypeName() {
        return userTypeName;
    }
    public void setUserTypeName(String userTypeName) {
        this.userTypeName = userTypeName;
    }
}

+ 8 - 13
common/common-util/src/main/java/com/yihu/jw/util/date/DateTimeUtil.java

@ -30,8 +30,7 @@ public class DateTimeUtil {
    public static DateTimeFormatter iso8601Format = DateTimeFormatter.ofPattern(ISO8601Pattern);
    public static String simpleDateTimeFormat(Date date){
        String time = simpleDateTimeFormat.format(DateUtil.dateToLocalDateTime(date));
        return time;
        return simpleDateTimeFormat.format(DateUtil.dateToLocalDateTime(date));
    }
    public static Date simpleDateTimeParse(String date) throws ParseException {
@ -51,7 +50,7 @@ public class DateTimeUtil {
        return DateUtil.localTimeToDate(localDateTime);
    }
    public static Date iso8601DateTimeParse(String date) throws ParseException {
    public static Date iso8601DateTimeParse(String date){
        if(StringUtils.isEmpty(date)) return null;
        ZonedDateTime zonedDateTime = ZonedDateTime.parse(date,iso8601Format);
@ -61,32 +60,29 @@ public class DateTimeUtil {
    public static String utcDateTimeFormat(Date date){
        //为空判断
        if(date!=null) {
            String time = utcDateTimeFormat.format(DateUtil.dateToLocalDateTime(date));
            return time;
            return utcDateTimeFormat.format(DateUtil.dateToLocalDateTime(date));
        }
        else{
            return null;
        }
    }
    public static Date utcDateTimeParse(String date) throws ParseException {
    public static Date utcDateTimeParse(String date){
        if(StringUtils.isEmpty(date)) return null;
        return strToDate(date,utcDateTimeFormat);
    }
    public static String slashDateTimeFormat(Date date){
        String result = slashDateTimeFormat.format(DateUtil.dateToLocalDateTime(date));
        return result;
        return slashDateTimeFormat.format(DateUtil.dateToLocalDateTime(date));
    }
    public static Date slashDateTimeParse(String date) throws ParseException {
    public static Date slashDateTimeParse(String date){
        return strToDate(date,slashDateTimeFormat);
    }
    public static String simpleDateFormat(Date date){
        String result = simpleDateFormat.format(DateUtil.dateToLocalDateTime(date));
        return result;
        return simpleDateFormat.format(DateUtil.dateToLocalDateTime(date));
    }
    public static Date simpleDateParse(String date) throws ParseException {
@ -96,8 +92,7 @@ public class DateTimeUtil {
    }
    public static String simpleDateTimeShortFormat(Date date){
        String result = simpleDateTimeShortFormat.format(DateUtil.dateToLocalDateTime(date));
        return result;
        return simpleDateTimeShortFormat.format(DateUtil.dateToLocalDateTime(date));
    }
    public static Date simpleDateTimeShortParse(String date) throws ParseException {

+ 53 - 193
common/common-util/src/main/java/com/yihu/jw/util/date/DateUtil.java

@ -6,8 +6,6 @@ import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
@ -129,31 +127,12 @@ public class DateUtil {
        return ymd != null && ymd.length() == "yyyy-MM-dd".length() ? ymd.substring(0, 4) : null;
    }
    public static String utcToDate(String utcTime, String format) {
        SimpleDateFormat utcSdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
        SimpleDateFormat newSdf = new SimpleDateFormat(format);
        String date = null;
        try {
            if (!org.apache.commons.lang3.StringUtils.isEmpty(utcTime)) {
                date = newSdf.format(utcSdf.parse(utcTime));
            }
        } catch (ParseException var6) {
            var6.printStackTrace();
        }
        return date;
    }
    public static String getCurrentString(String pattern) {
        SimpleDateFormat f = new SimpleDateFormat(pattern);
        return f.format(Calendar.getInstance(TimeZone.getDefault()).getTime());
        return DateTimeFormatter.ofPattern(pattern).format(dateToLocalDateTime(new Date()));
    }
    public static String utcToDate(Date date) {
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
        String utcDate = sdf1.format(date);
        return utcDate;
        return DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'").format(dateToLocalDateTime(date));
    }
    /**
@ -207,9 +186,6 @@ public class DateUtil {
    /**
     * 将短时间格式字符串转换为时间
     *
     * @param strDate
     * @return
     */
    public static Date strToDate(String strDate, String format) {
        if (StringUtils.isEmpty(strDate)) {
@ -222,9 +198,6 @@ public class DateUtil {
    /**
     * 将短时间格式字符串转换为时间
     *
     * @param strDate
     * @return
     */
    public static Date strToDateTime(String strDate, String format) {
        if (StringUtils.isEmpty(strDate)) {
@ -319,8 +292,6 @@ public class DateUtil {
    /**
     * 获取时间 小时:分;秒 HH:mm:ss
     *
     * @return
     */
    public static String getTimeShort() {
        Date currentTime = new Date();
@ -329,9 +300,6 @@ public class DateUtil {
    /**
     * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
     *
     * @param strDate
     * @return
     */
    public static Date strToDateLong(String strDate) {
        if (StringUtils.isEmpty(strDate)) {
@ -343,9 +311,6 @@ public class DateUtil {
    /**
     * 将长时间格式字符串转换为时间 yyyyMMdd HH:mm:ss
     *
     * @param strDate
     * @return
     */
    public static Date strToYmdDateLong(String strDate) {
        if (StringUtils.isEmpty(strDate)) {
@ -363,9 +328,6 @@ public class DateUtil {
    /**
     * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
     *
     * @param dateDate
     * @return
     */
    public static String dateToStrLong(Date dateDate) {
        if (dateDate == null) {
@ -376,9 +338,6 @@ public class DateUtil {
    /**
     * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
     *
     * @param dateDate
     * @return
     */
    public static String dateToStrFormatLong(java.util.Date dateDate) {
        if (dateDate == null) {
@ -394,9 +353,6 @@ public class DateUtil {
    }
    /**
     * 将长时间格式时间转换为字符串 YYYYMMDD
     *
     * @param dateDate
     * @return
     */
    public static String dateToStrFormatShort(java.util.Date dateDate) {
        if (dateDate == null) {
@ -407,9 +363,6 @@ public class DateUtil {
    /**
     * 将长时间格式时间转换为字符串 yyyyMMdd
     *
     * @param dateDate
     * @return
     */
    public static String dateToStrShort(java.util.Date dateDate) {
        if (dateDate == null) {
@ -439,8 +392,6 @@ public class DateUtil {
    /**
     * 得到现在时间
     *
     * @return
     */
    public static Date getNow() {
        Date currentTime = new Date();
@ -449,9 +400,6 @@ public class DateUtil {
    /**
     * 提取一个月中的最后一天
     *
     * @param day
     * @return
     */
    public static Date getLastDate(long day) {
        Date date = new Date();
@ -480,8 +428,6 @@ public class DateUtil {
    /**
     * 得到现在分钟
     *
     * @return
     */
    public static String getTime() {
        Date currentTime = new Date();
@ -493,7 +439,6 @@ public class DateUtil {
     *
     * @param sformat
     *            yyyyMMddhhmmss
     * @return
     */
    public static String getUserDate(String sformat) {
        Date currentTime = new Date();
@ -527,6 +472,7 @@ public class DateUtil {
            LocalDateTime localDateTime = dateToLocalDateTime(date).plusDays(days);
            day = Date.from(localDateTime.atZone(zone).toInstant());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return day;
    }
@ -619,7 +565,6 @@ public class DateUtil {
    /**
     * 获取本月第一天
     * @return
     */
    public static String getCurMonthFirstDayShort(){
        return dateFormatter.format(LocalDate.now().withDayOfMonth(1));
@ -628,9 +573,6 @@ public class DateUtil {
    /**
     * 判断是否润年
     *
     * @param ddate
     * @return
     */
    public static boolean isLeapYear(String ddate) {
        /**
@ -643,9 +585,6 @@ public class DateUtil {
    /**
     * 返回美国时间格式 26 Apr 2006
     *
     * @param str
     * @return
     */
    public static String getEDate(String str) {
        Date strtodate = strToDate(str,YYYY_MM_DD);
@ -656,9 +595,6 @@ public class DateUtil {
    /**
     * 获取一个月的最后一天
     *
     * @param dat
     * @return
     */
    public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
        String str = dat.substring(0, 8);
@ -681,8 +617,6 @@ public class DateUtil {
    /**
     * 产生周序列,即得到当前时间所在的年度是第几周
     *
     * @return
     */
    public static String getSeqWeek() {
        LocalDate now = LocalDate.now();
@ -696,43 +630,38 @@ public class DateUtil {
    /**
     * 获得一个日期所在的周的星期几的日期,如要找出2002年2月3日所在周的星期一是几号
     *
     * @param sdate
     * @param num
     * @return
     */
    public static String getWeek(String sdate, String num) {
        // 再转换为时间
        LocalDate localDate = LocalDate.parse(sdate,dateFormatter);
        if (num.equals("1")){ // 返回星期一所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.MONDAY.getValue());
        }
        else if (num.equals("2")){ // 返回星期二所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.TUESDAY.getValue());
        }
        else if (num.equals("3")){ // 返回星期三所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.WEDNESDAY.getValue());
        }
        else if (num.equals("4")){ // 返回星期四所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.THURSDAY.getValue());
        }
        else if (num.equals("5")){ // 返回星期五所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.FRIDAY.getValue());
        }
        else if (num.equals("6")){ // 返回星期六所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.SATURDAY.getValue());
        }
        else if (num.equals("0")){ // 返回星期日所在的日期
            localDate.with(WeekFields.ISO.dayOfWeek(),DayOfWeek.SUNDAY.getValue());
        switch (num) {
            case "1":  // 返回星期一所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.MONDAY.getValue());
                break;
            case "2":  // 返回星期二所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.TUESDAY.getValue());
                break;
            case "3":  // 返回星期三所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.WEDNESDAY.getValue());
                break;
            case "4":  // 返回星期四所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.THURSDAY.getValue());
                break;
            case "5":  // 返回星期五所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.FRIDAY.getValue());
                break;
            case "6":  // 返回星期六所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.SATURDAY.getValue());
                break;
            case "0":  // 返回星期日所在的日期
                localDate.with(WeekFields.ISO.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
                break;
        }
        return dateFormatter.format(localDate);
    }
    /**
     * 根据一个日期,返回是星期几的字符串
     *
     * @param sdate
     * @return
     */
    public static String getWeek(String sdate) {
        // 再转换为时间
@ -743,31 +672,36 @@ public class DateUtil {
    }
    public static String getWeekStr(String sdate) {
        String str = "";
        String str;
        str = getWeek(sdate);
        if ("1".equals(str)) {
            str = "星期日";
        } else if ("2".equals(str)) {
            str = "星期一";
        } else if ("3".equals(str)) {
            str = "星期二";
        } else if ("4".equals(str)) {
            str = "星期三";
        } else if ("5".equals(str)) {
            str = "星期四";
        } else if ("6".equals(str)) {
            str = "星期五";
        } else if ("7".equals(str)) {
            str = "星期六";
        switch (str) {
            case "1":
                str = "星期日";
                break;
            case "2":
                str = "星期一";
                break;
            case "3":
                str = "星期二";
                break;
            case "4":
                str = "星期三";
                break;
            case "5":
                str = "星期四";
                break;
            case "6":
                str = "星期五";
                break;
            case "7":
                str = "星期六";
                break;
        }
        return str;
    }
    /**
     * 日期比较大小
     * @param s1
     * @param s2
     * @return
     */
    public static long compareDate(Date s1, Date s2) {
        try {
@ -780,10 +714,6 @@ public class DateUtil {
    /**
     * 字符串日期比较大小
     * @param format
     * @param s1
     * @param s2
     * @return
     */
    public static long compareDate(String format, String s1, String s2) {
        Date s = strToDate(s1,YYYY_MM_DD);
@ -798,10 +728,6 @@ public class DateUtil {
    /**
     * 两个时间之间的天数
     *
     * @param date1
     * @param date2
     * @return
     */
    public static long getDays(String date1, String date2) {
        if(date1 == null || date1.equals("")){
@ -819,9 +745,6 @@ public class DateUtil {
    /**
     * 返回两个日期相差的天数
     * @param date1
     * @param date2
     * @return
     */
    public static long getDays(Date date1, Date date2) {
        if (date1 == null || date2 == null){
@ -833,9 +756,6 @@ public class DateUtil {
    /**
     * 返回两个日期相差的小时数(保留2位小数)
     * @param date1
     * @param date2
     * @return
     */
    public static float getHours(Date date1, Date date2) {
        if (date1 == null || date2 == null){
@ -851,9 +771,6 @@ public class DateUtil {
    /**
     * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间
     * 此函数返回该日历第一行星期日所在的日期
     *
     * @param sdate
     * @return
     */
    public static String getNowMonth(String sdate) {
        // 取该时间所在月的一号
@ -883,9 +800,6 @@ public class DateUtil {
    /**
     * 返回一个随机数
     *
     * @param i
     * @return
     */
    public static String getRandom(int i) {
        Random jjj = new Random();
@ -919,9 +833,6 @@ public class DateUtil {
    /**
     *  字符串转时间
     * @param str 时间字符串
     * @param eg 格式
     * @return
     */
    public static Date stringToDate(String str, String eg) {
        return strToDate(str,eg);
@ -937,7 +848,6 @@ public class DateUtil {
    /**
     * 获取周一
     * @return
     */
    public static String getMondayOfThisWeek() {
        LocalDate localDate = LocalDate.now().with(WeekFields.ISO.getFirstDayOfWeek());
@ -946,7 +856,6 @@ public class DateUtil {
    /**
     * 获取某个时间的周一
     * @returnc
     */
    public static String getMondayOfThisWeek(Date date) {
        LocalDate localDate = dateToLocalDate(date).with(WeekFields.ISO.getFirstDayOfWeek());
@ -975,9 +884,6 @@ public class DateUtil {
    /**
     * 获取某一时间端内的工作天数
     * @param start
     * @param end
     * @return
     */
    public static long getWorkDays(String start, String end){
        long day = 0;
@ -995,7 +901,6 @@ public class DateUtil {
    /**
     * 获取当月第一天
     * @return
     */
    public static String getFristDayOfMonth() {
        LocalDate localDate = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
@ -1019,8 +924,6 @@ public class DateUtil {
    /**
     * 计算预产期
     * 末次月经开始日期(第一天),月份+9,日期+7
     * @param date
     * @return
     */
    public static Date getDueDate(Date date){
        LocalDateTime localDateTime = dateToLocalDateTime(date);
@ -1030,9 +933,6 @@ public class DateUtil {
    /**
     * 计算产检时间
     * @param date
     * @param day
     * @return
     */
    public static Date getPrenatalInspectorDate(Date date,Integer day){
        LocalDateTime localDateTime = dateToLocalDateTime(date);
@ -1042,8 +942,6 @@ public class DateUtil {
    /**
     * 将HH:MM格式的字符串转TIME
     * @param hhmm
     * @return
     */
    public static Time hhmmStrToTime(String hhmm){
        Time time = null;
@ -1059,7 +957,6 @@ public class DateUtil {
    /**
     * 获取当前时间的Timestamp
     * @return
     */
    public static Timestamp getNowTimestamp(){
        Date date = new Date();
@ -1069,9 +966,6 @@ public class DateUtil {
    /**
     *时间字符串转为 时间戳
     * @param str
     * @param format
     * @return
     */
    public static Timestamp toTimestamp(String str, String format) {
@ -1088,9 +982,6 @@ public class DateUtil {
    }
    /**
     *时间字符串转为 时间戳
     * @param str
     * @param
     * @return
     */
    public static Timestamp toTimestamp(String str) {
@ -1112,9 +1003,6 @@ public class DateUtil {
    /**
     *  日期加减天数
     * @param date 时间
     * @param days 天数�?
     * @return
     */
    public static Date setDateTime(Date date,int days){
        LocalDateTime localDateTime = dateToLocalDateTime(date).plusDays(days);
@ -1128,7 +1016,6 @@ public class DateUtil {
    /**
     * 获取去年日期
     * @return
     */
    public static String getLastYear(){
        LocalDateTime localDateTime = LocalDateTime.now().plusYears(-1);
@ -1137,8 +1024,6 @@ public class DateUtil {
    /**
     * 获取儿童的年龄
     * @param date
     * @return
     */
    public static String getChildAge(Date date){
        LocalDate now = LocalDate.now();
@ -1194,7 +1079,6 @@ public class DateUtil {
    /**
     * 获取当月第一天
     * @return
     */
    public static String getFristDayOfMonthThisDate(Date date) {
        LocalDate localDate = dateToLocalDate(date).with(TemporalAdjusters.firstDayOfMonth());
@ -1210,8 +1094,6 @@ public class DateUtil {
    /**
     * 根据日期对象返回星期几
     * @param date
     * @return
     */
    public static int getWeekByDate(Date date){
        LocalDate localDate = dateToLocalDate(date);
@ -1220,7 +1102,6 @@ public class DateUtil {
    /**
     * 获取当天0点
     * @return
     */
    public static Date getDateStart(){
        LocalDate localDate = LocalDate.now();
@ -1231,7 +1112,6 @@ public class DateUtil {
    /**
     * 获取当天23:59:59
     * @return
     */
    public static Date getDateEnd(){
        LocalDate localDate = LocalDate.now();
@ -1243,9 +1123,6 @@ public class DateUtil {
    /**
     * 根据身份证的号码算出当前身份证持有者的年龄
     *
     * @param
     * @throws Exception
     */
    public static int getAgeForIdcard(String idcard) {
        try {
@ -1269,7 +1146,7 @@ public class DateUtil {
            LocalDate localDate = LocalDate.of(year,month,day);
            return localDate.until(LocalDate.now()).getYears();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return -1;
    }
@ -1313,19 +1190,11 @@ public class DateUtil {
    /**
     * 判断时间是否在某个区间内
     * @param time
     * @param begin
     * @param end
     * @return
     */
    public static boolean isInArea(Date time,Date begin,Date end) {
        Long beginTime = compareDateTime(time,begin);
        Long endTime = compareDateTime(time, end);
        if (beginTime > 0 && endTime < 0) {
            return true;
        } else {
            return false;
        }
        return beginTime > 0 && endTime < 0;
    }
    /**
@ -1333,7 +1202,6 @@ public class DateUtil {
     * @param date1 当前时间
     * @param date2 过去时间
     * @param fliter 0不携带秒 1携带秒
     * @return
     */
    public static String getDifferentTimeInfo(Date date1, Date date2,Integer fliter){
        if (date1 == null || date2 == null){
@ -1382,7 +1250,6 @@ public class DateUtil {
     *  返回 两个时间间隔天数/小时数
     * @param date1 当前时间
     * @param date2 过去时间
     * @return
     */
    public static String getDifferentTimeInfo1(Date date1, Date date2){
        if (date1 == null || date2 == null){
@ -1399,7 +1266,7 @@ public class DateUtil {
        long secondFieldDiff = secondsDiff - TimeUnit.MINUTES.toSeconds(minutesDiff);
        if (daysDiff > 0L) {
            result = (String.format("%d天", daysDiff));
            return result.toString();
            return result;
        }
        else if (hourFieldDiff > 0L) {
            result=String.format("%d小时", hourFieldDiff);
@ -1410,12 +1277,9 @@ public class DateUtil {
    /**
     * 1970年1月1日来的 秒转化成时间
     * @param seconds
     * @return
     */
    public static Date secondTransfor(int seconds){
        LocalDateTime localDateTime = LocalDateTime.of(1970,1,1,0,0,0);
        localDateTime.plusSeconds(seconds);
        return Date.from(localDateTime.plusSeconds(seconds).atZone(zone).toInstant());
    }
@ -1423,15 +1287,14 @@ public class DateUtil {
     * 获取指定时间和当前时间的距离
     * 几秒前、几分钟前、几小时前、几天前
     * @param l1 秒级时间戳
     * @return
     */
    public static String getTimeAgeStr(Long l1){
        String timeAgoStr = "";
        String timeAgoStr;
        BigDecimal b1 = new BigDecimal(l1);
        BigDecimal b2 = new BigDecimal(System.currentTimeMillis()/1000);
        BigDecimal subtract = b2.subtract(b1);//秒数
        if(subtract.compareTo(new BigDecimal(60))<0){//小于一分钟前
            timeAgoStr = subtract.toString()+"秒前";
            timeAgoStr = subtract +"秒前";
        }else if(subtract.compareTo(new BigDecimal(3600))<0){//小于一小时
            timeAgoStr = subtract.divide(new BigDecimal(60),0,BigDecimal.ROUND_HALF_DOWN).toString()+"分钟前";
        }else if(subtract.compareTo(new BigDecimal(86400))<0){//小于一天
@ -1446,7 +1309,6 @@ public class DateUtil {
     * 获取指定时间的前后若干时间戳
     * list[0]前
     * list[1]后
     * @return
     */
    public static List<String> getTimeByBeforeAndAfterTime(String time,long l){
        List<String> list = new ArrayList<>();
@ -1515,8 +1377,6 @@ public class DateUtil {
            throw new IllegalArgumentException("The value of an argument is inaccurate.");
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return dateToStr(date,format);
    }

+ 6 - 28
starter/mysql-starter/src/main/java/com/yihu/jw/mysql/query/BaseJpaService.java

@ -1,7 +1,7 @@
package com.yihu.jw.mysql.query;
import com.yihu.jw.lang.SpringContext;
import org.hibernate.Query;
import org.hibernate.query.Query;
import org.hibernate.Session;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -77,7 +77,7 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    }
    public void delete(Serializable id) {
        getRepository().delete(id);
        getRepository().deleteById(id);
    }
    public void delete(T entity) {
@ -103,7 +103,7 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    }
    public T retrieve(Serializable id) {
        return (T) getRepository().findById(id);
        return (T) getRepository().findById(id).orElse(null);
    }
    public List search(String filters) throws ParseException {
@ -245,11 +245,6 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 将实体转换为模型。
     *
     * @param source
     * @param target
     * @param <T>
     * @return
     */
    public <T> T convertToModel(Object source, Class<T> target) {
        if (source == null) {
@ -262,11 +257,6 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 将实体集合转换为模型集合。
     * @param sources
     * @param targets
     * @param target
     * @param <T>
     * @return
     */
    public <T> List<T> convertToModels(Collection sources, List<T> targets, Class<T> target){
        if (null == sources) {
@ -286,8 +276,6 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 获取指定长度的随机数字字符串
     * @param length
     * @return
     */
    public String randomInt(int length) {
        String str = "0123456789";
@ -302,8 +290,6 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 获取指定长度的随机字符串
     * @param length
     * @return
     */
    public String randomString(int length) {
        String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
@ -318,17 +304,15 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 排序条件 第一个字符为 + 表示升序,第一个字符为 - 表示减序,不包含 + 或者 - 默认升序
     * @param sorts
     * @return
     */
    public Sort createSort(String sorts){
        Sort sort = null;
        if (!org.springframework.util.StringUtils.isEmpty(sorts)) {
            // 默认升序
            if(sorts.contains("-")){
                sort = Sort.by(Sort.Direction.DESC,sorts.substring(1,sorts.length()).split(","));
                sort = Sort.by(Sort.Direction.DESC,sorts.substring(1).split(","));
            }else if(sorts.contains("+")){
                sort = Sort.by(Sort.Direction.ASC,sorts.substring(1,sorts.length()).split(","));
                sort = Sort.by(Sort.Direction.ASC,sorts.substring(1).split(","));
            }else{
                sort = Sort.by(Sort.Direction.ASC,sorts.split(","));
            }
@ -338,13 +322,9 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 创建分页对象
     * @param page
     * @param size
     * @param sorts
     * @return
     */
    public Pageable createPage(Integer page, Integer size, String sorts){
        PageRequest pageRequest = null;
        PageRequest pageRequest;
        if(null == page || page <= 0){
            page = defaultPage;
        }
@ -362,8 +342,6 @@ public abstract class BaseJpaService<T, R extends CrudRepository> {
    /**
     * 获取指定长度的随机字符串
     * @param length
     * @return
     */
    protected String getRandomString(int length) {
        String str = "abcdefghigklmnopkrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789";

+ 25 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/menu/BaseAppMenuDao.java

@ -0,0 +1,25 @@
package com.yihu.jw.base.dao.menu;
import com.yihu.jw.entity.base.menu.BaseAppMenu;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/27.
 */
public interface BaseAppMenuDao extends JpaRepository<BaseAppMenu, String>, JpaSpecificationExecutor<BaseAppMenu> {
    @Query(" FROM BaseAppMenu rc WHERE rc.pid = :pid ")
    List<BaseAppMenu> getChildrenByPid(@Param("pid") String pid);
    @Query(" FROM BaseAppMenu rc WHERE rc.pid = '0' ")
    List<BaseAppMenu> getTopParents();
    @Query(" FROM BaseAppMenu rc WHERE rc.id <> :id AND rc.code = :code ")
    BaseAppMenu isUniqueCode(@Param("id") String id, @Param("code") String code);
}

+ 12 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidanceDao extends JpaRepository<BaseProcessGuidanceDO, String>, JpaSpecificationExecutor<BaseProcessGuidanceDO> {
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceDeptDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDeptDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidanceDeptDao extends JpaRepository<BaseProcessGuidanceDeptDO, String>, JpaSpecificationExecutor<BaseProcessGuidanceDeptDO> {
    List<BaseProcessGuidanceDeptDO> findByProcessGuidanceId(String processGuidanceId);
    void deleteByProcessGuidanceId(String processGuidanceId);
}

+ 18 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeAppDao.java

@ -0,0 +1,18 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeAppDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidanceNodeAppDao extends JpaRepository<BaseProcessGuidanceNodeAppDO, String>,
        JpaSpecificationExecutor<BaseProcessGuidanceNodeAppDO> {
    List<BaseProcessGuidanceNodeAppDO> findByNodeId(String nodeId);
    void deleteByNodeId(String nodeId);
}

+ 12 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidanceNodeDao extends JpaRepository<BaseProcessGuidanceNodeDO, String>,
        JpaSpecificationExecutor<BaseProcessGuidanceNodeDO> {
}

+ 17 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeSmsDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeSmsDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidanceNodeSmsDao extends JpaRepository<BaseProcessGuidanceNodeSmsDO, String>,
        JpaSpecificationExecutor<BaseProcessGuidanceNodeSmsDO> {
    List<BaseProcessGuidanceNodeSmsDO> findByNodeId(String nodeId);
}

+ 16 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidanceNodeWxDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeWxDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidanceNodeWxDao extends JpaRepository<BaseProcessGuidanceNodeWxDO, String>,
        JpaSpecificationExecutor<BaseProcessGuidanceNodeWxDO> {
    List<BaseProcessGuidanceNodeWxDO> findByNodeId(String nodeId);
}

+ 18 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePresetDao.java

@ -0,0 +1,18 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePresetDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidancePresetDao extends JpaRepository<BaseProcessGuidancePresetDO, String>,
        JpaSpecificationExecutor<BaseProcessGuidancePresetDO> {
    List<BaseProcessGuidancePresetDO> findByProcessGuidanceId(String processGuidanceId);
    void deleteByProcessGuidanceId(String processGuidanceId);
}

+ 12 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/processGuidance/BaseProcessGuidancePushLogDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.base.dao.processGuidance;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePushLogDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/9/30.
 */
public interface BaseProcessGuidancePushLogDao extends JpaRepository<BaseProcessGuidancePushLogDO, String>,
        JpaSpecificationExecutor<BaseProcessGuidancePushLogDO> {
}

+ 213 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/menu/BaseAppMenuEndPoint.java

@ -0,0 +1,213 @@
package com.yihu.jw.base.endpoint.menu;
import com.yihu.jw.base.dao.menu.BaseAppMenuDao;
import com.yihu.jw.base.service.menu.BaseAppMenuService;
import com.yihu.jw.entity.base.menu.BaseAppMenu;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * app应用管理,按报表分类来做
 * Created by yeshijie on 2022/9/27.
 */
@RestController
@RequestMapping(value = "appMenu")
@Api(value = "app菜单管理",  tags = {"基础服务 - app菜单管理"})
public class BaseAppMenuEndPoint extends EnvelopRestEndpoint {
    @Resource
    private BaseAppMenuService baseAppMenuService;
    @Resource
    private BaseAppMenuDao baseAppMenuDao;
    public static Map<Integer,String> isTopName = new HashMap<>();
    public static Map<Integer,String> statusName = new HashMap<>();
    static {
        isTopName.put(1,"是");
        isTopName.put(0,"否");
        isTopName.put(null,"否");
        statusName.put(1,"生效");
        statusName.put(0,"失效");
        statusName.put(null,"失效");
    }
    @RequestMapping("/save")
    @ApiOperation(value = "保存或修改")
    public Envelop save(@ApiParam(name = "data", value = "data",required = true)
                        @RequestParam(value = "data") String data) {
        try {
            BaseAppMenu newBaseApp = toEntity(data, BaseAppMenu.class);
            if (StringUtils.isEmpty(newBaseApp.getCode())) {
                return failed("编码不能为空!");
            }
            if (StringUtils.isEmpty(newBaseApp.getName())) {
                return failed("名称不能为空!");
            }
            if (newBaseApp.getId() == null) {
                // 新增
                if (null == newBaseApp.getPid()) {
                    newBaseApp.setPid("0");
                }
                if (null == newBaseApp.getSort()) {
                    newBaseApp.setSort(99);
                }
                if(newBaseApp.getStatus() == null){
                    newBaseApp.setStatus(1);
                }
                if(newBaseApp.getIsTop() == null){
                    newBaseApp.setStatus(0);
                }
                //新增判断名称和code 是否唯一
                if(!baseAppMenuService.isUniqueCode("0", newBaseApp.getCode())){
                    return ObjEnvelop.getError("编码已存在",-1);
                }
                baseAppMenuDao.save(newBaseApp);
                return ObjEnvelop.getSuccess("操作成功",newBaseApp);
            } else {
                //修改 如果有修改name和code要判断是否唯一
                BaseAppMenu oldBaseApp = baseAppMenuDao.findById(newBaseApp.getId()).orElse(null);
                if (oldBaseApp==null){
                    return failed("id错误");
                }
                if(!oldBaseApp.getCode().equals(newBaseApp.getCode())){
                    if(!baseAppMenuService.isUniqueCode(newBaseApp.getId(), newBaseApp.getCode())){
                        return ObjEnvelop.getError("编码已存在",-1);
                    }
                }
                oldBaseApp.setCode(newBaseApp.getCode());
                oldBaseApp.setName(newBaseApp.getName());
                oldBaseApp.setPid(newBaseApp.getPid());
                oldBaseApp.setSort(null == newBaseApp.getSort() ? 99 : newBaseApp.getSort());
                oldBaseApp.setRemark(newBaseApp.getRemark());
                oldBaseApp.setIsTop(newBaseApp.getIsTop());
                oldBaseApp.setStatus(newBaseApp.getStatus());
                oldBaseApp.setImg(newBaseApp.getImg());
                oldBaseApp.setUrl(newBaseApp.getUrl());
                baseAppMenuDao.save(oldBaseApp);
                return ObjEnvelop.getSuccess("操作成功",oldBaseApp);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return failed("操作失败");
        }
    }
    @RequestMapping("/delete")
    @ApiOperation(value = "删除")
    public Envelop delete(@ApiParam(name = "id", value = "id",required = true)
                          @RequestParam(value = "id") String id) {
        try {
            baseAppMenuDao.deleteById(id);
            return success("删除成功");
        } catch (Exception e) {
            e.printStackTrace();
            return failed("删除失败");
        }
    }
    @RequestMapping("/getComboTreeData")
    @ApiOperation(value = "获取资源报表分类下拉框数据")
    public Envelop getComboTreeData() {
        try {
            List<BaseAppMenu> list = baseAppMenuDao.findAll();
            list.forEach(one->{
                one.setIsTopName(isTopName.get(one.getIsTop()));
                one.setStatusName(statusName.get(one.getStatus()));
            });
            return ListEnvelop.getSuccess ("查询成功",list);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("查询失败");
        }
    }
    @RequestMapping(value = "detail")
    @ApiOperation(value = "获取详情")
    public Envelop detail(@ApiParam(name = "id", value = "id",required = true)
                              @RequestParam(value = "id") String id) {
        try {
            BaseAppMenu one = baseAppMenuDao.findById(id).orElse(null);
            if(one == null){
                return failed("查询失败");
            }
            one.setIsTopName(isTopName.get(one.getIsTop()));
            one.setStatusName(statusName.get(one.getStatus()));
            return ObjEnvelop.getSuccess("查询成功",one);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("查询失败");
        }
    }
    @RequestMapping("/getTreeData")
    @ApiOperation(value = "根据条件,获取菜单列表(树形结构)")
    public Envelop getTreeData(@ApiParam(name = "codeName", value = "codeName")
                               @RequestParam(value = "codeName",required = false) String codeName) {
        try {
            List<BaseAppMenu> resultList = new ArrayList<>();
            // 获取最顶层的资源报表分类集合
            List<BaseAppMenu> topNodeList = baseAppMenuService.getChildrenByPid(BaseAppMenu.topPid);
            if (topNodeList.size() == 0) {
                return success("查询成功");
            }
            // 暂存最顶层资源报表分类中,满足条件的集合
            List<BaseAppMenu> topNodeListIn = new ArrayList<>();
            // 暂存最顶层资源报表分类中,不满足条件的集合
            List<BaseAppMenu> topNodeListOut = new ArrayList<>();
            if (StringUtils.isEmpty(codeName)) {
                List<BaseAppMenu> treeList = baseAppMenuService.getTreeByParents(topNodeList);
                return ListEnvelop.getSuccess("查询成功",treeList);
            }
            for (BaseAppMenu reportCategory : topNodeList) {
                if (reportCategory.getCode().contains(codeName) || reportCategory.getName().contains(codeName)) {
                    topNodeListIn.add(reportCategory);
                    continue;
                }
                topNodeListOut.add(reportCategory);
            }
            if (topNodeListIn.size() != 0) {
                List<BaseAppMenu> inList = baseAppMenuService.getTreeByParents(topNodeListIn);
                resultList.addAll(inList);
            }
            List<BaseAppMenu> outList = baseAppMenuService.getTreeByParentsAndCodeName(topNodeListOut, codeName);
            resultList.addAll(outList);
            resultList.forEach(one->{
                one.setIsTopName(isTopName.get(one.getIsTop()));
                one.setStatusName(statusName.get(one.getStatus()));
            });
            return ListEnvelop.getSuccess("查询成功",resultList);
        } catch (Exception ex) {
            ex.printStackTrace();
            return failed("查询失败");
        }
    }
}

+ 446 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/processGuidance/BaseProcessGuidanceEndpoint.java

@ -0,0 +1,446 @@
package com.yihu.jw.base.endpoint.processGuidance;
import com.yihu.jw.base.dao.processGuidance.*;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidanceNodeService;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidanceNodeWxService;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidancePushLogService;
import com.yihu.jw.base.service.processGuidance.BaseProcessGuidanceService;
import com.yihu.jw.entity.base.processGuidance.*;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * Created by yeshijie on 2022/10/8.
 */
@RestController
@RequestMapping(value = "processGuidance")
@Api(value = "全流程指引", tags = {"全流程指引"})
public class BaseProcessGuidanceEndpoint extends EnvelopRestEndpoint {
    @Resource
    private BaseProcessGuidanceService processGuidanceService;
    @Resource
    private BaseProcessGuidanceDao processGuidanceDao;
    @Resource
    private BaseProcessGuidanceNodeService processGuidanceNodeService;
    @Resource
    private BaseProcessGuidanceDeptDao processGuidanceDeptDao;
    @Resource
    private BaseProcessGuidanceNodeDao processGuidanceNodeDao;
    @Resource
    private BaseProcessGuidanceNodeAppDao processGuidanceNodeAppDao;
    @Resource
    private BaseProcessGuidanceNodeWxDao processGuidanceNodeWxDao;
    @Resource
    private BaseProcessGuidanceNodeWxService processGuidanceNodeWxService;
    @Resource
    private BaseProcessGuidanceNodeSmsDao processGuidanceNodeSmsDao;
    @Resource
    private BaseProcessGuidancePushLogService processGuidancePushLogService;
    @Resource
    private BaseProcessGuidancePresetDao processGuidancePresetDao;
    @PostMapping(value = "saveProcessGuidance")
    @ApiOperation(value = "保存或更新流程")
    public ObjEnvelop saveProcessGuidance(@ApiParam(name = "jsonData", value = "Json数据", required = true)
                                              @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);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("保存失败");
    }
    @GetMapping(value = "processGuidancePushLogPage")
    @ApiOperation(value = "获取消息推送日志分页")
    public PageEnvelop processGuidancePushLogPage(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @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<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);
    }
    @PostMapping(value = "saveProcessGuidanceNodeSms")
    @ApiOperation(value = "保存或更新节点段信")
    public ObjEnvelop saveProcessGuidanceNodeSms(@ApiParam(name = "jsonData", value = "Json数据", required = true)
                                                @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);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("保存失败");
    }
    @PostMapping(value = "saveProcessGuidanceNodeWx")
    @ApiOperation(value = "保存或更新节点微信模板")
    public ObjEnvelop saveProcessGuidanceNodeWx(@ApiParam(name = "jsonData", value = "Json数据", required = true)
                             @RequestParam(value = "jsonData") String jsonData) {
        try {
            BaseProcessGuidanceNodeWxDO nodeWxDO = toEntity(jsonData, BaseProcessGuidanceNodeWxDO.class);
            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);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("保存失败");
    }
    @GetMapping(value = "nodeWxTemplateList")
    @ApiOperation(value = "获取列表")
    public ListEnvelop<BaseProcessGuidanceNodeWxDO> list() throws Exception {
        try {
            List<BaseProcessGuidanceNodeWxDO> nodeWxDOList = processGuidanceNodeWxService.search(null, "nodeId=system", null);
            return ListEnvelop.getSuccess("查询成功",nodeWxDOList);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ListEnvelop.getError("获取失败");
    }
    @PostMapping(value = "saveProcessGuidanceNode")
    @ApiOperation(value = "保存或更新节点")
    public ObjEnvelop saveProcessGuidanceNode(@ApiParam(name = "jsonData", value = "Json数据", required = true)
                              @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);
        }catch (Exception e){
            e.printStackTrace();
        }
        return ObjEnvelop.getError("保存失败");
    }
    @GetMapping(value = "getWxTemplateByNodeId")
    @ApiOperation(value = "按节点id查找微信模板")
    public Envelop getWxTemplateByNodeId(
            @ApiParam(name = "nodeId", value = "节点id", required = true)
            @RequestParam(value = "nodeId") String nodeId) {
        try {
            List<BaseProcessGuidanceNodeWxDO> list =  processGuidanceNodeWxDao.findByNodeId(nodeId);
            if(list.size()>0){
                return ObjEnvelop.getSuccess("查询成功",list.get(0));
            }
            return ObjEnvelop.getSuccess("查询成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("查询失败");
    }
    @GetMapping(value = "getSmsByNodeId")
    @ApiOperation(value = "按节点id查找短信模板")
    public Envelop getSmsByNodeId(
            @ApiParam(name = "nodeId", value = "节点id", required = true)
            @RequestParam(value = "nodeId") String nodeId) {
        try {
            List<BaseProcessGuidanceNodeSmsDO> list =  processGuidanceNodeSmsDao.findByNodeId(nodeId);
            if(list.size()>0){
                return ObjEnvelop.getSuccess("查询成功",list.get(0));
            }
            return ObjEnvelop.getSuccess("查询成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("查询失败");
    }
    @GetMapping(value = "getProcessGuidanceNodeById")
    @ApiOperation(value = "按id查找节点模板")
    public Envelop getProcessGuidanceNodeById(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseProcessGuidanceNodeDO processGuidanceDO = processGuidanceNodeDao.findById(id).orElse(null);
            if(processGuidanceDO==null){
                return Envelop.getError("id不存在");
            }
            if(processGuidanceDO.getStatus()==1){
                processGuidanceDO.setStatusName("生效");
            }else {
                processGuidanceDO.setStatusName("失效");
            }
            List<BaseProcessGuidanceNodeAppDO> nodeAppDOList = processGuidanceNodeAppDao.findByNodeId(id);
            processGuidanceDO.setNodeAppDOList(nodeAppDOList);
            return ObjEnvelop.getSuccess("查询成功",processGuidanceDO);
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("查询失败");
    }
    @GetMapping(value = "processGuidanceNodePage")
    @ApiOperation(value = "获取节点分页")
    public PageEnvelop processGuidanceNodePage(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @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) {
        try {
            List<BaseProcessGuidanceNodeDO> processGuidanceDOList = processGuidanceNodeService.search(fields, filters, sorts, page, size);
            processGuidanceDOList.forEach(one->{
                if(one.getStatus()==1){
                    one.setStatusName("生效");
                }else {
                    one.setStatusName("失效");
                }
                List<BaseProcessGuidanceNodeAppDO> nodeAppDOList = processGuidanceNodeAppDao.findByNodeId(one.getId());
                one.setNodeAppDOList(nodeAppDOList);
            });
            int count = (int) processGuidanceNodeService.getCount(filters);
            return success(processGuidanceDOList, count, page, size, BaseProcessGuidanceNodeDO.class);
        }catch (Exception e){
            e.printStackTrace();
        }
        return PageEnvelop.getError("查询失败");
    }
    @GetMapping(value = "processGuidancePage")
    @ApiOperation(value = "获取就诊流程分页")
    public PageEnvelop processGuidancePage(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @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("失效");
            }
            List<BaseProcessGuidanceDeptDO> deptDOList = processGuidanceDeptDao.findByProcessGuidanceId(one.getId());
            one.setDeptDOList(deptDOList);
        });
        int count = (int) processGuidanceService.getCount(filters);
        return success(processGuidanceDOList, count, page, size, BaseProcessGuidanceDO.class);
    }
    @GetMapping(value = "getProcessGuidanceById")
    @ApiOperation(value = "按id查找流程")
    public Envelop getProcessGuidanceById(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            BaseProcessGuidanceDO processGuidanceDO = processGuidanceDao.findById(id).orElse(null);
            if(processGuidanceDO==null){
                return Envelop.getError("id不存在");
            }
            if(processGuidanceDO.getStatus()==1){
                processGuidanceDO.setStatusName("生效");
            }else {
                processGuidanceDO.setStatusName("失效");
            }
            List<BaseProcessGuidanceDeptDO> deptDOList = processGuidanceDeptDao.findByProcessGuidanceId(id);
            processGuidanceDO.setDeptDOList(deptDOList);
            List<BaseProcessGuidancePresetDO> presetDOList = processGuidancePresetDao.findByProcessGuidanceId(id);
            processGuidanceDO.setPresetDOList(presetDOList);
            return ObjEnvelop.getSuccess("查询成功",processGuidanceDO);
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("查询失败");
    }
    @PostMapping(value = "delProcessGuidance")
    @ApiOperation(value = "删除就诊流程")
    public Envelop delProcessGuidance(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            processGuidanceDeptDao.deleteByProcessGuidanceId(id);
            processGuidancePresetDao.deleteByProcessGuidanceId(id);
            processGuidanceDao.deleteById(id);
            return success("删除成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("删除失败");
    }
    @PostMapping(value = "delProcessGuidanceNode")
    @ApiOperation(value = "删除节点模板")
    public Envelop delProcessGuidanceNode(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) {
        try {
            processGuidanceNodeAppDao.deleteByNodeId(id);
            processGuidanceNodeDao.deleteById(id);
            return success("删除成功");
        }catch (Exception e){
            e.printStackTrace();
        }
        return Envelop.getError("删除失败");
    }
}

+ 101 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/menu/BaseAppMenuService.java

@ -0,0 +1,101 @@
package com.yihu.jw.base.service.menu;
import com.yihu.jw.base.dao.menu.BaseAppMenuDao;
import com.yihu.jw.entity.base.menu.BaseAppMenu;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by yeshijie on 2022/9/27.
 */
@Service
public class BaseAppMenuService extends BaseJpaService {
    @Resource
    private BaseAppMenuDao baseAppMenuDao;
    /**
     * 验证资源报表分类编码是否唯一
     *
     * @param id   主键
     * @param code 编码
     * @return true:唯一,false:不唯一
     */
    public Boolean isUniqueCode(String id, String code) {
        BaseAppMenu rsReportCategory = baseAppMenuDao.isUniqueCode(id, code);
        return rsReportCategory == null;
    }
    /**
     * 根据父级ID,获取其子节点;父级ID为 -1 时,返回顶级节点。
     * @param pid 父级ID。
     * @return 子节点集合
     */
    public List<BaseAppMenu> getChildrenByPid(String pid) {
        List<BaseAppMenu> children;
        if (BaseAppMenu.topPid.equals(pid)) {
            children = baseAppMenuDao.getTopParents();
        } else {
            children = baseAppMenuDao.getChildrenByPid(pid);
        }
        return children;
    }
    /**
     * 根据父级集合,递归获取父级及其自子级集合,形成树形结构
     * @param parentList 父级集合
     * @return 父级及其子集的树形结构数据
     */
    public List<BaseAppMenu> getTreeByParents(List<BaseAppMenu> parentList) {
        List<BaseAppMenu> resultList = new ArrayList<>();
        for (int i = 0; i < parentList.size(); i++) {
            BaseAppMenu parent = parentList.get(i);
            List<BaseAppMenu> childList = this.getChildrenByPid(parent.getId());
            List<BaseAppMenu> childTreeList = getTreeByParents(childList);
            parent.setChildren(childTreeList);
            resultList.add(parent);
        }
        return resultList;
    }
    /**
     * 递归不满足条件的父级集合,获取其满足条件的子集,并返回子集及其父级的树形结构
     *
     * @param parents  不满足条件的父级集合
     * @param codeName 资源报表分类编码或名称
     * @return 满足条件的子集及其父级的树形结构
     */
    public List<BaseAppMenu> getTreeByParentsAndCodeName(List<BaseAppMenu> parents, String codeName) throws ParseException {
        List<BaseAppMenu> treeData = new ArrayList<>();
        for (BaseAppMenu parent : parents) {
            String parentId = parent.getId();
            List<BaseAppMenu> childrenTree = new ArrayList<>();
            List<BaseAppMenu> children = this.getChildrenByPid(parentId);
            if (children.size() == 0) continue;
            // 获取满足条件的子节点
            String filters = "pid=" + parentId + ";code?" + codeName + " g1;name?" + codeName + " g1;";
            List<BaseAppMenu> childrenIin = (List<BaseAppMenu>) this.search(filters);
            if (childrenIin.size() != 0) {
                childrenTree.addAll(getTreeByParents(childrenIin));
            }
            // 递归不满足条件的子节点
            children.removeAll(childrenIin);
            if (children.size() != 0) {
                childrenTree.addAll(getTreeByParentsAndCodeName(children, codeName));
            }
            if (childrenTree.size() != 0) {
                parent.setChildren(childrenTree);
                treeData.add(parent);
            }
        }
        return treeData;
    }
}

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceDeptService.java

@ -0,0 +1,20 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceDeptDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceDeptDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidanceDeptService extends BaseJpaService<BaseProcessGuidanceDeptDO, BaseProcessGuidanceDeptDao> {
    @Resource
    private BaseProcessGuidanceDeptDao processGuidanceDeptDao;
}

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeAppService.java

@ -0,0 +1,20 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeAppDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeAppDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidanceNodeAppService extends BaseJpaService<BaseProcessGuidanceNodeAppDO, BaseProcessGuidanceNodeAppDao> {
    @Resource
    private BaseProcessGuidanceNodeAppDao processGuidanceNodeAppDao;
}

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeService.java

@ -0,0 +1,20 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidanceNodeService extends BaseJpaService<BaseProcessGuidanceNodeDO, BaseProcessGuidanceNodeDao> {
    @Resource
    private BaseProcessGuidanceNodeDao processGuidanceNodeDao;
}

+ 19 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeSmsService.java

@ -0,0 +1,19 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeSmsDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeSmsDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidanceNodeSmsService extends BaseJpaService<BaseProcessGuidanceNodeSmsDO, BaseProcessGuidanceNodeSmsDao> {
    @Resource
    private BaseProcessGuidanceNodeSmsDao processGuidanceSmsDao;
}

+ 19 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceNodeWxService.java

@ -0,0 +1,19 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidanceNodeWxDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidanceNodeWxDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidanceNodeWxService extends BaseJpaService<BaseProcessGuidanceNodeWxDO, BaseProcessGuidanceNodeWxDao> {
    @Resource
    private BaseProcessGuidanceNodeWxDao processGuidanceNodeWxDao;
}

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePresetService.java

@ -0,0 +1,20 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidancePresetDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePresetDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidancePresetService extends BaseJpaService<BaseProcessGuidancePresetDO, BaseProcessGuidancePresetDao> {
    @Resource
    private BaseProcessGuidancePresetDao processGuidancePresetDao;
}

+ 20 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidancePushLogService.java

@ -0,0 +1,20 @@
package com.yihu.jw.base.service.processGuidance;
import com.yihu.jw.base.dao.processGuidance.BaseProcessGuidancePushLogDao;
import com.yihu.jw.entity.base.processGuidance.BaseProcessGuidancePushLogDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidancePushLogService extends BaseJpaService<BaseProcessGuidancePushLogDO, BaseProcessGuidancePushLogDao> {
    @Resource
    private BaseProcessGuidancePushLogDao processGuidancePushLogDao;
}

+ 21 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/processGuidance/BaseProcessGuidanceService.java

@ -0,0 +1,21 @@
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.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * Created by yeshijie on 2022/10/8.
 */
@Service
public class BaseProcessGuidanceService extends BaseJpaService<BaseProcessGuidanceDO, BaseProcessGuidanceDao> {
    @Resource
    private BaseProcessGuidanceDao processGuidanceDao;
}

+ 2 - 10
svr/svr-basic/src/main/java/com/yihu/jw/basic/resource/service/RsReportCategoryService.java

@ -94,11 +94,7 @@ public class RsReportCategoryService extends BaseJpaService<RsReportCategory, Rs
     */
    public Boolean isUniqueCode(Integer id, String code) {
        RsReportCategory rsReportCategory = rsReportCategoryDao.isUniqueCode(id, code);
        if (rsReportCategory == null) {
            return true;
        } else {
            return false;
        }
        return rsReportCategory == null;
    }
    /**
@ -110,11 +106,7 @@ public class RsReportCategoryService extends BaseJpaService<RsReportCategory, Rs
     */
    public Boolean isUniqueName(Integer id, String name) {
        RsReportCategory rsReportCategory = rsReportCategoryDao.isUniqueName(id, name);
        if (rsReportCategory == null) {
            return true;
        } else {
            return false;
        }
        return rsReportCategory == null;
    }
    /**