20200929更新版本

master
zengwh 5 years ago
parent 53f59bdcd9
commit 184709e9b0

@ -0,0 +1,52 @@
package com.emr.controller;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/5/15 16:14
* @UpdateUser:
* @UpdateDate: 2020/5/15 16:14
* @UpdateRemark:
* @Version: 1.0
*/
import com.alibaba.fastjson.support.spring.FastJsonJsonView;
import com.emr.util.ExceptionPrintUtil;
import org.apache.shiro.authz.UnauthorizedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.Map;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)//指定拦截的异常
public ModelAndView errorHandler(Exception e){
return returnMv(e,"服务器出错了,请联系系统管理员");
}
@ExceptionHandler(value = RuntimeException.class)//指定拦截的异常
public ModelAndView runtimeHandler(Exception e){
return returnMv(e,"服务器出错了,请联系系统管理员");
}
@ExceptionHandler(value = UnauthorizedException.class)//指定拦截的异常
public ModelAndView unauthorizedHandler(Exception e){
return returnMv(e,"您权限验证出错了,请联系系统管理员");
}
private ModelAndView returnMv(Exception e,String msg){
ModelAndView mv = new ModelAndView();
/* 使用FastJson提供的FastJsonJsonView视图返回不需要捕获异常 */
FastJsonJsonView view = new FastJsonJsonView();
Map<String, Object> attributes = new HashMap<>(1);
attributes.put("code", "500");
attributes.put("msg", msg);
view.setAttributesMap(attributes);
mv.setView(view);
ExceptionPrintUtil.printException(e);
e.printStackTrace();
return mv;
}
}

@ -6,39 +6,45 @@
*/
package com.emr.controller;
import com.alibaba.fastjson.JSON;
import com.emr.dao.ArchiveSumbitdateInfoMapper;
import com.emr.dao.Archive_DetailMapper;
import com.emr.dao.Archive_MasterMapper;
import com.emr.dao.EmrPatientMapper;
import com.emr.entity.Archive_Master;
import com.emr.entity.Archive_Master_Vo;
import com.emr.entity.Emr_Fault_Detail;
import com.emr.entity.OffsetLimitPage;
import com.emr.entity.*;
import com.emr.service.Archive_MasterService;
import com.emr.service.Emr_Fault_DetailService;
import com.emr.util.ExceptionPrintUtil;
import com.emr.util.ExportExcelUtil;
import com.emr.util.Msg;
import com.emr.util.OracleConnect;
import com.emr.vo.HisCollectInfo;
import org.apache.commons.lang3.StringUtils;
import org.apache.cxf.endpoint.Client;
import org.apache.log4j.Logger;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
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;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/beHosp")
public class beHospitaledController {
private static Logger log = Logger.getLogger("myLog");
@Autowired
private Archive_MasterService archiveMasterService;
@ -47,35 +53,17 @@ public class beHospitaledController {
@Autowired
private EmrPatientMapper patientMapper;
@Autowired
private ArchiveSumbitdateInfoMapper sumbitdateInfoMapper;
@Value("${HomepageDictionary}")
private String HomepageDictionary;
@Value("${HomepageMethod}")
private String HomepageMethod;
@Autowired
private Archive_MasterMapper archive_masterMapper;
private Archive_DetailMapper detailMapper;
@RequestMapping(value = "/beHosps")
public String inHospitals(Model model){
/*try{
File f=new File("D:\\a1222.txt");
FileOutputStream fos1=new FileOutputStream(f);
OutputStreamWriter dos1=new OutputStreamWriter(fos1);
String str = "";
List<Archive_Master> archive_masters = archive_masterMapper.selectAll();
for (int i = 0; i < archive_masters.size(); i++) {
str += archive_masters.get(i).getInpNo()+System.getProperty("line.separator");
}
dos1.write(str);
dos1.close();
}catch (Exception e){
}finally {
}*/
return "beHospitaledDir/beHospList";
}
@ResponseBody
@ -216,11 +204,10 @@ public class beHospitaledController {
@RequestMapping("getInfoFromHis")
@ResponseBody
//@DataSource(dataSource = "dataSource1")
public int getInfoFromHis(String patientId){
public int getInfoFromHis(String patientId) throws Exception{
try {
String sql = "select fpatno from pacs.v_emrpatient where fpatno = '"+patientId+"'";
String str = OracleConnect.select(sql);
System.out.println("str:"+str);
if(StringUtils.isNoneBlank(str)){
return 1;
}else{
@ -237,20 +224,86 @@ public class beHospitaledController {
* @param collectInfo
* @return
*/
@RequestMapping("getPdfCollectInfoFromHis")
@RequestMapping(value="getPdfCollectInfoFromHis",method = RequestMethod.POST)
@ResponseBody
public int getPdfCollectInfoFromHis(HisCollectInfo collectInfo){
public String getPdfCollectInfoFromHis(HisCollectInfo collectInfo){
try {
String sql = getSelectSqlForGetPdfCollect(collectInfo);
List<HisCollectInfo> list = OracleConnect.select1(sql);
List<HisCollectInfo> list = new ArrayList<>();
/*for (int i = 1; i <= 11; i++) {
HisCollectInfo obj1 = new HisCollectInfo();
obj1.setFrecName("标题" + i);
obj1.setFentryNo((808+i)+"");
obj1.setFentryName("分类"+(808+i));
obj1.setFfileId((4234+i)+"");
if(i>=2){
obj1.setPdfflag("1");
}else{
obj1.setPdfflag("0");
}
list.add(obj1);
}*/
log.info("优先采集查询语句:"+sql);
try {
//查询oracle
list = OracleConnect.select1(sql);
}catch (Exception e){
e.printStackTrace();
ExceptionPrintUtil.printException(e);
log.error("优先采集查询oracle出错,请查看error.log文件");
}
//赋值两时间:最近上传时间与最新手动提交时间
setTwoTimeForList(list);
log.info("优先采集查询成功!");
return JSON.toJSONString(list);
} catch (Exception e) {
e.printStackTrace();
ExceptionPrintUtil.printException(e);
}
return null;
}
//赋值两时间:最近上传时间与最新手动提交时间
private void setTwoTimeForList(List<HisCollectInfo> list) {
if(!CollectionUtils.isEmpty(list)){
StringBuilder fileIdsStr = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
String ffileId = list.get(i).getFfileId();
if(i != 0){
fileIdsStr.append(",");
}
fileIdsStr.append("'").append(ffileId).append("'");
}
//查询detail表的上传时间
List<Archive_Detail> archiveDetails = detailMapper.selectUpdateTimeBySubAssort(fileIdsStr.toString());
//查询archive_sumbitDate_info的提交时间
List<ArchiveSumbitdateInfo> archiveSumbitdateInfoList = sumbitdateInfoMapper.selectOneByFileId(fileIdsStr.toString());
if(!CollectionUtils.isEmpty(archiveDetails) || !CollectionUtils.isEmpty(archiveSumbitdateInfoList)){
for (HisCollectInfo hisCollectInfo : list) {
String ffileId = hisCollectInfo.getFfileId();
if(!CollectionUtils.isEmpty(archiveDetails)){
for (Archive_Detail archiveDetail : archiveDetails) {
if (ffileId.equals(archiveDetail.getSubassort())) {
hisCollectInfo.setUpdateLoadTime(archiveDetail.getUploaddatetime());
break;
}
}
}
if(!CollectionUtils.isEmpty(archiveSumbitdateInfoList)){
for (ArchiveSumbitdateInfo info : archiveSumbitdateInfoList) {
if (ffileId.equals(info.getFileId())) {
hisCollectInfo.setSumbitTime(info.getCreateTime());
break;
}
}
}
}
}
}
return 1;
}
//组织sql语句查询orcle查询文件完成情况
private String getSelectSqlForGetPdfCollect(HisCollectInfo collectInfo){
collectInfo.setFpatno("4316993");
String sql = "select FENTRY_NO,FENTRY_NAME,FREC_NAME,FFILE_ID,PDF_FLAG from pacs.v_emrpdf_rec where fpatno = '"+collectInfo.getFpatno()+"'";
//标题
String frecName = collectInfo.getFrecName();
@ -270,25 +323,71 @@ public class beHospitaledController {
return sql;
}
@RequestMapping("insetHisPdfCollect")
/**
*
* @param fpatno
* @param fentryNos
* @param ffileIds
* @return
*/
@RequestMapping(value="insetHisPdfCollect",method = RequestMethod.POST)
@ResponseBody
public Msg insetHisPdfCollect(){
public Msg insetHisPdfCollect(String fpatno,String fentryNos,String ffileIds){
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//现在时间
String fapplytime = fmt.format(new Date());
if(StringUtils.isBlank(fentryNos)){
return Msg.fail("分类编号不能为空");
}
if(StringUtils.isBlank(ffileIds)){
return Msg.fail("文件id不能为空");
}
String[] fentryNoList = fentryNos.split(",");
String[] ffileIdList = ffileIds.split(",");
for (int i = 0; i < fentryNoList.length; i++) {
if(StringUtils.isNotBlank(fentryNoList[i])){
String sql = "insert into pacs.p_pdf_print(FENTRYNO,FPATNO,FAPPLYTIME,FFILE_ID) values('"+fentryNoList[i]+"','"+fpatno+"','"+fapplytime+"','"+ffileIdList[i]+"')";
log.info("优先采集插入语句:"+sql);
try {
//OracleConnect.insert(sql);
log.info("优先采集插入oracle成功");
}catch (Exception e){
e.printStackTrace();
log.info("优先采集插入oracle失败,请查看error.log文件");
ExceptionPrintUtil.printException(e);
}
if (insertSubmitDateInfo(fapplytime, ffileIdList[i])){
return Msg.fail("服务器内部出错,请联系系统管理员!");
}
}
}
return Msg.success();
}
private boolean insertSubmitDateInfo(String fapplytime, String fileId) {
//插入记录
ArchiveSumbitdateInfo info = new ArchiveSumbitdateInfo();
info.setFileId(fileId);
//查询时候存在,存在更新,不存在添加
try {
//fentryno:分类编号
String fentryno = "12345";
//fpatno:记帐号
String fpatno = "4316993";
//fpatno:记帐号
String fapplytime = "2020-03-04 11:22:22";
//fpatno:记帐号
String ffile_id = "2321321321321";
String sql = "insert into pacs.p_pdf_print(FENTRYNO,FPATNO,FAPPLYTIME,FFILE_ID) values('"+fentryno+"','"+fpatno+"','"+fapplytime+"','"+ffile_id+"')";
int str = OracleConnect.insert(sql);
System.out.println("str:"+str);
} catch (Exception e) {
List<ArchiveSumbitdateInfo> archiveSumbitdateInfoList = sumbitdateInfoMapper.selectOneByFileId("'"+ fileId +"'");
info.setCreateTime(fapplytime);
if(!CollectionUtils.isEmpty(archiveSumbitdateInfoList)){
ArchiveSumbitdateInfo archiveSumbitdateInfo = archiveSumbitdateInfoList.get(0);
archiveSumbitdateInfo.setCreateTime(fapplytime);
sumbitdateInfoMapper.updateByPrimaryKeySelective(archiveSumbitdateInfo);
}else{
sumbitdateInfoMapper.insertSelective(info);
}
log.info("优先采集插入本地数据库成功");
}catch (Exception e){
e.printStackTrace();
ExceptionPrintUtil.printException(e);
log.error("优先采集插入本地数据库失败,请查看error.log文件");
return true;
}
return Msg.success();
return false;
}
}

@ -1,43 +0,0 @@
package com.emr.controller;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class test {
public static void main(String[] args) throws Exception {
int data = 65504;//data表示要转换的数
toNBigit(data,2);
}
private static void toNBigit(int data, int a) {
if(a>36||a<2){
System.out.println("不支持此进制!!!");
return;
}
if(data<0){
data=((-1*data)^((1<<31)-1))+1;//将负数变为正数,再取反(^((1<<31)-1)即为取反),最后再加1
}
int n=(data%a);
int m=(data/a);
if(m==0){
printNBigitNum(n);
}else{
toNBigit(m,a);
printNBigitNum(n);
}
}
private static void printNBigitNum(int n) {
if(n>9&&n<=36){
System.out.print((char)((n-10)+65));
}else if(n>36){
System.out.println("不支持此进制!!!");
return;
}else{
System.out.print(n);
}
}
}

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

@ -2,6 +2,7 @@ package com.emr.dao;
import com.emr.entity.Archive_Detail;
import com.emr.entity.Archive_Detail_Vo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -30,4 +31,6 @@ public interface Archive_DetailMapper {
List<Archive_Detail> selectByIdStr(Archive_Detail record);
List<Archive_Detail> selectUpdateTimeBySubAssort(@Param("subassort")String subassort);
}

@ -0,0 +1,116 @@
package com.emr.entity;
import java.io.Serializable;
public class ArchiveSumbitdateInfo implements Serializable {
private Integer id;
private String fileId;
private String createTime;
private Integer int1;
private Integer int2;
private Integer int3;
private String str1;
private String str2;
private String str3;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFileId() {
return fileId;
}
public void setFileId(String fileId) {
this.fileId = fileId == null ? null : fileId.trim();
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime == null ? null : createTime.trim();
}
public Integer getInt1() {
return int1;
}
public void setInt1(Integer int1) {
this.int1 = int1;
}
public Integer getInt2() {
return int2;
}
public void setInt2(Integer int2) {
this.int2 = int2;
}
public Integer getInt3() {
return int3;
}
public void setInt3(Integer int3) {
this.int3 = int3;
}
public String getStr1() {
return str1;
}
public void setStr1(String str1) {
this.str1 = str1 == null ? null : str1.trim();
}
public String getStr2() {
return str2;
}
public void setStr2(String str2) {
this.str2 = str2 == null ? null : str2.trim();
}
public String getStr3() {
return str3;
}
public void setStr3(String str3) {
this.str3 = str3 == null ? null : str3.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(", fileId=").append(fileId);
sb.append(", createTime=").append(createTime);
sb.append(", int1=").append(int1);
sb.append(", int2=").append(int2);
sb.append(", int3=").append(int3);
sb.append(", str1=").append(str1);
sb.append(", str2=").append(str2);
sb.append(", str3=").append(str3);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,36 @@
package com.emr.util;
import org.apache.log4j.Logger;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
/**
* @ProjectName:
* @Description:
* @Param
* @Return
* @Author:
* @CreateDate: 2020/8/4 14:18
* @UpdateUser:
* @UpdateDate: 2020/8/4 14:18
* @UpdateRemark:
* @Version: 1.0
*/
public class ExceptionPrintUtil {
private static Logger log = Logger.getLogger("errorMsg");
public static void printException(Exception e){
//方法名
ByteArrayOutputStream baos = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(baos));
String exception = baos.toString();
log.error(exception);
try {
baos.flush();
baos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}

@ -15,4 +15,8 @@ public class HisCollectInfo {
private String ffileId;//文件id
private String pdfflag;//完成情况1:完成0未完成
private String updateLoadTime;//最近上传时间
private String sumbitTime;//最近提交时间
}

@ -1,7 +1,7 @@
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc\:sqlserver\://localhost:1433;databaseName=emr_record
jdbc.username=sa
jdbc.password=docus702
jdbc.password=xjgs+docus911
#Oracle
oracle.driver=oracle.jdbc.driver.OracleDriver
@ -25,11 +25,11 @@ pictureUrl=src\\main\\webapp
#powerUrl=http://120.27.212.36:8888/power/font/getMenusByUserIdAndSysFlag
#POWER_URLHEAD=http://120.27.212.36:8888/power
#power\u6743\u9650\u7CFB\u7EDF\u7684\u670D\u52A1\u5668\u5730\u5740\u5934\u5982\uFF1Ahttp://192.168.1.3:8081/power
powerUrl=http://localhost:8080/power/font/getMenusByUserIdAndSysFlag
POWER_URLHEAD=http://localhost:8080/power
POWER_JSP=http://localhost:8080/power
powerUrl=http://10.36.116.108:8080/power/font/getMenusByUserIdAndSysFlag
POWER_URLHEAD=http://10.36.116.108:8080/power
POWER_JSP=http://10.36.116.108:8080/power
recallReason=医院需要这份文档
HomepageDictionary=http://200.100.104.40:8081/filing/services/HomepageDictionary?wsdl
HomepageDictionary=http://10.36.116.108:8080/filing/services/HomepageDictionary?wsdl
HomepageMethod=CheckData

@ -0,0 +1,147 @@
<?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.ArchiveSumbitdateInfoMapper" >
<resultMap id="BaseResultMap" type="com.emr.entity.ArchiveSumbitdateInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="file_id" property="fileId" jdbcType="VARCHAR" />
<result column="create_time" property="createTime" jdbcType="VARCHAR" />
<result column="int1" property="int1" jdbcType="INTEGER" />
<result column="int2" property="int2" jdbcType="INTEGER" />
<result column="int3" property="int3" jdbcType="INTEGER" />
<result column="str1" property="str1" jdbcType="NVARCHAR" />
<result column="str2" property="str2" jdbcType="NVARCHAR" />
<result column="str3" property="str3" jdbcType="NVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, file_id, create_time, int1, int2, int3, str1, str2, str3
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from archive_sumbitDate_info
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from archive_sumbitDate_info
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.emr.entity.ArchiveSumbitdateInfo" >
insert into archive_sumbitDate_info (id, file_id, create_time,
int1, int2, int3, str1,
str2, str3)
values (#{id,jdbcType=INTEGER}, #{fileId,jdbcType=VARCHAR}, #{createTime,jdbcType=VARCHAR},
#{int1,jdbcType=INTEGER}, #{int2,jdbcType=INTEGER}, #{int3,jdbcType=INTEGER}, #{str1,jdbcType=NVARCHAR},
#{str2,jdbcType=NVARCHAR}, #{str3,jdbcType=NVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.emr.entity.ArchiveSumbitdateInfo" >
insert into archive_sumbitDate_info
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="fileId != null" >
file_id,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="int1 != null" >
int1,
</if>
<if test="int2 != null" >
int2,
</if>
<if test="int3 != null" >
int3,
</if>
<if test="str1 != null" >
str1,
</if>
<if test="str2 != null" >
str2,
</if>
<if test="str3 != null" >
str3,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="fileId != null" >
#{fileId,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=VARCHAR},
</if>
<if test="int1 != null" >
#{int1,jdbcType=INTEGER},
</if>
<if test="int2 != null" >
#{int2,jdbcType=INTEGER},
</if>
<if test="int3 != null" >
#{int3,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
#{str1,jdbcType=NVARCHAR},
</if>
<if test="str2 != null" >
#{str2,jdbcType=NVARCHAR},
</if>
<if test="str3 != null" >
#{str3,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.emr.entity.ArchiveSumbitdateInfo" >
update archive_sumbitDate_info
<set >
<if test="fileId != null" >
file_id = #{fileId,jdbcType=VARCHAR},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=VARCHAR},
</if>
<if test="int1 != null" >
int1 = #{int1,jdbcType=INTEGER},
</if>
<if test="int2 != null" >
int2 = #{int2,jdbcType=INTEGER},
</if>
<if test="int3 != null" >
int3 = #{int3,jdbcType=INTEGER},
</if>
<if test="str1 != null" >
str1 = #{str1,jdbcType=NVARCHAR},
</if>
<if test="str2 != null" >
str2 = #{str2,jdbcType=NVARCHAR},
</if>
<if test="str3 != null" >
str3 = #{str3,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.ArchiveSumbitdateInfo" >
update archive_sumbitDate_info
set file_id = #{fileId,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=VARCHAR},
int1 = #{int1,jdbcType=INTEGER},
int2 = #{int2,jdbcType=INTEGER},
int3 = #{int3,jdbcType=INTEGER},
str1 = #{str1,jdbcType=NVARCHAR},
str2 = #{str2,jdbcType=NVARCHAR},
str3 = #{str3,jdbcType=NVARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectOneByFileId" resultMap="BaseResultMap">
select id,file_id,create_time from archive_sumbitDate_info
<where>
<if test="fileId != null and fileId != ''">
and file_id in(${fileId})
</if>
</where>
</select>
</mapper>

@ -286,4 +286,12 @@
Sys = #{sys,jdbcType=NVARCHAR}
where id = #{id,jdbcType=NVARCHAR}
</update>
<select id="selectUpdateTimeBySubAssort" resultMap="BaseResultMap">
select SubAssort,UpLoadDateTime from archive_detail
<where>
<if test="subassort != null and subassort != ''">
and SubAssort in (${subassort})
</if>
</where>
</select>
</mapper>

@ -9,7 +9,7 @@
%>
<%--<!-- jquery -->--%>
<script type="text/javascript" src="${path}/static/js/jquery-3.3.1.js"></script>
<link rel="stylesheet" href="${path}/static/css/comm.css?time=2020-09-25"/>
<link rel="stylesheet" href="${path}/static/css/comm.css?time=2020-09-28"/>
<%--<!-- 引入bootstrap样式 -->--%>
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7/bower_components/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7/bower_components/bootstrap-table/bootstrap-table.min.css"/>
@ -20,7 +20,7 @@
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7/plugins/bootstrap-table-develop/src/extensions/page-jump/bootstrap-table-pagejump.css"/>
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7/plugins/bootstrap-select-1.13.0-dev/dist/css/bootstrap-select.min.css">
<script type="text/javascript" src="${path}/static/js/comm.js?time=2020-09-25"></script>
<script type="text/javascript" src="${path}/static/js/comm.js?time=2020-09-28"></script>
<script type="text/javascript" src="${path}/static/bootstrap-3.3.7/bower_components/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="${path}/static/bootstrap-3.3.7/bower_components/bootstrap-datepicker/js/locales/bootstrap-datepicker.zh-CN.js"></script>
<script type="text/javascript" src="${path}/static/bootstrap-3.3.7/bower_components/bootstrap/dist/js/bootstrap.js"></script>

@ -19,7 +19,7 @@
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7-dist/css/bootstrap-theme.css">
<script type="text/javascript" src="${path}/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>--%>
<%--<link rel="stylesheet" href="${path}/static/css/comm.css">--%>
<link rel="stylesheet" href="${path}/static/css/comm.css"/>
<link rel="stylesheet" href="${path}/static/css/comm.css?time=2020-09-28"/>
<link rel="stylesheet" href="${path}/static/bootstrap-3.3.7/bower_components/bootstrap/dist/css/bootstrap.min.css"/>
<script type="text/javascript" src="${path}/static/bootstrap-3.3.7/bower_components/bootstrap-table/bootstrap-table.js" ></script>

@ -151,6 +151,24 @@
margin-top: 35%;
width: 100%;
}
.loading {
width: 160px;
height: 56px;
position: absolute;
top: 50%;
left: 50%;
line-height: 56px;
color: #fff;
padding-left: 60px;
font-size: 15px;
background: #000;
opacity: 0.7;
z-index: 9999;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
}
</style>
<script>
var path = "${path}";
@ -158,6 +176,11 @@
</head>
<body>
<div id="myModal" class="modal fade" data-keyboard="false"
data-backdrop="static" data-role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<div id="loading" class="loading">加载中。。。</div>
</div>
<!--隐藏是否是初始化-->
<input type="hidden" id="isSearch" value="0">
<div style="margin-left:30px;margin-right:10px;height:auto">
@ -722,19 +745,15 @@
</div>
<div class="form-group divCss8">
<label>分段:</label>
<select class="form-control" data-live-search="true" id="fentryNo">
<option value="">全部</option>
<option value="123">首页</option>
<option value="234">病程记录</option>
</select>
<select class="form-control" data-live-search="true" id="fentryNo"></select>
</div>
<button type="button" class="btn btn-primary btn-sm divCss" id="collectPdfInfosearchBtn">查询</button>
<button type="button" class="btn btn-primary btn-sm divCss" id="searchBtn22">批量采集</button>
<button type="button" class="btn btn-primary btn-sm divCss" onclick="collects()">批量采集</button>
</div>
</form>
</div>
<div class="col-sm-12" style="text-align: center">
<p>共需45份,已完成30份,未完成15份,完成率75%</p>
<p>共需&nbsp;<span id="collectTotle">0</span>&nbsp;份,已完成&nbsp;<span id="collectFinish">0</span>&nbsp;份,未完成&nbsp;<span id="collectUnFinish" style="color: red">0</span>&nbsp;份,完成率&nbsp;<span id="collectFinishPercentId"><span id="collectFinishPercent">0</span>%</span>&nbsp;</p>
</div>
<div class="col-sm-12">
<!--数据表格-->
@ -981,8 +1000,6 @@
//toastr.error("加载失败!");
}
});
}
getAssortFun();
@ -1712,7 +1729,7 @@
$("#fpatno").val(row.patientId);
//查询是否医生或护士是否提交
var result = 1;
//result = selectHis(row);
result = selectHis(row);
if (result == 1) {
} else if(result == -1){
toastr.warning("系统出错了请联系系统管理员");
@ -1751,7 +1768,7 @@
$("#outHospLab").html(row.dischargeDisposition);
$("#inLab").html(row.inpNo);
$("#inTimeLab").html(row.visitId);
/*if (row.lockinfo == '') {
if (row.lockinfo == '') {
$("#wzContent").text(row.lockinfo);
} else {
//请求接口查看并回显
@ -1767,7 +1784,7 @@
}
},
})
}*/
}
///入/出院年+出院月+住院号+住院次数
var outDate = "";
if (row.dischargeDateTime != null && row.dischargeDateTime != "") {
@ -2152,158 +2169,268 @@
$("#showDefectTable").click(function () {
$("#modal-default").modal({
show: true
})
});
//加载分类
loadAssort();
//加载文件生成情况表格
initTable3();
})
//加载分类
function loadAssort(){
$("#fentryNo").empty();
$.ajax({
type: 'post',
url: path + '/beHosp/getPdfCollectInfoFromHis',
data:{
fpatno: $("#fpatno").val()
},
dataType: 'json',
success: function (data) {
var html = '<option value="">全部</option>';
if(data != null){
//获取分段集合
var map = new Map();
for(var i = 0;i < data.length;i++){
map.set(data[i].fentryNo,data[i].fentryName);
}
//组织赋值分段下拉
map.forEach(function(value,key){
html += '<option value="'+key+'">'+value+'</option>';
})
}
$("#fentryNo").append(html);
}
});
}
//加载文件生成情况表格
function initTable3() {
$("#table3").bootstrapTable({ // 对应table标签的id
url: "${path}/inHosp/getAssortdetail", // 获取表格数据的url
contentType: "application/x-www-form-urlencoded",//一种编码。好像在post请求的时候需要用到。这里用的get请求注释掉这句话也能拿到数据
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
paginationShowPageGo: true,
pageList: [10, 20, 50, 100], // 如果设置了分页设置可供选择的页面数据条数。设置为All 则显示所有记录。
pageSize: 2, // 页面数据条数
pageNumber: 1, // 初始化加载第一页,默认第一页
sidePagination: 'server', // 设置为服务器端分页 客户端client
searchOnEnterKey: true, //设置为 true时按回车触发搜索方法否则自动触发搜索方法
undefinedText: '---', //当数据为 undefined 时显示的字符
clickToSelect: true,//设置true 将在点击行时自动选择rediobox 和 checkbox
height: 560, //定义表格的高度。
searchTimeOut: 500,// 默认500 设置搜索超时时间。
paginationDetailHAlign: 'left',//指定 分页详细信息 在水平方向的位置。'left' 或 'right'。
showHeader: true,//是否显示列头。
trimOnSearch: true,//设置为 true 将自动去掉搜索字符的前后空格。
queryParams: function (params) {
var currPageSize = this.pageSize;
if (currPageSize == 2) {
currPageSize = 10;
}
var limit = null;
var offset = params.offset;
var patientId = $("#idLab").html();
var assortId = $("#assortId").html();
if (assortId == 0) assortId = null;
//判断是否导出全部all
if ($("#sel_exportoption").val() == "all") {
offset = 0;
limit = this.totalRows;
this.pageSize = limit;
} else {
limit = currPageSize;
this.pageSize = currPageSize;
}
var temp = {
limit: limit, //页面大小
offset: offset, //页码
fpatno: $("#fpatno").val(),
frecName:$("#frecName").val(),
fentryNo:$("#fentryNo").val(),
pdfflag:$("#pdfflag").val()
};
return temp;
$('#myModal').modal('show');
//查询数据
$.ajax({
type:'post',
url:path+'/beHosp/getPdfCollectInfoFromHis',
data:{
fpatno: $("#fpatno").val(),
frecName:$("#frecName").val(),
fentryNo:$("#fentryNo").val(),
pdfflag:$("#pdfflag").val()
},
columns: [{
title: '全选',
field: 'select', //复选框
checkbox: true,
width: 25,
align: 'center',
hidden: true,
}, {
title: '序',
field: 'id',
align: 'left',
visible: false
},
{
title: "操作",
align: 'left',
valign: 'middle',
width: 100, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var html = '<button type="button" class="btn btn-primary btn-sm firstCollect">优先采集</button>';
return html;
}, events: {
'click .firstCollect': function (e, value, row, index) {
toastr.success("及时采集标记已发送,请耐心等待");
}
},
cellStyle: function (value, row, index) {
return {classes: 'success'}
dataType:'json',
success:function(data){
if(data != null) {
//加载成功数量
loadCollectNum(data);
$('#table3').bootstrapTable('destroy');
//加载表格
$("#table3").bootstrapTable({ // 对应table标签的id
data: data,
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
paginationShowPageGo: true,
pageList: [10, 20, 50, 100], // 如果设置了分页设置可供选择的页面数据条数。设置为All 则显示所有记录。
pageSize: 10, // 页面数据条数
pageNumber: 1, // 初始化加载第一页,默认第一页
sidePagination: 'client', // 设置为服务器端分页 客户端client
searchOnEnterKey: true, //设置为 true时按回车触发搜索方法否则自动触发搜索方法
undefinedText: '---', //当数据为 undefined 时显示的字符
clickToSelect: true,//设置true 将在点击行时自动选择rediobox 和 checkbox
height: 560, //定义表格的高度。
searchTimeOut: 500,// 默认500 设置搜索超时时间。
paginationDetailHAlign: 'left',//指定 分页详细信息 在水平方向的位置。'left' 或 'right'。
showHeader: true,//是否显示列头。
trimOnSearch: true,//设置为 true 将自动去掉搜索字符的前后空格。
columns: [{
title: '全选',
field: 'select', //复选框
checkbox: true,
width: 25,
align: 'center',
hidden: true,
}, {
title: '序',
field: 'id',
align: 'left',
visible: false
},
{
title: "操作",
align: 'left',
valign: 'middle',
width: 100, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var html = '<button type="button" class="btn btn-primary btn-sm firstCollect">优先采集</button>';
return html;
}, events: {
'click .firstCollect': function (e, value, row, index) {
$(this).attr("disabled",true);
//分类编号
var fentryNos = row.fentryNo;
//文件id
var ffileIds = row.ffileId;
//提交请求
sumbitFirstCollect(fentryNos,ffileIds);
$(this).removeAttr("disabled");
}
},
cellStyle: function (value, row, index) {
return {classes: 'success'}
}
},
{
title: '标题',
field: 'title',
align: 'left',
valign: 'middle',
//格式化列
formatter: function (value, row, index) {
value = '病程记录病程记录病程记录病程记录病程记录病程记录病程记录';
return paramsMatterColumn(value);
}
},
{
title: '状态',
field: 'flag',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
//在院 未归档 归档中 初审 已归档 已认证
var a = '';
if (value == "1") {
a = '<span style="color:red;"><i class="fa fa-times-circle-o" aria-hidden="true"></i>未完成</span>';
} else if (value == "0") {
a = '<span style="color:green"><i class="fa fa-check-circle-o" aria-hidden="true"></i>完成</span>';
}
},
{
title: '标题',
field: 'frecName',
align: 'left',
valign: 'middle',
//格式化列
formatter: function (value, row, index) {
return paramsMatterColumn(value);
}
},
{
title: '状态',
field: 'pdfflag',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
//在院 未归档 归档中 初审 已归档 已认证
var a = '';
if (value == '0') {
a = '<span style="color:red;"><i class="fa fa-times-circle-o" aria-hidden="true"></i>未完成</span>';
} else if (value == '1') {
a = '<span style="color:green"><i class="fa fa-check-circle-o" aria-hidden="true"></i>完成</span>';
}
return a;
}
},
{
title: '来源',
field: 'source',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return 'his';
}
},
{
title: '分段',
field: 'fentryName',
align: 'center',
valign: 'middle'
},
{
title: '最新采集时间',
field: 'updateLoadTime',
align: 'left',
valign: 'middle',
width: 150 // 定义列的宽度单位为像素px
},
{
title: '最近手动提交时间',
field: 'sumbitTime',
align: 'left',
valign: 'middle',
width: 150, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
if(value != '' && value != null){
var color = '';
color = 'red';
if(row.updateLoadTime != ''){
if(value < row.updateLoadTime){
color = 'green';
}
}
return '<span style="color:'+color+';">'+value+'</span>';
}else{
return value;
}
}
}
],
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
return a;
}
},
{
title: '来源',
field: 'source',
align: 'center',
valign: 'middle'
},
{
title: '分段',
field: 'flag',
align: 'center',
valign: 'middle',
formatter: function (value, row, index) {
return '检验检查报告';
}
},
{
title: '最新时间',
field: 'uploaddatetime',
align: 'left',
valign: 'middle',
width: 150 // 定义列的宽度单位为像素px
},
{
title: '最近手动提交时间',
field: '',
align: 'left',
valign: 'middle',
width: 150 // 定义列的宽度单位为像素px
});
$('#myModal').modal('hide');
}
],
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
});
})
}
//加载采集数量
function loadCollectNum(data){
//总数量
$("#collectTotle").text(data.length);
//完成数
var finishNum = 0;
for(var i = 0;i < data.length;i++){
if(data[i].pdfflag == '1'){
finishNum++;
}
}
$("#collectFinish").text(finishNum);
//为完成数
$("#collectUnFinish").text(data.length-finishNum);
//完成百分比
var percent = Math.round(finishNum*100/data.length);
$("#collectFinishPercent").text(percent);
var color = 'red';
if(percent >= 80){
color = 'green';
}
$("#collectFinishPercentId").css("color",color);
}
//pdf生成情况查询按钮
$("#collectPdfInfosearchBtn").click(function(){
$("#table3").bootstrapTable("refreshOptions", {pageNumber: 1});
initTable3();
})
$("#loading").css("background","url(${path}/static/img/load.gif) no-repeat 10px 50%");
//批量采集
function collects(){
var data =$("#table3").bootstrapTable('getSelections');
if(data.length == 0){
toastr.warning("请至少选中一个!");
}else{
var fentryNos = '';
var ffileIds = '';
for (var i = 0; i < data.length; i++) {
if(i != 0){
fentryNos += ',';
ffileIds += ',';
}
fentryNos += data[i].fentryNo;
ffileIds += data[i].ffileId;
}
sumbitFirstCollect(fentryNos,ffileIds);
}
}
//优先采集
function sumbitFirstCollect(fentryNos,ffileIds){
$('#myModal').modal('show');
$.ajax({
type:'post',
url:path+"/beHosp/insetHisPdfCollect",
data:{
fpatno: $("#fpatno").val(),
fentryNos:fentryNos,
ffileIds:ffileIds
},
dataType:'json',
async:false,
success:function(data){
if(data.code == 100){
toastr.success("及时采集标记已发送,请耐心等待");
initTable3();
}else{
toastr.error(data.msg);
}
$('#myModal').modal('hide');
}
})
}
</script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-25"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-28"></script>
</html>

@ -1843,5 +1843,5 @@
</script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-25"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-28"></script>
</html>

@ -298,7 +298,7 @@
</div>
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 20200211
<b>Version</b> 20200928
</div>
<strong>Copyright &copy; 2019-2090 厦门嘉时软件.</strong> All rights
reserved.

@ -2247,5 +2247,5 @@
return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
}
</script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-01-07"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-28"></script>
</html>

@ -2047,5 +2047,5 @@
});
</script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-25"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-09-28"></script>
</html>

@ -245,8 +245,8 @@ function initTable2() {
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
//return '<button class="btn btn-danger btn-sm" onclick="selectFun(\'' + row + '\')">查看 </button>';
var html = '<button type="button" class="btn btn-info btn-sm editInfo" >编辑 </button>';// '<a href="javascript:;" class="delete">删除</a>';
var id = "'" + row.id + "'";
var html = '<button type="button" class="btn btn-success btn-sm" onclick="selectFun('+id+')">查看PDF </button><button type="button" class="btn btn-info btn-sm editInfo" >编辑 </button>';// '<a href="javascript:;" class="delete">删除</a>';
if (row.flag == "0") {
html = html + '<button type="button" class="btn btn-danger btn-sm stateInfo" >作废 </button>';
}
@ -309,4 +309,11 @@ function initTable2() {
idArr = [];
}
});
}
//单个查看
function selectFun(idStr){
//上传后预览pdf文件,根据id直接获取pdf并合成
var pdfUrl = path+"/static/pdfjs/web/viewer.html?file="+path+"/inHosp/getPdfById/"+idStr;
var openWin = window.open(pdfUrl,"_blank");
setTimeout(function(){ openWin.document.title = $("#nameLab").text(); }, 100);
}
Loading…
Cancel
Save