增加超时统计列表和超时提醒参数设置页面

master
zengwh 5 years ago
parent 86ec2bd8af
commit 0018491838

Binary file not shown.

@ -10,4 +10,27 @@ END
#查询上方函数
select * from sys.sql_modules where definition like '%FUNCTION%'
####################################################################################################
#医生待审核ArchiveState值
'1','16','48','512','256','272','304','768'
#医生质控员待审核ArchiveState值
'2','18','50','514'
#科主任待审核ArchiveState值
'6','22','54','518'
#护士待审核ArchiveState值
'1','2','6','14','256','512','514','518','526','768'
#护士质控员待审核ArchiveState值
'16','18','22','30','272'
#护士长待审核ArchiveState值
'62'
#病案室待审核ArchiveState值
'64','1024'

@ -0,0 +1,31 @@
package com.emr.config;
import com.emr.dao.EmrOvertimeSetMapper;
import com.emr.dao.Emr_Commom_SetMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/10/27 15:47
* @UpdateUser:
* @UpdateDate: 2020/10/27 15:47
* @UpdateRemark:
* @Version: 1.0
*/
@Configuration
public class CronValueConfig {
@Autowired
private EmrOvertimeSetMapper overtimeSetMapper;
@Bean
public String getCronValue()
{
String remindTime = overtimeSetMapper.selectByPrimaryKey(1).getRemindTime();
return remindTime;
}
}

@ -0,0 +1,90 @@
package com.emr.controller;
import com.emr.dao.EmrOvertimeSetMapper;
import com.emr.entity.EmrOvertimeSet;
import com.emr.entity.Emr_Dictionary;
import com.emr.service.ipml.EmrOvertimeSetService;
import com.emr.util.ExceptionPrintUtil;
import com.emr.util.Msg;
import com.emr.vo.CommomTree;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/10/27 8:57
* @UpdateUser:
* @UpdateDate: 2020/10/27 8:57
* @UpdateRemark:
* @Version: 1.0
*/
@Controller
@RequestMapping("overtime")
public class OverTimeSetController {
@Autowired
private EmrOvertimeSetService overtimeSetService;
/**
*
* @param model
* @return
*/
@RequestMapping("overtimeSet")
public String overtimeSet(Model model){
EmrOvertimeSet overtimeSet = overtimeSetService.selectByPrimaryKey(1);
model.addAttribute("overtimeSet",overtimeSet);
return "overtimeSet/overtimeSet";
}
/**
*
* @param overtimeSet
* @return
*/
@RequestMapping("updateOverTimeSet")
@ResponseBody
public Msg updateOverTimeSet(EmrOvertimeSet overtimeSet) throws Exception{
overtimeSetService.updateOverTimeSet(overtimeSet);
return Msg.success();
}
/**
*
* @return
*/
@RequestMapping("selectRemindDeptTree")
@ResponseBody
public List<CommomTree> selectRemindDeptTree(){
try {
return overtimeSetService.selectRemindDeptTree();
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
return null;
}
}
/**
*
* @return
*/
@RequestMapping("selectRemindDeptUserTree")
@ResponseBody
public List<CommomTree> selectRemindDeptUserTree(){
try {
return overtimeSetService.selectRemindDeptUserTree();
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
return null;
}
}
}

@ -47,7 +47,7 @@ public class RecordController {
if(offset != null && limit != null) {
PageHelper.offsetPage(offset, limit);
}
List<SubmitRecord> submitRecords = recordService.selectCountGroupDept(recordSearch);
List<SubmitRecord> submitRecords = recordService.selectUnCountGroupDept(recordSearch);
return new OffsetLimitPage((Page) submitRecords);
}
@ -83,7 +83,7 @@ public class RecordController {
"headNurseCount,unHeadNurseCount,headNursePercent";
//构造excel的数据
try {
List<SubmitRecord> list = recordService.selectCountGroupDept(recordSearch);
List<SubmitRecord> list = recordService.selectUnCountGroupDept(recordSearch);
//文件名
String fileName = "病案提交统计" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil
@ -152,7 +152,7 @@ public class RecordController {
"unNurseSubmitCount,unNurseCheckCount,unHeadNurseCount,headNurseCount";
//构造excel的数据
try {
List<SubmitRecord> list = recordService.selectCountGroupDept(recordSearch);
List<SubmitRecord> list = recordService.selectUnCountGroupDept(recordSearch);
//文件名
String fileName = "科室病案超期" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".xls";
//ExportExcelUtil

@ -7,7 +7,6 @@
package com.emr.controller;
import com.emr.dao.ArchiveFlowRoleMapper;
import com.emr.dao.ArchiveRemindInfoMapper;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.ipml.ArchiveFlowInfoService;
@ -19,7 +18,6 @@ import com.emr.vo.ArchiveFlowInfoVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
@ -46,8 +44,6 @@ public class beHospitaledController {
private ArchiveFlowRoleMapper flowRoleMapper;
@Autowired
private ArchiveFlowInfoService flowInfoService;
@Autowired
private ArchiveRemindInfoMapper remindInfoMapper;
@RequestMapping(value = "/beHosps")
public String inHospitals(){
return "beHospitaledDir/beHospList";
@ -267,23 +263,6 @@ public class beHospitaledController {
List<Archive_Master> list = archiveMasterService.loadOverTimeDoctorInCharge();
return Msg.success().add("list",list);
}
/**
*
* @param deptName
* @return
*/
@RequestMapping("remind")
@ResponseBody
public Msg remind(String deptName,HttpServletRequest request){
//查询是否今天是否通知过
List<ArchiveRemindInfo> list = remindInfoMapper.selectAllByDeptName(deptName);
if(!CollectionUtils.isEmpty(list)){
return Msg.fail("该科室今天已通知过!");
}
archiveMasterService.remind(deptName,request);
return Msg.success();
}
}

@ -0,0 +1,21 @@
package com.emr.dao;
import com.emr.entity.ArchiveRemindDeptUser;
import java.util.List;
public interface ArchiveRemindDeptUserMapper {
int deleteByPrimaryKey(Integer id);
int insert(ArchiveRemindDeptUser record);
int insertSelective(ArchiveRemindDeptUser record);
ArchiveRemindDeptUser selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(ArchiveRemindDeptUser record);
int updateByPrimaryKey(ArchiveRemindDeptUser record);
List<ArchiveRemindDeptUser> selectAll();
}

@ -1,22 +0,0 @@
package com.emr.dao;
import com.emr.entity.ArchiveRemindInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ArchiveRemindInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(ArchiveRemindInfo record);
int insertSelective(ArchiveRemindInfo record);
ArchiveRemindInfo selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(ArchiveRemindInfo record);
int updateByPrimaryKey(ArchiveRemindInfo record);
List<ArchiveRemindInfo> selectAllByDeptName(@Param("deptName")String deptName);
}

@ -0,0 +1,21 @@
package com.emr.dao;
import com.emr.entity.ArchiveRemindcancleDept;
import java.util.List;
public interface ArchiveRemindcancleDeptMapper {
int deleteByPrimaryKey(Integer id);
int insert(ArchiveRemindcancleDept record);
int insertSelective(ArchiveRemindcancleDept record);
ArchiveRemindcancleDept selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(ArchiveRemindcancleDept record);
int updateByPrimaryKey(ArchiveRemindcancleDept record);
List<ArchiveRemindcancleDept> selectAll();
}

@ -8,8 +8,8 @@ import com.emr.vo.SubmitRecordStatistics;
import java.util.List;
public interface RecordMapper {
//查询分组科室数量
List<SubmitRecord> selectCountGroupDept(RecordSearch recordSearch);
//查询分组科室各角色待审核数量
List<SubmitRecord> selectUnCountGroupDept(RecordSearch recordSearch);
//根据审核角色id和分组科室查询该科室完成份数
List<SubmitRecord> selectCountByRoleAndDeptName(RecordSearch recordSearch);
//根据科室分组查询护士长审核份数

@ -0,0 +1,105 @@
package com.emr.entity;
import java.io.Serializable;
public class ArchiveRemindDeptUser implements Serializable {
private Integer id;
private String deptCode;
private String userName;
private Integer roleId;
private Integer int1;
private String str1;
private Integer int2;
private String str2;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode == null ? null : deptCode.trim();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public Integer getInt1() {
return int1;
}
public void setInt1(Integer int1) {
this.int1 = int1;
}
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1 == null ? null : str1.trim();
}
public Integer getInt2() {
return int2;
}
public void setInt2(Integer int2) {
this.int2 = int2;
}
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2 == null ? null : str2.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", deptCode=").append(deptCode);
sb.append(", userName=").append(userName);
sb.append(", roleId=").append(roleId);
sb.append(", int1=").append(int1);
sb.append(", str1=").append(str1);
sb.append(", int2=").append(int2);
sb.append(", str2=").append(str2);
sb.append("]");
return sb.toString();
}
}

@ -1,62 +0,0 @@
package com.emr.entity;
import java.io.Serializable;
import java.util.Date;
public class ArchiveRemindInfo implements Serializable {
private Integer id;
private String deptName;
private Date createTime;
private String createUser;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName == null ? null : deptName.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser == null ? null : createUser.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", deptName=").append(deptName);
sb.append(", createTime=").append(createTime);
sb.append(", createUser=").append(createUser);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,83 @@
package com.emr.entity;
import java.io.Serializable;
public class ArchiveRemindcancleDept implements Serializable {
private Integer id;
private String deptCode;
private Integer int1;
private String str1;
private Integer int2;
private String str2;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode == null ? null : deptCode.trim();
}
public Integer getInt1() {
return int1;
}
public void setInt1(Integer int1) {
this.int1 = int1;
}
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1 == null ? null : str1.trim();
}
public Integer getInt2() {
return int2;
}
public void setInt2(Integer int2) {
this.int2 = int2;
}
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2 == null ? null : str2.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", deptCode=").append(deptCode);
sb.append(", int1=").append(int1);
sb.append(", str1=").append(str1);
sb.append(", int2=").append(int2);
sb.append(", str2=").append(str2);
sb.append("]");
return sb.toString();
}
}

@ -7,6 +7,20 @@ public class EmrOvertimeSet implements Serializable {
private Integer days;
private Integer deadDays;
private Integer surplusDays;
private String remindTime;
private Integer int1;
private String str1;
private Integer int2;
private String str2;
private static final long serialVersionUID = 1L;
public Integer getId() {
@ -25,6 +39,62 @@ public class EmrOvertimeSet implements Serializable {
this.days = days;
}
public Integer getDeadDays() {
return deadDays;
}
public void setDeadDays(Integer deadDays) {
this.deadDays = deadDays;
}
public Integer getSurplusDays() {
return surplusDays;
}
public void setSurplusDays(Integer surplusDays) {
this.surplusDays = surplusDays;
}
public String getRemindTime() {
return remindTime;
}
public void setRemindTime(String remindTime) {
this.remindTime = remindTime == null ? null : remindTime.trim();
}
public Integer getInt1() {
return int1;
}
public void setInt1(Integer int1) {
this.int1 = int1;
}
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1 == null ? null : str1.trim();
}
public Integer getInt2() {
return int2;
}
public void setInt2(Integer int2) {
this.int2 = int2;
}
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2 == null ? null : str2.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -33,6 +103,13 @@ public class EmrOvertimeSet implements Serializable {
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", days=").append(days);
sb.append(", deadDays=").append(deadDays);
sb.append(", surplusDays=").append(surplusDays);
sb.append(", remindTime=").append(remindTime);
sb.append(", int1=").append(int1);
sb.append(", str1=").append(str1);
sb.append(", int2=").append(int2);
sb.append(", str2=").append(str2);
sb.append("]");
return sb.toString();
}

@ -0,0 +1,70 @@
package com.emr.quart;
import com.emr.dao.ArchiveRemindDeptUserMapper;
import com.emr.dao.ArchiveRemindcancleDeptMapper;
import com.emr.entity.ArchiveRemindDeptUser;
import com.emr.entity.ArchiveRemindcancleDept;
import com.emr.entity.Archive_Master_Vo;
import com.emr.service.ipml.RecordService;
import com.emr.service.ipml.StatisticsService;
import com.emr.vo.RecordSearch;
import com.emr.vo.User;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/10/27 15:49
* @UpdateUser:
* @UpdateDate: 2020/10/27 15:49
* @UpdateRemark:
* @Version: 1.0
*/
@Component
public class Task1 {
@Value("${overDateSet}")
private String overDateSet;
@Autowired
private RecordService recordService;
@Autowired
private ArchiveRemindcancleDeptMapper remindcancleDeptMapper;
@Autowired
private ArchiveRemindDeptUserMapper remindDeptUserMapper;
@Autowired
private StatisticsService statisticsService;
@Scheduled(cron="#{@getCronValue}")
public void task1(){
try {
List<User> userList = statisticsService.getUserList("admin");
RecordSearch recordSearch = new RecordSearch();
//查询超期记录
//List<Archive_Master_Vo> submitRecords = recordService.selectRecordGroupDeptAndRole(recordSearch);
/*if(!CollectionUtils.isEmpty(submitRecords)){
//查询科室取消提醒集合
List<ArchiveRemindcancleDept> cancleDeptList = remindcancleDeptMapper.selectAll();
//查询科室取消单独开启的用户
List<ArchiveRemindDeptUser> deptUsers = remindDeptUserMapper.selectAll();
//获取用户集合
List<User> userList = statisticsService.getUserList();
for(Archive_Master_Vo vo : submitRecords){
//通知医生
//通知医生质控员
}
}*/
}catch (Exception e){
e.printStackTrace();
}
}
}

@ -121,8 +121,6 @@ public interface Archive_MasterService {
List<Archive_Master> loadDoctorInCharge(String deptName);
List<Archive_Master> loadOverTimeDoctorInCharge();
void remind(String deptName, HttpServletRequest request);
}

@ -268,7 +268,7 @@ public class ArchiveFlowInfoService {
Emr_Fault_Type obj = new Emr_Fault_Type();
obj.setEffective(1);
List<Emr_Fault_Type> typeList = faultTypeService.selectByCol(obj);
List<User> userList = statisticsService.getUserList(userNameTemp);
List<User> userList = statisticsService.getUserList();
//替换姓名
if (!CollectionUtils.isEmpty(userList)) {
for (ArchiveFlowInfoVo infoVo : list) {

@ -55,8 +55,6 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
private Zd_AssortMapper assortMapper;
@Autowired
private Emr_DictionaryMapper dictionaryMapper;
@Autowired
private ArchiveRemindInfoMapper remindInfoMapper;
/**
*
* */
@ -1085,47 +1083,6 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
return null;
}
/**
*
* @param deptName
*/
@Override
public void remind(String deptName,HttpServletRequest request) {
//通知第三方平台
remindOtherSystem(deptName);
//通知该平台
remindThisSystem(deptName);
//插入科室通知记录表
insertRemindInfoData(deptName,request);
}
/**
*
* @param deptName
*/
private void insertRemindInfoData(String deptName,HttpServletRequest request) {
ArchiveRemindInfo remindInfo = new ArchiveRemindInfo();
remindInfo.setDeptName(deptName);
remindInfo.setCreateTime(new Date());
Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER");
remindInfo.setCreateUser(user.getUserName());
remindInfoMapper.insert(remindInfo);
}
/**
*
* @param deptName
*/
private void remindThisSystem(String deptName) {
}
/**
*
* @param deptName
*/
private void remindOtherSystem(String deptName) {
}
}

@ -0,0 +1,177 @@
package com.emr.service.ipml;
import com.emr.dao.ArchiveRemindDeptUserMapper;
import com.emr.dao.ArchiveRemindcancleDeptMapper;
import com.emr.dao.EmrOvertimeSetMapper;
import com.emr.entity.ArchiveRemindDeptUser;
import com.emr.entity.ArchiveRemindcancleDept;
import com.emr.entity.EmrOvertimeSet;
import com.emr.entity.Emr_Dictionary;
import com.emr.service.Emr_DictionaryService;
import com.emr.vo.CommomTree;
import com.emr.vo.User;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/10/27 10:55
* @UpdateUser:
* @UpdateDate: 2020/10/27 10:55
* @UpdateRemark:
* @Version: 1.0
*/
@Service
@Transactional
public class EmrOvertimeSetService {
@Autowired
private EmrOvertimeSetMapper overtimeSetMapper;
@Autowired
private Emr_DictionaryService dictionaryService;
@Autowired
private StatisticsService statisticsService;
@Autowired
private ArchiveRemindcancleDeptMapper remindcancleDeptMapper;
@Autowired
private ArchiveRemindDeptUserMapper remindDeptUserMapper;
/**
*
* @return
*/
public EmrOvertimeSet selectByPrimaryKey(Integer id){
return overtimeSetMapper.selectByPrimaryKey(id);
}
/**
*
* @param overtimeSet
*/
public void updateOverTimeSet(EmrOvertimeSet overtimeSet){
overtimeSetMapper.updateByPrimaryKeySelective(overtimeSet);
}
/**
*
* @return
*/
public List<CommomTree> selectRemindDeptTree() throws Exception {
List<CommomTree> list = new ArrayList<>();
//查询科室
List<Emr_Dictionary> dictionaries = dictionaryService.dicByClo(new Emr_Dictionary());
if(!CollectionUtils.isEmpty(dictionaries)){
//查询取消科室
List<ArchiveRemindcancleDept> archiveRemindcancleDepts = remindcancleDeptMapper.selectAll();
for(Emr_Dictionary dictionary : dictionaries) {
//获取编码
String code = dictionary.getCode();
if(StringUtils.isNotBlank(code)) {
CommomTree tree1 = new CommomTree();
tree1.setId(dictionary.getId());
tree1.setCode(dictionary.getCode());
tree1.setName(dictionary.getName());
tree1.setParentId(0);
//判断是否有对应取消提醒的科室选中
if(!CollectionUtils.isEmpty(archiveRemindcancleDepts)){
for(ArchiveRemindcancleDept obj : archiveRemindcancleDepts){
if(obj.getDeptCode().equals(code)){
tree1.setChecked("true");
break;
}
}
}
list.add(tree1);
}
}
}
return list;
}
/**
*
* @return
*/
public List<CommomTree> selectRemindDeptUserTree() throws Exception {
//查询科室
List<Emr_Dictionary> dictionaries = dictionaryService.dicByClo(new Emr_Dictionary());
List<CommomTree> list = new ArrayList<>();
if(!CollectionUtils.isEmpty(dictionaries)){
//查询用户信息
List<User> userList = statisticsService.getUserList();
if(!CollectionUtils.isEmpty(userList)){
//查询取消科室提醒单独提醒的用户
List<ArchiveRemindDeptUser> remindDeptUsers = remindDeptUserMapper.selectAll();
//定义角色id集合
Integer[] roleList = {1,2,3,5,6,7,8};
//设定用户id从20000开始
int id = 1;
int twoParentId = 0;
//组织用户
for(Emr_Dictionary dictionary : dictionaries) {
//获取编码
String code = dictionary.getCode();
if(StringUtils.isNotBlank(code)) {
CommomTree tree1 = new CommomTree();
tree1.setId(id);
twoParentId = id;
id++;
tree1.setCode(dictionary.getCode());
tree1.setName(dictionary.getName());
tree1.setParentId(0);
//过滤字典类别科室 科室code=null
//定义存在用户的科室
boolean flag = false;
boolean checkedFlag = false;
for (User user : userList) {
//获取用户所属科室
String deptCode = user.getDeptCode();
//判断是否是审核角色
boolean contains = Arrays.asList(roleList).contains(user.getRoleId());
if (StringUtils.isNotBlank(deptCode) && deptCode.equals(code) && contains) {
CommomTree tree2 = new CommomTree();
tree2.setId(id);
id++;
tree2.setParentId(twoParentId);
String name = user.getName();
if(StringUtils.isNotBlank(name)){
tree2.setName(user.getUserName() + "-" + name);
}else{
tree2.setName(user.getUserName());
}
//判断是否用户选中
if(!CollectionUtils.isEmpty(remindDeptUsers)){
for(ArchiveRemindDeptUser remindDeptUser : remindDeptUsers){
if(remindDeptUser.getUserName().equals(user.getUserName())){
tree2.setChecked("true");
checkedFlag = true;
break;
}
}
}
list.add(tree2);
flag = true;
}
}
//科室不存在用户则移除。不添加
if(flag){
if(checkedFlag) {
tree1.setChecked("true");
}
list.add(tree1);
}
}
}
}
}
return list;
}
}

@ -28,7 +28,7 @@ public class RecordService {
*
* @return
*/
public List<SubmitRecord> selectCountGroupDept(RecordSearch recordSearch){
public List<SubmitRecord> selectUnCountGroupDept(RecordSearch recordSearch){
Integer infoId = recordSearch.getInfoId();
if(null != infoId){
//有按审核角色查询
@ -43,151 +43,58 @@ public class RecordService {
}
}
//按科室查询总出院人数
List<SubmitRecord> submitRecords = recordMapper.selectCountGroupDept(recordSearch);
if(!CollectionUtils.isEmpty(submitRecords)) {
//获取科室集合
String deptNames = getDepts(submitRecords);
recordSearch.setDeptName(deptNames);
//查询医生该科室审核份数
int roleId = 2;
String backRoleId = "9";
recordSearch.setRoleId(roleId);
recordSearch.setBackRoleId(backRoleId);
List<SubmitRecord> doctorSubmitList = recordMapper.selectCountByRoleAndDeptName(recordSearch);
//查询医生质控员该科室审核份数
roleId = 3;
recordSearch.setRoleId(roleId);
List<SubmitRecord> doctorCheckList = recordMapper.selectCountByRoleAndDeptName(recordSearch);
//查询科主任该科室审核份数
roleId = 4;
recordSearch.setRoleId(roleId);
List<SubmitRecord> directorCheckList = recordMapper.selectCountByRoleAndDeptName(recordSearch);
//查询护士审核份数
roleId = 5;
backRoleId = "10";
recordSearch.setRoleId(roleId);
recordSearch.setBackRoleId(backRoleId);
List<SubmitRecord> nurseList = recordMapper.selectCountByRoleAndDeptName(recordSearch);
//查询护士质控员审核份数
roleId = 6;
recordSearch.setRoleId(roleId);
List<SubmitRecord> nurseCheckList = recordMapper.selectCountByRoleAndDeptName(recordSearch);
//护士长
roleId = 7;
backRoleId = "'9','10'";
recordSearch.setRoleId(roleId);
recordSearch.setBackRoleId(backRoleId);
List<SubmitRecord> headNurseList = recordMapper.selectCountByRoleAndDeptName(recordSearch);
//填充各个角色数据
selectList(submitRecords,doctorSubmitList,doctorCheckList,directorCheckList,nurseList,nurseCheckList,headNurseList);
}
return submitRecords;
List<SubmitRecord> unSubmitRecords = recordMapper.selectUnCountGroupDept(recordSearch);
//填充各个角色数据
selectList(unSubmitRecords);
return unSubmitRecords;
}
/**
*
* @param submitRecords
* @param doctorSubmitList
* @param doctorCheckList
* @param directorCheckList
* @param nurseList
* @param nurseCheckList
* @param headNurseList
*/
private void selectList(List<SubmitRecord> submitRecords, List<SubmitRecord> doctorSubmitList,
List<SubmitRecord> doctorCheckList,
List<SubmitRecord> directorCheckList,
List<SubmitRecord> nurseList,
List<SubmitRecord> nurseCheckList,
List<SubmitRecord> headNurseList) {
for (SubmitRecord obj:submitRecords) {
String deptName = obj.getDeptName();
int count = obj.getCount();
if(count > 0) {
//医生提交
int doctorSubmitCount = getSubmitOrUnSubmit(doctorSubmitList, deptName);
obj.setUnDoctorSubmitCount(count - doctorSubmitCount);
obj.setDoctorSubmitCount(doctorSubmitCount);
obj.setDoctorSubmitPercent(Math.round(doctorSubmitCount * 100 / count) + "%");
//医生质控员提交
int doctorCheckCount = getSubmitOrUnSubmit(doctorCheckList, deptName);
obj.setUnDoctorCheckCount(doctorSubmitCount - doctorCheckCount);
obj.setDoctorCheckCount(doctorCheckCount);
obj.setDoctorCheckPercent(Math.round(doctorCheckCount * 100 / count) + "%");
//科主任提交
int directorCheckCount = getSubmitOrUnSubmit(directorCheckList, deptName);
obj.setUnDirectorCheckCount(doctorCheckCount - directorCheckCount);
obj.setDirectorCheckCount(directorCheckCount);
obj.setDirectorCheckPercent(Math.round(directorCheckCount * 100 / count) + "%");
//护士未提交
//护士提交
int nurseSubmitCount = getSubmitOrUnSubmit(nurseList, deptName);
obj.setUnNurseSubmitCount(count - nurseSubmitCount);
obj.setNurseSubmitCount(nurseSubmitCount);
obj.setNurseSubmitPercent(Math.round(nurseSubmitCount * 100 / count) + "%");
//护士质控员提交
int nurseCheckCount = getSubmitOrUnSubmit(nurseCheckList, deptName);
obj.setUnNurseCheckCount(nurseSubmitCount - nurseCheckCount);
obj.setNurseCheckCount(nurseCheckCount);
obj.setNurseCheckPercent(Math.round(nurseCheckCount * 100 / count) + "%");
//护士长提交
int headNurseCount = getSubmitOrUnSubmit(headNurseList, deptName);
//定义护士长前提交数量,医生和护士之前的最后一个节点都提交的数量。取科主任和护士质控员中小的值
int beforeHeadNurse = 0;
if(directorCheckCount < nurseCheckCount){
beforeHeadNurse = directorCheckCount;
}else{
beforeHeadNurse = nurseCheckCount;
}
//护士长未提交等于提交上来的减去护士上长自己提交的
obj.setUnHeadNurseCount(beforeHeadNurse - headNurseCount);
obj.setHeadNurseCount(headNurseCount);
obj.setHeadNursePercent(Math.round(headNurseCount * 100 / count) + "%");
}
}
}
/**
*
* @param list
* @param deptName
* @return
*/
private int getSubmitOrUnSubmit(List<SubmitRecord> list,String deptName){
int submitCount = 0;
if(!CollectionUtils.isEmpty(list)) {
for (SubmitRecord objTemp : list) {
if (deptName.equals(objTemp.getDeptName())) {
return objTemp.getCount();
}
}
}
return submitCount;
}
/**
* code
* @param list
* @return
* @param unSubmitRecords
*/
private String getDepts(List<SubmitRecord> list) {
StringBuilder depeNames = new StringBuilder();
for (SubmitRecord obj:list) {
if(StringUtils.isNotBlank(obj.getDeptName())) {
if (StringUtils.isNoneBlank(depeNames)) {
depeNames.append(",").append(obj.getDeptName());
} else {
depeNames.append(obj.getDeptName());
private void selectList( List<SubmitRecord> unSubmitRecords) {
if(!CollectionUtils.isEmpty(unSubmitRecords)) {
for (SubmitRecord obj : unSubmitRecords) {
int count = obj.getCount();
if (count > 0) {
//医生提交== 总数 - 医生未提交
int doctorSubmitCount = count - obj.getUnDoctorSubmitCount();
obj.setDoctorSubmitCount(doctorSubmitCount);
obj.setDoctorSubmitPercent(Math.round(doctorSubmitCount * 100 / count) + "%");
//医生质控员提交= 医生提交 - 医生质控员未提交
int doctorCheckCount = doctorSubmitCount - obj.getUnDoctorCheckCount();
obj.setDoctorCheckCount(doctorCheckCount);
obj.setDoctorCheckPercent(Math.round(doctorCheckCount * 100 / count) + "%");
//科主任提交= 医生质控员提交 - 主任未提交
int directorCheckCount = doctorCheckCount - obj.getUnDirectorCheckCount();
obj.setDirectorCheckCount(directorCheckCount);
obj.setDirectorCheckPercent(Math.round(directorCheckCount * 100 / count) + "%");
//护士提交= 总数 - 护士未提交
int nurseSubmitCount = count - obj.getUnNurseSubmitCount();
obj.setNurseSubmitCount(nurseSubmitCount);
obj.setNurseSubmitPercent(Math.round(nurseSubmitCount * 100 / count) + "%");
//护士质控员提交= 护士提交-护士质控员未提交
int nurseCheckCount = nurseSubmitCount - obj.getUnNurseCheckCount();
obj.setUnNurseCheckCount(nurseSubmitCount - nurseCheckCount);
obj.setNurseCheckCount(nurseCheckCount);
obj.setNurseCheckPercent(Math.round(nurseCheckCount * 100 / count) + "%");
//护士长提交= 科主任或护士质控员提交的数 - 护士长未提交
//定义护士长前提交数量,医生和护士之前的最后一个节点都提交的数量。取科主任和护士质控员中小的值
int beforeHeadNurse = directorCheckCount < nurseCheckCount ? directorCheckCount : nurseCheckCount;
int headNurseCount = beforeHeadNurse - obj.getUnHeadNurseCount();
//护士长未提交等于提交上来的减去护士上长自己提交的
obj.setHeadNurseCount(headNurseCount);
obj.setHeadNursePercent(Math.round(headNurseCount * 100 / count) + "%");
}
}
}
return depeNames.toString();
}
/**
@ -229,7 +136,7 @@ public class RecordService {
}
/**
*
*
* @param record
*/
private void SetStatisticsPercent(SubmitRecordStatistics record) {
@ -245,9 +152,14 @@ public class RecordService {
}
}
/**
*
* @param recordSearch
* @return
*/
public SubmitRecordStatistics selectOvertimeCount(RecordSearch recordSearch) {
//查询超期记录数
List<SubmitRecord> submitRecords = selectCountGroupDept(recordSearch);
List<SubmitRecord> submitRecords = selectUnCountGroupDept(recordSearch);
//定义接收返回对象
SubmitRecordStatistics recordStatistics = new SubmitRecordStatistics();
if(!CollectionUtils.isEmpty(submitRecords)){
@ -280,7 +192,6 @@ public class RecordService {
int count7 = allCount - count6;
recordStatistics.setCount7Percent(Math.round(count7 * 100 / allCount) + "%");
}
return recordStatistics;
}

@ -205,27 +205,22 @@ public class StatisticsService {
}
public List<User> getUserList(String userName) throws Exception{
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
List<User> userList = (List<User>)request.getSession().getAttribute("USER_LIST");
if(null == userList || userList.isEmpty()){
//调用接口查询
String resultString = "";
// 创建uri
String url = POWER_URLHEAD+"/font/getUserList?userName="+userName;
// 执行请求
CloseableHttpResponse response = HttpClients.createDefault().execute(new HttpGet(url));
// 判断返回状态是否为200
if (response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
}
JSONObject jsonObject = JSONObject.fromObject(resultString);
String extend = jsonObject.getString("extend");
JSONObject extendObject = JSONObject.fromObject(extend);
String userList1 = extendObject.getString("userList");
userList = JSON.parseArray(userList1,User.class);
//设置进session
request.getSession().setAttribute("USER_LIST",userList);
//调用接口查询
String resultString = "";
// 创建uri
String url = POWER_URLHEAD+"/font/getUserList?userName="+userName;
// 执行请求
CloseableHttpResponse response = HttpClients.createDefault().execute(new HttpGet(url));
// 判断返回状态是否为200
if (response.getStatusLine().getStatusCode() == 200) {
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
}
JSONObject jsonObject = JSONObject.fromObject(resultString);
String extend = jsonObject.getString("extend");
JSONObject extendObject = JSONObject.fromObject(extend);
String userList1 = extendObject.getString("userList");
List<User> userList = JSON.parseArray(userList1,User.class);
//设置进session
return userList;
}
/**

@ -0,0 +1,30 @@
package com.emr.vo;
import lombok.Data;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/10/27 14:29
* @UpdateUser:
* @UpdateDate: 2020/10/27 14:29
* @UpdateRemark:
* @Version: 1.0
*/
@Data
public class CommomTree {
private Integer id;
private Integer selfId;
private String name;
private Integer parentId;
private String checked;
private String code;
}

@ -25,6 +25,16 @@ public class User {
private String name;
private String deptCode;
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public String getName() {
return name;
}

@ -52,4 +52,4 @@ allAddortIds = 00000000
nurseAssortIds = 'C70E8C427A3648B79BE80798C08F4D12','85DAE73A87D047D28C222E878C78C670'
#\u7528\u4E8E\u8D85\u671F\u901A\u77E5\uFF0C\u53EA\u901A\u77E5\u8BE5\u65E5\u671F\u4EE5\u540E\u7684\u51FA\u9662\u8D85\u671F\u7684\u8BB0\u5F55
overDateSet = 2020-10-29
overDateSet = 2020-10-26

@ -1,11 +1,11 @@
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=gm_record
#jdbc.username=sa
#jdbc.password=docus702
jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=emr_record
jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=gm_record
jdbc.username=sa
jdbc.password=AbcXyz123
jdbc.password=docus702
#jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=emr_record
#jdbc.username=sa
#jdbc.password=AbcXyz123
filters=stat
maxWait=60000

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.emr.dao.ArchiveRemindDeptUserMapper" >
<resultMap id="BaseResultMap" type="com.emr.entity.ArchiveRemindDeptUser" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="dept_code" property="deptCode" jdbcType="VARCHAR" />
<result column="user_name" property="userName" jdbcType="NVARCHAR" />
<result column="role_id" property="roleId" jdbcType="INTEGER" />
<result column="int1" property="int1" jdbcType="INTEGER" />
<result column="str1" property="str1" jdbcType="NVARCHAR" />
<result column="int2" property="int2" jdbcType="INTEGER" />
<result column="str2" property="str2" jdbcType="NVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, dept_code, user_name, role_id, int1, str1, int2, str2
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from archive_remind_dept_user
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from archive_remind_dept_user
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.emr.entity.ArchiveRemindDeptUser" >
insert into archive_remind_dept_user (id, dept_code, user_name,
role_id, int1, str1,
int2, str2)
values (#{id,jdbcType=INTEGER}, #{deptCode,jdbcType=VARCHAR}, #{userName,jdbcType=NVARCHAR},
#{roleId,jdbcType=INTEGER}, #{int1,jdbcType=INTEGER}, #{str1,jdbcType=NVARCHAR},
#{int2,jdbcType=INTEGER}, #{str2,jdbcType=NVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.ArchiveRemindDeptUser" >
insert into archive_remind_dept_user
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="deptCode != null" >
dept_code,
</if>
<if test="userName != null" >
user_name,
</if>
<if test="roleId != null" >
role_id,
</if>
<if test="int1 != null" >
int1,
</if>
<if test="str1 != null" >
str1,
</if>
<if test="int2 != null" >
int2,
</if>
<if test="str2 != null" >
str2,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="deptCode != null" >
#{deptCode,jdbcType=VARCHAR},
</if>
<if test="userName != null" >
#{userName,jdbcType=NVARCHAR},
</if>
<if test="roleId != null" >
#{roleId,jdbcType=INTEGER},
</if>
<if test="int1 != null" >
#{int1,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
#{str1,jdbcType=NVARCHAR},
</if>
<if test="int2 != null" >
#{int2,jdbcType=INTEGER},
</if>
<if test="str2 != null" >
#{str2,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.ArchiveRemindDeptUser" >
update archive_remind_dept_user
<set >
<if test="deptCode != null" >
dept_code = #{deptCode,jdbcType=VARCHAR},
</if>
<if test="userName != null" >
user_name = #{userName,jdbcType=NVARCHAR},
</if>
<if test="roleId != null" >
role_id = #{roleId,jdbcType=INTEGER},
</if>
<if test="int1 != null" >
int1 = #{int1,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
str1 = #{str1,jdbcType=NVARCHAR},
</if>
<if test="int2 != null" >
int2 = #{int2,jdbcType=INTEGER},
</if>
<if test="str2 != null" >
str2 = #{str2,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.ArchiveRemindDeptUser" >
update archive_remind_dept_user
set dept_code = #{deptCode,jdbcType=VARCHAR},
user_name = #{userName,jdbcType=NVARCHAR},
role_id = #{roleId,jdbcType=INTEGER},
int1 = #{int1,jdbcType=INTEGER},
str1 = #{str1,jdbcType=NVARCHAR},
int2 = #{int2,jdbcType=INTEGER},
str2 = #{str2,jdbcType=NVARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectAll" resultMap="BaseResultMap">
select * from archive_remind_dept_user
</select>
</mapper>

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.emr.dao.ArchiveRemindInfoMapper" >
<resultMap id="BaseResultMap" type="com.emr.entity.ArchiveRemindInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="dept_name" property="deptName" jdbcType="NVARCHAR" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="create_user" property="createUser" jdbcType="NVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, dept_name, create_time, create_user
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from archive_remind_info
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from archive_remind_info
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.emr.entity.ArchiveRemindInfo" >
insert into archive_remind_info (dept_name, create_time,
create_user)
values (#{deptName,jdbcType=NVARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{createUser,jdbcType=NVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.ArchiveRemindInfo" >
insert into archive_remind_info
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="deptName != null" >
dept_name,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="createUser != null" >
create_user,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="deptName != null" >
#{deptName,jdbcType=NVARCHAR},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="createUser != null" >
#{createUser,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.ArchiveRemindInfo" >
update archive_remind_info
<set >
<if test="deptName != null" >
dept_name = #{deptName,jdbcType=NVARCHAR},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="createUser != null" >
create_user = #{createUser,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.ArchiveRemindInfo" >
update archive_remind_info
set dept_name = #{deptName,jdbcType=NVARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
create_user = #{createUser,jdbcType=NVARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectAllByDeptName" resultMap="BaseResultMap">
select * from archive_remind_info
<where>
<if test="deptName != null and deptName != ''">
and dept_name = #{deptName}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.emr.dao.ArchiveRemindcancleDeptMapper" >
<resultMap id="BaseResultMap" type="com.emr.entity.ArchiveRemindcancleDept" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="dept_code" property="deptCode" jdbcType="VARCHAR" />
<result column="int1" property="int1" jdbcType="INTEGER" />
<result column="str1" property="str1" jdbcType="NVARCHAR" />
<result column="int2" property="int2" jdbcType="INTEGER" />
<result column="str2" property="str2" jdbcType="NVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, dept_code, int1, str1, int2, str2
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from archive_remindcancle_dept
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from archive_remindcancle_dept
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.emr.entity.ArchiveRemindcancleDept" >
insert into archive_remindcancle_dept (id, dept_code, int1,
str1, int2, str2)
values (#{id,jdbcType=INTEGER}, #{deptCode,jdbcType=VARCHAR}, #{int1,jdbcType=INTEGER},
#{str1,jdbcType=NVARCHAR}, #{int2,jdbcType=INTEGER}, #{str2,jdbcType=NVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.ArchiveRemindcancleDept" >
insert into archive_remindcancle_dept
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="deptCode != null" >
dept_code,
</if>
<if test="int1 != null" >
int1,
</if>
<if test="str1 != null" >
str1,
</if>
<if test="int2 != null" >
int2,
</if>
<if test="str2 != null" >
str2,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="deptCode != null" >
#{deptCode,jdbcType=VARCHAR},
</if>
<if test="int1 != null" >
#{int1,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
#{str1,jdbcType=NVARCHAR},
</if>
<if test="int2 != null" >
#{int2,jdbcType=INTEGER},
</if>
<if test="str2 != null" >
#{str2,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.ArchiveRemindcancleDept" >
update archive_remindcancle_dept
<set >
<if test="deptCode != null" >
dept_code = #{deptCode,jdbcType=VARCHAR},
</if>
<if test="int1 != null" >
int1 = #{int1,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
str1 = #{str1,jdbcType=NVARCHAR},
</if>
<if test="int2 != null" >
int2 = #{int2,jdbcType=INTEGER},
</if>
<if test="str2 != null" >
str2 = #{str2,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.ArchiveRemindcancleDept" >
update archive_remindcancle_dept
set dept_code = #{deptCode,jdbcType=VARCHAR},
int1 = #{int1,jdbcType=INTEGER},
str1 = #{str1,jdbcType=NVARCHAR},
int2 = #{int2,jdbcType=INTEGER},
str2 = #{str2,jdbcType=NVARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectAll" resultMap="BaseResultMap">
select * from archive_remindcancle_dept
</select>
</mapper>

@ -4,12 +4,19 @@
<resultMap id="BaseResultMap" type="com.emr.entity.EmrOvertimeSet" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="days" property="days" jdbcType="INTEGER" />
<result column="dead_days" property="deadDays" jdbcType="INTEGER" />
<result column="surplus_days" property="surplusDays" jdbcType="INTEGER" />
<result column="remind_time" property="remindTime" jdbcType="VARCHAR" />
<result column="int1" property="int1" jdbcType="INTEGER" />
<result column="str1" property="str1" jdbcType="NVARCHAR" />
<result column="int2" property="int2" jdbcType="INTEGER" />
<result column="str2" property="str2" jdbcType="NVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, days
id, days, dead_days, surplus_days, remind_time, int1, str1, int2, str2
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
select
<include refid="Base_Column_List" />
from emr_overtime_set
where id = #{id,jdbcType=INTEGER}
@ -19,8 +26,12 @@
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.emr.entity.EmrOvertimeSet" >
insert into emr_overtime_set (days)
values (#{days,jdbcType=INTEGER})
insert into emr_overtime_set (id, days, dead_days,
surplus_days, remind_time, int1,
str1, int2, str2)
values (#{id,jdbcType=INTEGER}, #{days,jdbcType=INTEGER}, #{deadDays,jdbcType=INTEGER},
#{surplusDays,jdbcType=INTEGER}, #{remindTime,jdbcType=VARCHAR}, #{int1,jdbcType=INTEGER},
#{str1,jdbcType=NVARCHAR}, #{int2,jdbcType=INTEGER}, #{str2,jdbcType=NVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.EmrOvertimeSet" >
insert into emr_overtime_set
@ -31,6 +42,27 @@
<if test="days != null" >
days,
</if>
<if test="deadDays != null" >
dead_days,
</if>
<if test="surplusDays != null" >
surplus_days,
</if>
<if test="remindTime != null" >
remind_time,
</if>
<if test="int1 != null" >
int1,
</if>
<if test="str1 != null" >
str1,
</if>
<if test="int2 != null" >
int2,
</if>
<if test="str2 != null" >
str2,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
@ -39,6 +71,27 @@
<if test="days != null" >
#{days,jdbcType=INTEGER},
</if>
<if test="deadDays != null" >
#{deadDays,jdbcType=INTEGER},
</if>
<if test="surplusDays != null" >
#{surplusDays,jdbcType=INTEGER},
</if>
<if test="remindTime != null" >
#{remindTime,jdbcType=VARCHAR},
</if>
<if test="int1 != null" >
#{int1,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
#{str1,jdbcType=NVARCHAR},
</if>
<if test="int2 != null" >
#{int2,jdbcType=INTEGER},
</if>
<if test="str2 != null" >
#{str2,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.EmrOvertimeSet" >
@ -47,12 +100,40 @@
<if test="days != null" >
days = #{days,jdbcType=INTEGER},
</if>
<if test="deadDays != null" >
dead_days = #{deadDays,jdbcType=INTEGER},
</if>
<if test="surplusDays != null" >
surplus_days = #{surplusDays,jdbcType=INTEGER},
</if>
<if test="remindTime != null" >
remind_time = #{remindTime,jdbcType=VARCHAR},
</if>
<if test="int1 != null" >
int1 = #{int1,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
str1 = #{str1,jdbcType=NVARCHAR},
</if>
<if test="int2 != null" >
int2 = #{int2,jdbcType=INTEGER},
</if>
<if test="str2 != null" >
str2 = #{str2,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.EmrOvertimeSet" >
update emr_overtime_set
set days = #{days,jdbcType=INTEGER}
set days = #{days,jdbcType=INTEGER},
dead_days = #{deadDays,jdbcType=INTEGER},
surplus_days = #{surplusDays,jdbcType=INTEGER},
remind_time = #{remindTime,jdbcType=VARCHAR},
int1 = #{int1,jdbcType=INTEGER},
str1 = #{str1,jdbcType=NVARCHAR},
int2 = #{int2,jdbcType=INTEGER},
str2 = #{str2,jdbcType=NVARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>

@ -6,13 +6,14 @@
<resultMap id="BaseResultMap2" type="com.emr.entity.Archive_Master_Vo"></resultMap>
<!---查询时间段-->
<sql id="selectByDate">
AND CONVERT(varchar(10),archive_master.discharge_date_time, 23) != '1801-02-03'
<!--用于查询超期-->
<if test="flag != null and flag == 2">
<include refid="overTimeWhereSql"></include>
<if test="doctorInCharge != null and doctorInCharge != ''">
AND archive_master.DOCTOR_IN_CHARGE in (${doctorInCharge})
</if>
</if>
AND CONVERT(varchar(10),archive_master.discharge_date_time, 23) != '1801-02-03'
<if test="deptName != null and deptName != ''">
AND archive_master.dept_name in (${deptName})
</if>
@ -79,27 +80,74 @@
</when>
</choose>
</sql>
<!---查询分组科室数量-->
<select id="selectCountGroupDept" resultMap="BaseResultMap" parameterType="com.emr.vo.RecordSearch">
SELECT
dept_name deptName,
COUNT( archive_master.id ) count,
emr_dictionary.NAME deptNameCn
FROM
archive_master
INNER JOIN emr_dictionary ON archive_master.dept_name = emr_dictionary.CODE
AND emr_dictionary.parent_id = 'dept_code'
<include refid="selectByInfo"></include>
<!---查询分组科室各角色待审核数量-->
<select id="selectUnCountGroupDept" resultMap="BaseResultMap" parameterType="com.emr.vo.RecordSearch">
select
archive_master.dept_name,
archive_master.deptNameCn,
archive_master.count,
isnull(t1.count,0) unDoctorSubmitCount,
isnull(t2.count,0) unDoctorCheckCount,
isnull(t3.count,0) unDirectorCheckCount,
isnull(t4.count,0) unNurseSubmitCount,
isnull(t5.count,0) unNurseCheckCount,
isnull(t6.count,0) unHeadNurseCount,
isnull(t7.count,0) unRecordRoomCount
from (
select
dept_name,
emr_dictionary.Name deptNameCn,
emr_dictionary.CODE,
COUNT(archive_master.id) count
from archive_master
left join emr_dictionary
on archive_master.dept_name = emr_dictionary.code and emr_dictionary.parent_id = 'dept_code'
<where>
<!--只查超期-->
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
</where>
GROUP BY
dept_name,
emr_dictionary.NAME,
emr_dictionary.CODE
) archive_master
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('1','16','48','512','256','272','304','768')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t1
on archive_master.dept_name = t1.dept_name
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('2','18','50','514')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t2
on archive_master.dept_name = t2.dept_name
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('6','22','54','518')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t3
on archive_master.dept_name = t3.dept_name
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('1','2','6','14','256','512','514','518','526','768')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t4
on archive_master.dept_name = t4.dept_name
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('16','18','22','30','272')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t5
on archive_master.dept_name = t5.dept_name
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('62')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t6
on archive_master.dept_name = t6.dept_name
left join (select dept_name,COUNT(id) count from archive_master where ArchiveState in ('64','1024')
<include refid="selectByInfo"></include>
<include refid="selectByDate"></include>
group by dept_name) t7
on archive_master.dept_name = t7.dept_name
ORDER BY
emr_dictionary.CODE
archive_master.CODE
</select>
<!--过滤超期条件语句-->
<sql id="overTimeWhereSql">
@ -154,9 +202,9 @@
LEFT JOIN ( SELECT master_id, MAX( createtime ) createtime FROM archive_flow_info WHERE target_step_id in (${backRoleId}) GROUP BY master_id ) t2 ON t1.master_id = t2.master_id
INNER JOIN archive_master ON t1.master_id = archive_master.id
<include refid="selectByInfo"></include>
<where>
<include refid="selectByDate"></include>
</where>
<where>
<include refid="selectByDate"></include>
</where>
GROUP BY
dept_name
</select>
@ -164,155 +212,31 @@
<sql id="selectByInfo">
<if test="infoId != null">
<choose>
<!--医生和护士-->
<when test="infoId == 2 or infoId == 5">
INNER JOIN (
SELECT
archive_master.id
FROM
archive_master
LEFT JOIN (
SELECT
master_id,
start_step_id
FROM
archive_flow_info
WHERE
start_step_id = #{infoId}
GROUP BY
master_id,
start_step_id
) archive_flow_info ON archive_master.id = archive_flow_info.master_id
WHERE
archive_flow_info.start_step_id IS NULL
<!--只查超期-->
<include refid="selectByDate"></include>
UNION ALL
SELECT
archive_flow_info.master_id id
FROM
archive_flow_info
INNER JOIN (
SELECT
master_id,
MAX(createtime) createtime
FROM
archive_flow_info
WHERE
oper_role = #{operRole}
GROUP BY
master_id
) archive_flow_info1 ON archive_flow_info.master_id = archive_flow_info1.master_id
AND archive_flow_info.createtime = archive_flow_info1.createtime
WHERE
archive_flow_info.target_step_id =
<if test="infoId == 2">9</if>
<if test="infoId == 5">10</if>
) temp ON archive_master.id = temp.id
<!--医生-->
<when test="infoId == 2">
AND archive_master.ArchiveState IN ('1','16','48','512','256','272','304','768')
</when>
<when test="infoId == 3">
AND archive_master.ArchiveState IN ('2','18','50','514')
</when>
<when test="infoId == 4">
AND archive_master.ArchiveState IN ('6','22','54','518')
</when>
<when test="infoId == 5">
AND archive_master.ArchiveState IN ('1','2','6','14','256','512','514','518','526','768')
</when>
<when test="infoId == 6">
AND archive_master.ArchiveState IN ('16','18','22','30','272')
</when>
<!--护士长-->
<when test="infoId == 7">
INNER JOIN (
SELECT
archive_flow_info.master_id
FROM
archive_flow_info
INNER JOIN (
SELECT
master_id,
MAX(createtime) createtime
FROM
archive_flow_info
GROUP BY
master_id,
oper_role
) temp ON archive_flow_info.master_id = temp.master_id
AND archive_flow_info.createtime = temp.createtime
WHERE
archive_flow_info.target_step_id = 7
GROUP BY
archive_flow_info.master_id
HAVING
(
COUNT(
archive_flow_info.master_id
)
) = 2
) archive_flow_info ON archive_flow_info.master_id = archive_master.id
AND archive_master.ArchiveState != '64'
AND archive_master.ArchiveState IN ('62')
</when>
<when test="infoId == 8">
AND archive_master.ArchiveState IN ('64','1024')
</when>
<!---其他-->
<otherwise>
INNER JOIN (
SELECT
archive_flow_info.master_id
FROM
archive_flow_info
INNER JOIN (
SELECT
master_id,
MAX(createtime) createtime
FROM
archive_flow_info
WHERE
oper_role = #{operRole}
GROUP BY
master_id
) archive_flow_info1 ON archive_flow_info.master_id = archive_flow_info1.master_id
AND archive_flow_info.createtime = archive_flow_info1.createtime
AND archive_flow_info.target_step_id = #{infoId}
) t3 ON archive_master.id = t3.master_id
</otherwise>
</choose>
</if>
</sql>
<!--&lt;!&ndash;根据审核角色id和分组科室查询该科室完成份数&ndash;&gt;
<select id="selectUnCountByRoleAndDeptName" resultMap="BaseResultMap" parameterType="com.emr.vo.RecordSearch">
SELECT
dept_name,
count(archive_master.id) count
FROM
archive_master
INNER JOIN (
SELECT
archive_flow_info1.master_id
FROM
archive_flow_info
INNER JOIN (
SELECT
master_id,
MAX(createtime) createtime
FROM
archive_flow_info
WHERE
oper_role = #{operRole}
GROUP BY
master_id
) archive_flow_info1 ON archive_flow_info.master_id = archive_flow_info1.master_id
AND archive_flow_info.createtime = archive_flow_info1.createtime
WHERE
archive_flow_info.target_step_id = #{roleId}
) archive_flow_info ON archive_master.id = archive_flow_info.master_id
<where>
<include refid="selectByDate"></include>
</where>
GROUP BY
dept_name
</select>-->
<!--根据科室分组查询护士长审核份数-->
<!-- <select id="selectCountWithHeadNurse" resultMap="BaseResultMap" parameterType="com.emr.vo.RecordSearch">
SELECT
archive_master.dept_name deptName,
COUNT( archive_master.id ) count
FROM
archive_master
<include refid="selectByInfo"></include>
WHERE
(ArchiveState = '64' or ArchiveState = '128' or ArchiveState = '1024')
<include refid="selectByDate"></include>
GROUP BY
archive_master.dept_name
</select>-->
<!--统计总病历数,已提交数,已归档数,已采集完整数-->
<select id="selectCount" resultType="com.emr.vo.SubmitRecordStatistics" parameterType="com.emr.vo.RecordSearch">
SELECT

@ -170,9 +170,7 @@
</div>
<div class="form-group divCss8" id="deptDiv" style="height: 18px;margin-top: -7px;">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName" title="请输入科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入科室">
</select>
</div>
<div class="form-group divCss8">

@ -96,10 +96,7 @@
</div>
<div class="form-group divCss8" id="deptDiv" style="height: 18px;margin-top: -7px;">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss">

@ -72,10 +72,7 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss8">

@ -136,9 +136,7 @@
</div>
<div class="form-group divCss8" id="deptDiv" style="height: 18px;margin-top: -7px;">
<label>入院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName" title="请输入入院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入入院科室">
</select>
</div>
<div class="form-group divCss">

@ -154,10 +154,7 @@
</div>
<div class="form-group divCss8" id="deptDiv" style="height: 18px;margin-top: -7px;">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入科室">
</select>
</div>

@ -87,9 +87,7 @@
</div>--%>
<div class="form-group divCss8" id="deptDiv" style="height: 18px;margin-top: -7px;">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName" title="请输入科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入科室">
</select>
</div>
<div class="form-group divCss">

@ -0,0 +1,384 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
<html>
<head>
<title>字典列表</title>
<meta charset="utf-8">
<%@include file="../../jspf/comm.jspf" %>
<%@ include file="../../jspf/ztreeCommom.jsp" %>
<script type="text/javascript" src="${path}/static/js/pyAndWb.js"></script>
<script>
var path = "${path}";
</script>
<style>
.treeBtn {
margin-left: 24px;
}
.zTreeDemo {
height: calc(100vh - 162px);
overflow: auto;
margin-left: 60px;
}
.box {
margin-bottom: 0;
}
.control-label {
margin-right: -25px;
}
</style>
</head>
<body style="background-color: #c1d7e3">
<div class="mainBody">
<div class="row" style="margin: 0">
<!--内容-->
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">基础信息设置</h3>
</div>
<div class="box-body" style="height: calc(100vh - 82px);">
<form class="form-horizontal" id="form1">
<input hidden name="id" value="${overtimeSet.id}">
<div class="form-group">
<label for="days" class="col-sm-5 control-label">正常病历超期天数:</label>
<div class="col-sm-6">
<input type="number" min="1" oninput="if(value.length>2)value=value.slice(0,2)" class="form-control input-sm" id="days" name="days" value="${overtimeSet.days}" placeholder="请输入正常超期天数">
</div>
</div>
<div class="form-group">
<label for="deadDays" class="col-sm-5 control-label">死亡病历超期天数:</label>
<div class="col-sm-6">
<input type="number" min="1" oninput="if(value.length>2)value=value.slice(0,2)" class="form-control input-sm" id="deadDays" name="deadDays" value="${overtimeSet.deadDays}" placeholder="请输入死亡超期天数">
</div>
</div>
<div class="form-group">
<label for="surplusDays" class="col-sm-5 control-label">倒数几工作日提醒:</label>
<div class="col-sm-6">
<input type="number" min="1" oninput="if(value.length>2)value=value.slice(0,2)" class="form-control input-sm" id="surplusDays" name="surplusDays" value="${overtimeSet.surplusDays}" placeholder="倒数几工作日提醒">
</div>
</div>
<div class="form-group">
<label for="remindTime" class="col-sm-5 control-label">提醒时刻:</label>
<div class="col-sm-6">
<select class="form-control input-sm" id="remindTime" name="remindTime">
<option value="0 0 8 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 8 * * ?'}">selected</c:if>>08:00:00</option>
<option value="0 0 9 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 9 * * ?'}">selected</c:if>>09:00:00</option>
<option value="0 0 10 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 10 * * ?'}">selected</c:if>>10:00:00</option>
<option value="0 0 11 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 11 * * ?'}">selected</c:if>>11:00:00</option>
<option value="0 0 14 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 14 * * ?'}">selected</c:if>>14:00:00</option>
<option value="0 0 15 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 15 * * ?'}">selected</c:if>>15:00:00</option>
<option value="0 0 16 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 16 * * ?'}">selected</c:if>>16:00:00</option>
<option value="0 0 17 * * ?" <c:if test="${overtimeSet.remindTime == '0 0 17 * * ?'}">selected</c:if>>17:00:00</option>
</select>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-8"></div>
<div class="col-sm-3">
<button type="button" class="btn btn-primary btn-sm" id="overtimeSetBtn">保存</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title"><span style="color: red">不接收提醒科室</span>设置</h3>
</div>
<div class="box-body">
<div class="form-inline">
<input type="text" id="key1" autocomplete="false" value="" class="input-sm " style="width:70%" placeholder="科室名称"
maxlength="25"/>
<button type="button" class="btn btn-primary btn-sm" id="remindCancleDeptBtn">保存</button>
</div>
<div class="row" style="margin-left: 40px;margin-top: 10px">
<button type="button" class="btn btn-success btn-sm treeBtn" onclick="expandAll(1);">全部展开
</button>
<button type="button" class="btn btn-success btn-sm treeBtn" onclick="collapseAll(1);">全部收缩
</button>
</div>
<div class="row">
<!--树-->
<div class="col-md-12">
<div class="zTreeDemo">
<ul id="ztree1" class="ztree" style="margin-left:-18px;"></ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">关闭科室提醒<span style="color: red">单独提醒科室用户</span>设置</h3>
</div>
<div class="box-body">
<div class="form-inline">
<input type="text" id="key2" autocomplete="false" class="input-sm " style="width:70%" placeholder="用户工号/姓名"
maxlength="25"/>
<button type="button" class="btn btn-primary btn-sm" id="remindDeptUserBtn">保存</button>
</div>
<div class="row" style="margin-left: 40px;margin-top: 10px">
<button type="button" class="btn btn-success btn-sm treeBtn" onclick="expandAll(2);">全部展开
</button>
<button type="button" class="btn btn-success btn-sm treeBtn" onclick="collapseAll(2);">全部收缩
</button>
</div>
<div class="row">
<!--树-->
<div class="col-md-12">
<div class="zTreeDemo">
<ul id="ztree2" class="ztree" style="margin-left:-18px;"></ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
var key1 = $("#key1");
key1.bind("focus", focusKey1)
.bind("blur", blurKey1)
.bind("input", searchNode1);
var key2 = $("#key2");
key2.bind("focus", focusKey2)
.bind("blur", blurKey2)
.bind("input", searchNode2);
var url = window.location.href;
var index = url.substring(url.lastIndexOf('?') + 1).replace("num=", "");
if (index != null && index != "" && index.indexOf("update") != -1) {
$("#overtimeSetBtn").show();
$("#remindCancleDeptBtn").show();
$("#remindDeptUserBtn").show();
} else {
$("#overtimeSetBtn").hide();
$("#remindCancleDeptBtn").hide();
$("#remindDeptUserBtn").hide();
}
initTree(path+"/overtime/selectRemindDeptTree",'科室列表',1);
initTree(path+"/overtime/selectRemindDeptUserTree",'用户列表',2);
});
/**
* 保存基础信息设置
*/
$("#overtimeSetBtn").click(function(){
$.ajax({
type:'post',
url:path+'/overtime/updateOverTimeSet',
data:$('#form1').serialize(),
dateType:'json',
success:function(data){
if(data.code == 100){
toastr.success("保存成功");
}else{
toastr.error(data.msg);
}
}
})
});
var zNodes = [];
var opts = {
lines: 13, // The number of lines to draw |小长条的数量
length: 20, // The length of each line |小长条的长度
width: 5, // The line thickness |小长条的宽度
radius: 15, // The radius of the inner circle |内环的半径长
corners: 1, // Corner roundness (0..1)
rotate: 0, // The rotation offset |旋转角度
direction: 1, // 1: clockwise, -1: counterclockwise |1顺时针方向 -1逆时针方向
color: '#000', // #rgb or #rrggbb or array of colors |颜色
speed: 1, // Rounds per second |每秒转多少圈
trail: 60, // Afterglow percentage |余晖效果百分比
shadow: false, // Whether to render a shadow |渲染阴影
hwaccel: false, // Whether to use hardware acceleration |加速
className: 'spinner', // The CSS class to assign to the spinner |类名spinner
zIndex: 2e9, // The z-index (defaults to 2000000000) |显示在最顶层
top: '150px' // Top position relative to parent in px |相对父元素的top
};
var spinner = new Spinner(opts);
function initTree(url,treeName,num) {
var target = document.getElementById('treediv');
spinner.spin(target);//给id为foo的div 中绑上spinner
zNodes = [];
//获取所有缺陷类别列表
$.ajax({
url: url,
type: "POST",
async:false,
success: function (result) {
zNodes.push({id: 0, parentId: 0, name: treeName, open: true});
if (result != null) {
for (var i = 0; i < result.length; i++) {
var obj = {};
obj.id = result[i].id;
obj.parentId = result[i].parentId;
obj.code = result[i].code;
obj.name = result[i].name.trim();
obj.checked = result[i].checked;
zNodes.push(obj);
}
}
$.fn.zTree.init($("#ztree"+num), setting, zNodes);
spinner.spin();
}, error: function () {
spinner.spin();
}
});
}
var setting = {
view: {
addHoverDom: false,
removeHoverDom: false,
selectedMulti: false,
autoCancelSelected: false,
fontCss: getFontCss
},
check: {
enable: true
},
data: {
simpleData: {
chkStyle: "checkbox",
enable: true,
idKey: "id",
pIdKey: "parentId",
rootPId: "0"
}
},
edit: {
enable: false
}
};
function focusKey1() {
var key = $("#key1");
if (key.hasClass("empty")) {
key.removeClass("empty");
}
}
function blurKey1() {
var key = $("#key1");
if (key.get(0).value === "") {
key.addClass("empty");
}
}
function focusKey2() {
var key = $("#key2");
if (key.hasClass("empty")) {
key.removeClass("empty");
}
}
function blurKey2() {
var key = $("#key2");
if (key.get(0).value === "") {
key.addClass("empty");
}
}
function getFontCss(treeId, treeNode) {
return (!!treeNode.highlight) ? {color: "#A60000", "font-weight": "bold"} : {
color: "#333",
"font-weight": "normal"
};
}
/**
* 遍历树节点,将
* 1.自身不满足搜索条件
* 且
* 2.其子节点不包含有满足条件的节点
* 的节点加入到filterResult中
*
* @param node 查询的节点
* @param inputStr 搜索条件
* @param filterResult 过滤的结果集
* @return 该节点是否满足条件
*/
function filterNodes(node, inputStr, filterResult) {
if (node != null) {
//自身是否符合搜索条件
var selfMatch = node.name.indexOf(inputStr) > -1;
//子节点是否有满足的条件的节点
var childMatch = false;
var children = node.children;
if (children != undefined) {
for (index in children) {
childMatch = filterNodes(children[index], inputStr, filterResult) || childMatch;
}
}
//自身不满足搜索条件 且其子节点不包含有满足条件的节点
if (!selfMatch && !childMatch) {
filterResult.push(node);
}
return selfMatch || childMatch;
} else {
return true;
}
}
function searchNode1() {
var zTree = $.fn.zTree.getZTreeObj("ztree1");
var value = $("#key1").val();
if (value == "") {
//显示隐藏的节点
var nodes = zTree.getNodesByParam("isHidden", true);
zTree.showNodes(nodes);
} else {
//显示隐藏的节点
nodes = zTree.getNodesByParam("isHidden", true);
zTree.showNodes(nodes);
var root = zTree.getNodeByParam("level", "0");
var hiddenNodes = new Array();
filterNodes(root, value, hiddenNodes);
zTree.hideNodes(hiddenNodes);
}
zTree.expandAll(true);
}
function searchNode2() {
var zTree = $.fn.zTree.getZTreeObj("ztree2");
var value = $("#key2").val();
if (value == "") {
//显示隐藏的节点
var nodes = zTree.getNodesByParam("isHidden", true);
zTree.showNodes(nodes);
} else {
//显示隐藏的节点
nodes = zTree.getNodesByParam("isHidden", true);
zTree.showNodes(nodes);
var root = zTree.getNodeByParam("level", "0");
var hiddenNodes = new Array();
filterNodes(root, value, hiddenNodes);
zTree.hideNodes(hiddenNodes);
}
zTree.expandAll(true);
}
//展开
function expandAll(num) {
var treeObj = $.fn.zTree.getZTreeObj("ztree"+num);
treeObj.expandAll(true);
}
//收缩
function collapseAll(num) {
var treeObj = $.fn.zTree.getZTreeObj("ztree"+num);
treeObj.expandAll(false);
}
</script>
</body>
</html>

@ -76,13 +76,11 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName"
id="deptName"
title="请选择出院科室">
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请选择出院科室">
</select>
</div>
<div class="form-group divCss8">
<label>审核节点:</label>
<label>审核节点:</label>
<select class="form-control input-sm" id="infoId">
<option value="">全部</option>
<option value="2">医生提交</option>

@ -3,7 +3,7 @@
<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
<html>
<head>
<title>病案室签收报表</title>
<title>病案室提交明细(签收)</title>
<meta charset="utf-8">
<!-- 解决部分兼容性问题如果安装了GCF则使用GCF来渲染页面如果未安装GCF则使用最高版本的IE内核进行渲染。 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -44,7 +44,7 @@
<div class="headDiv">
<div class="headSpanDiv">
<span class="headspan">
病案室签收报表
病案室提交明细
</span>
</div>
</div>
@ -99,9 +99,7 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<select class="selectpicker bla bla bli" data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
<option value="">全部</option>
</select>
</div>

@ -117,10 +117,7 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<%--<div class="form-group divCss8">

@ -72,10 +72,7 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss8">

@ -96,10 +96,7 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss8">

@ -72,10 +72,7 @@
</div>
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss8">

@ -147,9 +147,7 @@
</div>
<div class="form-group divCss8" id="deptDiv" style="height: 18px;margin-top: -7px;">
<label>入院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptAdmissionTo"
id="deptAdmissionTo" title="请输入入院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptAdmissionTo" id="deptAdmissionTo" title="请输入入院科室">
</select>
</div>
<div class="form-group divCss8">
@ -164,10 +162,7 @@
</div>
<div class="form-group divCss8" style="height: 18px;margin-top: -7px;">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss8">

@ -64,10 +64,7 @@
<div class="form-inline">
<div class="form-group divCss8">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true" name="deptName"
id="deptName"
title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss8">

@ -79,9 +79,7 @@
<div class="form-inline">
<div class="form-group divCss8" style="height: 18px;margin-top: -7px;">
<label>出院科室:</label>
<select class="selectpicker bla bla bli" multiple data-live-search="true"
name="deptName" id="deptName" title="请输入出院科室">
<option value="">全部</option>
<select class="selectpicker bla bla bli" multiple data-live-search="true" data-actions-box="true" name="deptName" id="deptName" title="请输入出院科室">
</select>
</div>
<div class="form-group divCss">

@ -155,9 +155,6 @@ function initTable() {
var url = window.location.href;
var index = url.substring(url.lastIndexOf('?') + 1).replace("num=", "");
var html = "";
if (index != null && index.indexOf("remind") !== -1) {
html += '<button type="button" class="btn btn-primary btn-sm remind" title="提醒">提醒</button>';
}
if (index != null && index.indexOf("select") !== -1) {
html += '<button type="button" class="btn btn-danger btn-sm selInfo" title="查看">查看</button>';
}
@ -252,22 +249,6 @@ function initTable() {
var dischargeDateTime = row.dischargeDateTime;
$("#showFlowInfoIframe").prop("src",path+"/beHosp/toShowFlowInfo?id="+masterId+"&name="+name+"&inpNo="+inpNo+"&visitId="+visitId+"&dischargeDateTime="+dischargeDateTime+"&role="+$("#checker").val());
},
//提醒
'click .remind': function (e, value, row) {
$.ajax({
type:'get',
url:path+'/beHosp/remind',
data:{deptName:row.deptName},
dataType:'json',
success:function(data){
if(data.code == 100){
toastr.success("通知成功!");
}else{
toastr.error(data.msg);
}
}
})
}
},
cellStyle: function () {
return {classes: 'success'}

@ -73,14 +73,26 @@ function selectOvertimeCount(){
success:function(data){
if(data.code == 100){
var record = data.extend.record;
$("#allCount").text(record.allCount);
setSubmitPercent('count1Percent',record.count1Percent);
setSubmitPercent('count2Percent',record.count2Percent);
setSubmitPercent('count3Percent',record.count3Percent);
setSubmitPercent('count4Percent',record.count4Percent);
setSubmitPercent('count5Percent',record.count5Percent);
setSubmitPercent('count6Percent',record.count6Percent);
setSubmitPercent('count7Percent',record.count7Percent);
var allCount = record.allCount;
if(allCount != null) {
$("#allCount").text(allCount);
setSubmitPercent('count1Percent', record.count1Percent);
setSubmitPercent('count2Percent', record.count2Percent);
setSubmitPercent('count3Percent', record.count3Percent);
setSubmitPercent('count4Percent', record.count4Percent);
setSubmitPercent('count5Percent', record.count5Percent);
setSubmitPercent('count6Percent', record.count6Percent);
setSubmitPercent('count7Percent', record.count7Percent);
}else{
$("#allCount").text(0);
setSubmitPercent('count1Percent', '0%');
setSubmitPercent('count2Percent', '0%');
setSubmitPercent('count3Percent', '0%');
setSubmitPercent('count4Percent', '0%');
setSubmitPercent('count5Percent', '0%');
setSubmitPercent('count6Percent', '0%');
setSubmitPercent('count7Percent', '0%');
}
}else{
toastr.error(data.msg);
}
@ -237,7 +249,7 @@ function initTable() {
},
{
title: '病案室未提交',
field: 'headNurseCount',
field: 'unRecordRoomCount',
align: 'center'
},
]],

Loading…
Cancel
Save