view和http 结合 xxl-job 实现逻辑

segment2.0
linrf 2 years ago
parent 526df4def5
commit 0b8a75410d

@ -134,7 +134,6 @@
</execution>
</executions>
</plugin>
<!-- 打jar包时忽略配置文件 -->

@ -1,7 +1,6 @@
package com.docus.server;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@ -10,10 +9,11 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@Slf4j
//@EnableFeignClients(basePackages = ("com.feign"))
//@EnableHystrix
@SpringBootApplication(scanBasePackages ={"com.docus"})
//@MapperScan("com.docus.server")
@SpringBootApplication(scanBasePackages = {"com.docus"})
public class AppRunBootstrap {
public static void main(String[] args) {
System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
SpringApplication.run(AppRunBootstrap.class,args);
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
SpringApplication.run(AppRunBootstrap.class, args);
}
}

@ -1,7 +1,6 @@
package com.docus.server;
import com.docus.server.ws.IWebserviceServer;
import lombok.RequiredArgsConstructor;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws.EndpointImpl;
@ -11,13 +10,13 @@ import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import javax.xml.ws.Endpoint;
@Configuration
@RequiredArgsConstructor
public class CxfConfig {
private final IWebserviceServer webserviceServer;
@Resource
private IWebserviceServer webserviceServer;
/**
* ServletbeanNamedispatcherServlet

@ -1,16 +0,0 @@
package com.docus.server.collect.dept;
import com.docus.server.collect.service.IHttpDeptCollectService;
import com.docus.server.sys.service.Dept;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
public class HttpDeptCollectService implements IHttpDeptCollectService {
@Override
public List<Dept> getDepts(Date startDate, Date endDate, long pazeNum, long pageSize) {
return null;
}
}

@ -0,0 +1,34 @@
package com.docus.server.collect.dept;
import com.docus.server.collect.service.IHttpDeptCollectService;
import com.docus.server.sys.pojo.dto.DeptDTO;
import com.google.common.collect.Lists;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class HttpDeptCollectServiceImpl implements IHttpDeptCollectService {
@Override
public List<DeptDTO> getDepts(Date startDate, Date endDate, long pazeNum, long pageSize) {
DeptDTO deptDTO = new DeptDTO();
deptDTO.setAuthorId("1");
deptDTO.setAuthorName("admin");
deptDTO.setDeptCode("1");
deptDTO.setDeptName("测试1科");
deptDTO.setMessageId("1");
deptDTO.setOperateType("save");
deptDTO.setReceiver("admin");
DeptDTO deptDTO1 = new DeptDTO();
deptDTO1.setAuthorId("2");
deptDTO1.setAuthorName("admin2");
deptDTO1.setDeptCode("2");
deptDTO1.setDeptName("测试2科");
deptDTO1.setMessageId("2");
deptDTO1.setOperateType("save2");
deptDTO1.setReceiver("admin2");
return Lists.newArrayList(deptDTO, deptDTO1);
}
}

@ -1,22 +1,22 @@
package com.docus.server.collect.medical.record;
import com.docus.server.record.domain.MedicalRecord;
import com.docus.server.sys.service.Dept;
import com.docus.server.collect.service.IParseService;
import org.springframework.stereotype.Component;
import com.docus.server.record.pojo.entity.MedicalRecord;
import com.docus.server.sys.service.Dept;
import org.springframework.stereotype.Service;
@Component
public class ParseService implements IParseService {
@Service
public class ParseServiceImpl implements IParseService {
@Override
public MedicalRecord parseHandNumbness(String handNumbness){
public MedicalRecord parseHandNumbness(String handNumbness) {
//TODO 根据协议进行解析。
return null;
}
@Override
public Dept parseDeptXml(String deptXml){
public Dept parseDeptXml(String deptXml) {
//TODO 根据协议进行解析。
return null;
}

@ -17,13 +17,11 @@ spring:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
his:
url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_archivefile?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus
password: docus702
url: jdbc:log4jdbc:mysql://127.0.0.1:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root@123456
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
redis:
host: redis.docus.cn
password: JSdocus@702
@ -39,7 +37,6 @@ spring:
shared-configs:
- comm.${spring.cloud.nacos.config.file-extension}
docus:
dbtype: mysql
@ -48,17 +45,20 @@ mybatis-plus:
map-underscore-to-camel-case: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
jdbc-type-for-null: null
global-config:
db-config:
update-strategy: ignored
field-strategy: NOT_EMPTY
db-type: MYSQL
mapper-locations: classpath*:/mapper/*Mapper.xml
xxl:
job:
accessToken:
admin:
addresses: http://job.docus.cn:8180/xxl-job-admin
executor:
appname: docus-inspection
appname: xxl-job-executor-test
address:
ip:
port: 17781

@ -1,27 +0,0 @@
package com.docus.server.collect.domain;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class TaskConfigService implements ITaskConfigService {
@Override
public void updateAllPointerDate(String id, Date date){
}
@Override
public void updateIncPointerDate(String id, Date date){
}
@Override
public TaskConfig getTaskConfig(String id){
return null;
}
}

@ -0,0 +1,29 @@
package com.docus.server.collect.domain;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.docus.server.collect.infrastructure.mapper.TaskConfigMapper;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class TaskConfigServiceImpl extends ServiceImpl<TaskConfigMapper, TaskConfig> implements ITaskConfigService {
@Override
public void updateAllPointerDate(String id, Date date) {
}
@Override
public void updateIncPointerDate(String id, Date date) {
}
@Override
public TaskConfig getTaskConfig(String id) {
return super.getById(id);
}
}

@ -1,7 +1,10 @@
package com.docus.server.collect.infrastructure.dao;
import lombok.Data;
import java.util.Date;
@Data
public class ReceiveDeptInfoEntity {
private String deptCode;

@ -1,8 +1,10 @@
package com.docus.server.collect.infrastructure.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.server.collect.infrastructure.dao.ReceiveDeptInfoEntity;
import org.apache.ibatis.annotations.Mapper;
public interface ReceiveDeptInfoMapper {
@Mapper
public interface ReceiveDeptInfoMapper extends BaseMapper<ReceiveDeptInfoEntity> {
public void save(ReceiveDeptInfoEntity receiveDeptInfoEntity);
}

@ -0,0 +1,13 @@
package com.docus.server.collect.infrastructure.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.server.collect.domain.TaskConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* @Author : linrf
* @create 2023/5/30 9:11
*/
@Mapper
public interface TaskConfigMapper extends BaseMapper<TaskConfig> {
}

@ -1,50 +0,0 @@
package com.docus.server.collect.job;
import com.docus.server.collect.domain.ITaskConfigService;
import com.docus.server.collect.service.IHttpDeptCollectService;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.service.IDeptService;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
public class DeptHttpCollect extends AbstractDeptHttpCollect {
private final IHttpDeptCollectService httpDeptCollectService;
public DeptHttpCollect(IDeptService deptService, ITaskConfigService taskConfigService,IHttpDeptCollectService httpDeptCollectService) {
super(deptService,taskConfigService);
this.httpDeptCollectService = httpDeptCollectService;
}
/**
* xxl job
*/
@XxlJob("startAllDeptHttpCollect")
public void startCollectAll(){
super.startCollectAll("1");
}
/**
* xxl job
*/
@XxlJob("startIncDeptHttpCollect")
public void startCollectIncrement(){
super.startCollectIncrement("1");
}
@Override
public List<Dept> getDepts(Date startDate, Date endDate, long pazeNum, long pageSize) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。
return httpDeptCollectService.getDepts( startDate, endDate, pazeNum, pageSize);
}
}

@ -1,48 +0,0 @@
package com.docus.server.collect.job;
import com.docus.server.collect.domain.ITaskConfigService;
import com.docus.server.his.service.IHisService;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.service.IDeptService;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
public class DeptViewCollect extends AbstractDeptHttpCollect {
private final IHisService hisService;
protected DeptViewCollect(IDeptService deptService, ITaskConfigService taskConfigService,IHisService hisService) {
super(deptService, taskConfigService);
this.hisService = hisService;
}
/**
* xxl job
*/
@XxlJob("allDeptViewCollect")
public void allDeptViewCollect(){
super.startCollectAll("2");
}
/**
* xxl job
*/
@XxlJob("incDeptViewCollect")
public void startCollectIncrement(){
super.startCollectIncrement("1");
}
@Override
public List<Dept> getDepts(Date startDate, Date endDate, long pageNum, long pageSize) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。
return hisService.getDeptListView(startDate,endDate,pageNum,pageSize);
}
}

@ -1,26 +1,27 @@
package com.docus.server.collect.job;
package com.docus.server.collect.job.dept;
import com.docus.server.collect.domain.ITaskConfigService;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.service.IDeptService;
import com.docus.server.collect.domain.TaskConfig;
import com.docus.server.sys.pojo.dto.DeptDTO;
import com.docus.server.sys.service.IPowerDeptService;
import com.docus.server.tool.PeriodTime;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
public abstract class AbstractDeptHttpCollect {
private final IDeptService deptService;
public abstract class AbstractDeptHttpCollectJob {
@Autowired
private final IPowerDeptService deptService;
@Resource
private final ITaskConfigService taskConfigService;
protected AbstractDeptHttpCollect(IDeptService deptService, ITaskConfigService taskConfigService) {
protected AbstractDeptHttpCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService) {
this.deptService = deptService;
this.taskConfigService = taskConfigService;
}
/**
*
*/
@ -31,14 +32,14 @@ public abstract class AbstractDeptHttpCollect {
List<PeriodTime> periodTimes = taskConfig.getAllPeriodTimes();
for (PeriodTime periodTime : periodTimes) {
//考虑到性能,应该把起始时间和结束时间进行切割拆分到每天。按段查询。
List<Dept> depts = null;
List<DeptDTO> depts = null;
int pageNum = 0;
while (true) {
depts = this.getDepts(periodTime.getPeriodStartDate(), periodTime.getPeriodEndDate(), pageNum, taskConfig.getPageSize());
if (depts == null || depts.size() == 0) {
break;
}
deptService.save(depts);
deptService.batchSavePowerDept(depts);
pageNum++;
}
taskConfigService.updateAllPointerDate(taskConfigId, periodTime.getPeriodEndDate());
@ -57,19 +58,20 @@ public abstract class AbstractDeptHttpCollect {
List<PeriodTime> periodTimes = taskConfig.getIncPeriodTimes();
for (PeriodTime periodTime : periodTimes) {
//考虑到性能,应该把起始时间和结束时间进行切割拆分到每天。按段查询。
List<Dept> depts = null;
int pageNum = 0;
while (true) {
List<DeptDTO> depts;
int pageNum = 1;
for (; true; pageNum++) {
depts = this.getDepts(periodTime.getPeriodStartDate(), periodTime.getPeriodEndDate(), pageNum, taskConfig.getPageSize());
if (depts == null || depts.size() == 0) {
break;
}
deptService.save(depts);
pageNum++;
deptService.batchSavePowerDept(depts);
}
taskConfigService.updateIncPointerDate(taskConfigId, periodTime.getPeriodEndDate());
}
}
@ -82,7 +84,7 @@ public abstract class AbstractDeptHttpCollect {
* @param pageSize
* @return
*/
public abstract List<Dept> getDepts(Date startDate, Date endDate, long pageNum, long pageSize);
public abstract List<DeptDTO> getDepts(Date startDate, Date endDate, long pageNum, long pageSize);
}

@ -0,0 +1,50 @@
package com.docus.server.collect.job.dept;
import com.docus.server.collect.domain.ITaskConfigService;
import com.docus.server.collect.service.IHttpDeptCollectService;
import com.docus.server.sys.pojo.dto.DeptDTO;
import com.docus.server.sys.service.IPowerDeptService;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Component
public class DeptHttpCollectJob extends AbstractDeptHttpCollectJob {
@Resource
private final IHttpDeptCollectService httpDeptCollectService;
public DeptHttpCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService, IHttpDeptCollectService httpDeptCollectService) {
super(deptService, taskConfigService);
this.httpDeptCollectService = httpDeptCollectService;
}
/**
* xxl jobhandler
*/
@XxlJob("startAllDeptHttpCollect")
public void startAllDeptHttpCollect() {
super.startCollectAll("1");
}
/**
* xxl jobhandler
*/
@XxlJob("startIncDeptHttpCollect")
public void startIncDeptHttpCollect() {
super.startCollectIncrement("1");
}
@Override
public List<DeptDTO> getDepts(Date startDate, Date endDate, long pazeNum, long pageSize) {
//需要根据不同医院去解析不同的内容。使用接口实现的方式。
return httpDeptCollectService.getDepts(startDate, endDate, pazeNum, pageSize);
}
}

@ -0,0 +1,52 @@
package com.docus.server.collect.job.dept;
import com.docus.server.collect.domain.ITaskConfigService;
import com.docus.server.his.service.IHisService;
import com.docus.server.sys.pojo.dto.DeptDTO;
import com.docus.server.sys.service.IPowerDeptService;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Component
public class DeptViewCollectJob extends AbstractDeptHttpCollectJob {
@Resource
private final IHisService hisService;
protected DeptViewCollectJob(IPowerDeptService deptService, ITaskConfigService taskConfigService, IHisService hisService) {
super(deptService, taskConfigService);
this.hisService = hisService;
}
/**
* xxl jobhandler
*/
@XxlJob("startAllDeptViewCollect")
public void startAllDeptViewCollect() {
super.startCollectAll("2");
}
/**
* xxl jobhandler
*/
@XxlJob("startIncDeptViewCollect")
public void startIncDeptViewCollect() {
String jobParam = XxlJobHelper.getJobParam();
System.out.println(jobParam);
super.startCollectIncrement(jobParam);
}
@Override
public List<DeptDTO> getDepts(Date startDate, Date endDate, long pageNum, long pageSize) {
//每家医院按照固定的格式写sql不同医院需要替换不同的sql即可。
return hisService.getDeptListView(startDate, endDate, pageNum, pageSize);
}
}

@ -1,34 +1,35 @@
package com.docus.server.collect.mq;
import com.docus.server.ws.IWsResult;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.service.IDeptService;
import lombok.AllArgsConstructor;
import com.docus.server.ws.IWsResult;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
/**
* mq
*/
@AllArgsConstructor
@Slf4j
public class MqCollect {
private final IDeptService deptService;
private final IWsResult wsResult;
@Resource
private IDeptService deptService;
@Resource
private IWsResult wsResult;
public String receiveDept(String deptXml){
log.info("收到科室消息:{}",deptXml);
try{
public String receiveDept(String deptXml) {
log.info("收到科室消息:{}", deptXml);
try {
Dept dept = this.parseDeptXml(deptXml);
deptService.save(dept);
return wsResult.ok(dept.getParams());
}catch (Exception e){
} catch (Exception e) {
return wsResult.fail(e.getMessage());
}
}
public Dept parseDeptXml(String deptXml){
public Dept parseDeptXml(String deptXml) {
return null;
}
}

@ -4,25 +4,27 @@ import com.docus.server.collect.infrastructure.dao.ReceiveDeptInfoEntity;
import com.docus.server.collect.infrastructure.mapper.ReceiveDeptInfoMapper;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.service.IDeptService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Component
@AllArgsConstructor
@Service
public class CollectService {
@Resource
private IDeptService deptService;
@Resource
private ReceiveDeptInfoMapper receiveDeptInfoMapper;
private final IDeptService deptService;
private final ReceiveDeptInfoMapper receiveDeptInfoMapper;
public void receiveDept(Dept dept){
public void receiveDept(Dept dept) {
//判断任务是否存在。
//保存数据库
//从dept 解析为数据库对象
ReceiveDeptInfoEntity receiveDeptInfoEntity = new ReceiveDeptInfoEntity();
receiveDeptInfoMapper.save(receiveDeptInfoEntity);
receiveDeptInfoMapper.insert(receiveDeptInfoEntity);
//异步写入归档系统,失败自动重试。
deptService.save(dept);
@ -30,5 +32,4 @@ public class CollectService {
}
}

@ -1,10 +1,10 @@
package com.docus.server.collect.service;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.pojo.dto.DeptDTO;
import java.util.Date;
import java.util.List;
public interface IHttpDeptCollectService {
List<Dept> getDepts(Date startDate, Date endDate, long pazeNum, long pageSize);
List<DeptDTO> getDepts(Date startDate, Date endDate, long pazeNum, long pageSize);
}

@ -1,6 +1,6 @@
package com.docus.server.collect.service;
import com.docus.server.record.domain.MedicalRecord;
import com.docus.server.record.pojo.entity.MedicalRecord;
import com.docus.server.sys.service.Dept;
public interface IParseService {

@ -4,8 +4,8 @@ import java.util.Map;
public interface IWsResult {
public String ok(Map<String,String> params);
String ok(Map<String, String> params);
public String fail(String message);
String fail(String message);
}

@ -2,49 +2,48 @@ package com.docus.server.ws;
import com.docus.server.collect.service.CollectService;
import com.docus.server.collect.service.IParseService;
import com.docus.server.record.domain.MedicalRecord;
import com.docus.server.record.pojo.entity.MedicalRecord;
import com.docus.server.record.service.IMedicalRecordService;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.service.IDeptService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@AllArgsConstructor
@Component
public class WsCollect {
private final IMedicalRecordService medicalRecordService;
private final IParseService parseService;
private final CollectService collectService;
private final IWsResult wsResult;
@Autowired
private IMedicalRecordService medicalRecordService;
@Autowired
private IParseService parseService;
@Autowired
private CollectService collectService;
@Autowired
private IWsResult wsResult;
//接收xml。并且下载病案。
public String receiveHandNumbness(String handNumbness){
log.info("收到手麻消息:{}",handNumbness);
try{
public String receiveHandNumbness(String handNumbness) {
log.info("收到手麻消息:{}", handNumbness);
try {
MedicalRecord medicalRecord = parseService.parseHandNumbness(handNumbness);
medicalRecordService.receive(medicalRecord);
return wsResult.ok(medicalRecord.getParams());
}catch (Exception e){
} catch (Exception e) {
return wsResult.fail(e.getMessage());
}
}
public String receiveDept(String deptXml){
log.info("收到科室消息:{}",deptXml);
try{
public String receiveDept(String deptXml) {
log.info("收到科室消息:{}", deptXml);
try {
Dept dept = parseService.parseDeptXml(deptXml);
//此处需要存储原xml内容。
collectService.receiveDept(dept);
return wsResult.ok(dept.getParams());
}catch (Exception e){
} catch (Exception e) {
return wsResult.fail(e.getMessage());
}
}

@ -1,26 +1,27 @@
package com.docus.server.ws.impl;
import com.docus.server.ws.IWebserviceServer;
import com.docus.server.ws.WsCollect;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.docus.server.ws.IWebserviceServer;
import javax.annotation.Resource;
@Slf4j
@Service
@AllArgsConstructor
public class WebserviceServer implements IWebserviceServer {
private final WsCollect wsCollect;
@Resource
private WsCollect wsCollect;
@Override
public String receiveHandNumbness(String handNumbness){
return wsCollect.receiveHandNumbness(handNumbness);
public String receiveHandNumbness(String handNumbness) {
return wsCollect.receiveHandNumbness(handNumbness);
}
@Override
public String receiveDept(String deptXml){
return wsCollect.receiveDept(deptXml);
public String receiveDept(String deptXml) {
return wsCollect.receiveDept(deptXml);
}
}

@ -9,4 +9,18 @@
<artifactId>docus-medical-record</artifactId>
<name>Archetype - docus-medical-record</name>
<url>http://maven.apache.org</url>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>

@ -3,6 +3,7 @@ package com.docus.server.record.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.server.record.pojo.entity.TBasic;
import com.docus.server.record.pojo.entity.TBasicExtend;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -15,6 +16,7 @@ import java.util.List;
* @author jiashi
* @since 2021-04-14
*/
@Mapper
public interface TBasicMapper extends BaseMapper<TBasic> {
/**
*

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.record.baseMapper.TBasicMapper">
<mapper namespace="com.docus.server.record.mapper.TBasicMapper">
<select id="getPatientIdByInpatientNoAndAdminssTimes" resultType="java.lang.String">
select `patient_id`
@ -102,7 +102,7 @@
<select id="getPatientId" resultType="java.lang.String">
select patient_id from t_basic where jzh=#{jzh}
</select>
<select id="selectBasicListByAdmissDate" resultType=" com.docus.server.record.pojo.entity.TBasic">
<select id="selectBasicListByAdmissDate" resultType="com.docus.server.record.pojo.entity.TBasic">
select *
from `docus_medicalrecord`.`t_basic`
where admiss_date between #{admissStartDate} AND #{admissEndDate}
@ -114,7 +114,7 @@
from `docus_medicalrecord`.`t_basic_extend`
where patient_id=#{patientId}
</select>
<select id="selectBasicListByCreateOrUpdateTime" resultType=" com.docus.server.record.pojo.entity.TBasic">
<select id="selectBasicListByCreateOrUpdateTime" resultType="com.docus.server.record.pojo.entity.TBasic">
select `patient_id`,
`admiss_times`,
`inpatient_no`,
@ -137,7 +137,7 @@
limit #{offset}
, #{size}
</select>
<select id="selectBasicListByPatientIds" resultType=" com.docus.server.record.pojo.entity.TBasic">
<select id="selectBasicListByPatientIds" resultType="com.docus.server.record.pojo.entity.TBasic">
select `patient_id`,
`admiss_times`,
`inpatient_no`,

@ -9,4 +9,18 @@
<artifactId>docus-sys</artifactId>
<name>Archetype - docus-sys</name>
<url>http://maven.apache.org</url>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>

@ -1,8 +1,9 @@
package com.docus.server.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.server.sys.pojo.entity.PowerDept;
import com.docus.server.sys.pojo.dto.DeptModifyParam;
import com.docus.server.sys.pojo.entity.PowerDept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
@ -13,6 +14,7 @@ import org.apache.ibatis.annotations.Param;
* @author wen yongbin
* @since 202322522:28:58
*/
@Mapper
public interface PowerDeptMapper extends BaseMapper<PowerDept> {
/**

@ -1,8 +1,9 @@
package com.docus.server.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.server.sys.pojo.entity.PowerUser;
import com.docus.server.sys.pojo.dto.UserModifyParam;
import com.docus.server.sys.pojo.entity.PowerUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
@ -13,6 +14,7 @@ import org.apache.ibatis.annotations.Param;
* @author wen yongbin
* @since 202322522:28:58
*/
@Mapper
public interface PowerUserMapper extends BaseMapper<PowerUser> {
/**

@ -8,7 +8,7 @@ import java.util.List;
@Component
@AllArgsConstructor
public class DeptService implements IDeptService{
public class DeptService implements IDeptService {
private final IDeptDao deptDao;

@ -2,10 +2,20 @@ package com.docus.server.sys.service;
import com.docus.server.sys.pojo.dto.DeptDTO;
import java.util.List;
/**
*
*/
public interface IPowerDeptService {
/**
*
*
* @param deptDTOList
* @return
*/
void batchSavePowerDept(List<DeptDTO> deptDTOList);
/**
*
*

@ -4,13 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.docus.core.util.Func;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.server.sys.mapper.PowerDeptMapper;
import com.docus.server.sys.pojo.entity.PowerDept;
import com.docus.server.sys.pojo.dto.DeptDTO;
import com.docus.server.sys.pojo.dto.DeptModifyParam;
import com.docus.server.sys.pojo.entity.PowerDept;
import com.docus.server.sys.service.IPowerDeptService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
*
@ -19,34 +20,36 @@ import javax.annotation.Resource;
*/
@Service
public class PowerDeptServiceImpl extends ServiceImpl<PowerDeptMapper, PowerDept> implements IPowerDeptService {
// @Resource
// private PowerDeptMapper powerDeptMapper;
@Resource
private IdService idService;
@Override
public void batchSavePowerDept(List<DeptDTO> deptDTOList) {
deptDTOList.forEach(this::register);
}
@Override
public boolean register(DeptDTO deptDTO) {
// PowerDept powerDept = powerDeptMapper.getDeptByDeptCode(deptDTO.getDeptCode());
PowerDept powerDept = getBaseMapper().getDeptByDeptCode(deptDTO.getDeptCode());
PowerDept powerDept = baseMapper.getDeptByDeptCode(deptDTO.getDeptCode());
DeptModifyParam deptModifyParam = deptDTO.transDeptAddParam();
if (Func.isEmpty(powerDept)) {
long deptId = idService.getDateSeq();
deptModifyParam.setDeptId(deptId);
getBaseMapper().addDept(deptModifyParam);
baseMapper.addDept(deptModifyParam);
return true;
}
deptModifyParam.setDeptId(powerDept.getDeptId());
getBaseMapper().updateDept(deptModifyParam);
baseMapper.updateDept(deptModifyParam);
return true;
}
@Override
public boolean delDeptByDeptCode(String deptCode) {
PowerDept powerDept = getBaseMapper().getDeptByDeptCode(deptCode);
PowerDept powerDept = baseMapper.getDeptByDeptCode(deptCode);
if (Func.isEmpty(powerDept)) {
return true;
}
getBaseMapper().delDeptByDeptCode(deptCode);
baseMapper.delDeptByDeptCode(deptCode);
return true;
}
}

@ -30,27 +30,27 @@ public class PowerUserServiceImpl extends ServiceImpl<PowerUserMapper, PowerUser
@Override
public boolean register(UserDTO userDTO) {
// PowerUser powerUser = powerUserMapper.getUserByUserName(userDTO.getUserName());
PowerUser powerUser = getBaseMapper().getUserByUserName(userDTO.getUserName());
PowerUser powerUser = baseMapper.getUserByUserName(userDTO.getUserName());
UserModifyParam userModifyParam = userDTO.transUserAddParam();
if (Func.isEmpty(powerUser)) {
long userId = idService.getDateSeq();
userModifyParam.setUserId(userId);
userModifyParam.setUserPwd(userProperties.getPassword());
getBaseMapper().addUser(userModifyParam);
baseMapper.addUser(userModifyParam);
return true;
}
userModifyParam.setUserId(powerUser.getUserId());
getBaseMapper().updateUser(userModifyParam);
baseMapper.updateUser(userModifyParam);
return true;
}
@Override
public boolean delUserByUserName(String userName) {
PowerUser powerUser = getBaseMapper().getUserByUserName(userName);
PowerUser powerUser = baseMapper.getUserByUserName(userName);
if (Func.isEmpty(powerUser)) {
return true;
}
getBaseMapper().delUserByUserName(userName);
baseMapper.delUserByUserName(userName);
return true;
}
}

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.sys.baseMapper.PowerDeptMapper">
<mapper namespace="com.docus.server.sys.mapper.PowerDeptMapper">
<insert id="addDept">
INSERT INTO `docus_system`.`power_dept`(`dept_id`,
`dept_code`,

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.sys.baseMapper.PowerUserMapper">
<mapper namespace="com.docus.server.sys.mapper.PowerUserMapper">
<insert id="addUser">
INSERT INTO `docus_system`.`power_user`(`user_id`,
`user_name`,

@ -17,4 +17,18 @@
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>

@ -1,7 +1,7 @@
package com.docus.server.his.infrastructure;
import com.docus.server.his.infrastructure.mapper.HisDeptMapper;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.pojo.dto.DeptDTO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
@ -16,8 +16,8 @@ public class HisSysDao {
private final HisDeptMapper hisDeptMapper;
public List<Dept> getDeptListView(Date startDate, Date endDate, long pazeNum, long pageSize) {
return hisDeptMapper.getDeptListView(startDate, endDate, pazeNum, pageSize);
public List<DeptDTO> getDeptListView(Date startDate, Date endDate, long pageNum, long pageSize) {
return hisDeptMapper.getDeptListView(startDate, endDate, (pageNum - 1) * pageSize, pageSize);
}

@ -1,12 +1,16 @@
package com.docus.server.his.infrastructure.mapper;
import com.docus.server.sys.service.Dept;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.docus.server.sys.pojo.dto.DeptDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
@Mapper
@DS("his")
public interface HisDeptMapper {
public List<Dept> getDeptListView(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("pageNum") long pageNum, @Param("pageSize") long pageSize);
List<DeptDTO> getDeptListView(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("offset") long offset, @Param("pageSize") long pageSize);
}

@ -1,10 +1,10 @@
package com.docus.server.his.service;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.pojo.dto.DeptDTO;
import java.util.Date;
import java.util.List;
public interface IHisService {
List<Dept> getDeptListView(Date startDate, Date endDate, long pazeNum, long pageSize);
List<DeptDTO> getDeptListView(Date startDate, Date endDate, long pazeNum, long pageSize);
}

@ -1,9 +1,8 @@
package com.docus.server.his.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.docus.server.his.infrastructure.HisSysDao;
import com.docus.server.his.service.IHisService;
import com.docus.server.sys.service.Dept;
import com.docus.server.sys.pojo.dto.DeptDTO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
@ -16,9 +15,9 @@ public class HisService implements IHisService {
private final HisSysDao hisSysDao;
@DS("his")
@Override
public List<Dept> getDeptListView(Date startDate, Date endDate, long pazeNum, long pageSize) {
public List<DeptDTO> getDeptListView(Date startDate, Date endDate, long pazeNum, long pageSize) {
return hisSysDao.getDeptListView(startDate, endDate, pazeNum, pageSize);
}

@ -2,18 +2,18 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.his.infrastructure.baseMapper.HisDeptMapper">
<mapper namespace="com.docus.server.his.infrastructure.mapper.HisDeptMapper">
<select id="getDeptListView" resultType="com.docus.server.sys.service.Dept">
SELECT `update_time` as update_time ,`dept_code` as dept_code,`dept_name` as dept_name FROM `his`.`his_dept`
<select id="getDeptListView" resultType="com.docus.server.sys.pojo.dto.DeptDTO">
SELECT `update_time` as update_time ,`dept_code` as dept_code,`dept_name` as dept_name FROM `his_dept`
WHERE update_time between #{startDate} and #{endDate}
order by update_time asc
LIMIT (#{pageNum} - 1) * #{pageSize} , #{pageSize}
LIMIT #{offset}, #{pageSize}
</select>
<!-- mysql
<select id="getDeptListView" resultType="com.docus.server.service.com.docus.server.sys.Dept">
<select id="getDeptListView" resultType="com.docus.server.sys.pojo.dto.DeptDTO">
SELECT `update_time` as update_time ,`dept_code` as dept_code,`dept_name` as dept_name FROM `his`.`his_dept`
WHERE update_time between #{startDate} and #{endDate}
order by update_time asc
@ -23,7 +23,7 @@
<!-- mssqsql
<select id="getDeptListView" resultType="com.docus.server.service.com.docus.server.sys.Dept">
<select id="getDeptListView" resultType="com.docus.server.sys.pojo.dto.DeptDTO">
select top pageSize `update_time` as update_time ,`dept_code` as dept_code,`dept_name` as dept_name
from (select row_number()
over(order by sno asc) as rownumber,*
@ -33,7 +33,7 @@
-->
<!-- oracle
<select id="getDeptListView" resultType="com.docus.server.service.com.docus.server.sys.Dept">
<select id="getDeptListView" resultType="com.docus.server.sys.pojo.dto.DeptDTO">
SELECT * FROM
(SELECT tt.*,ROWNUM AS RN FROM
(SELECT t.* FROM ${tableName} t

@ -39,10 +39,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.docus</groupId>
<artifactId>docus-mybatisplus-starter</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.docus</groupId>-->
<!-- <artifactId>docus-mybatisplus-starter</artifactId>-->
<!-- </dependency>-->
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
@ -58,11 +58,7 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
@ -85,12 +81,13 @@
<version>1.2.4</version>
<scope>compile</scope>
</dependency>
<!-- druid 连接池 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
<scope>compile</scope>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
@ -185,13 +182,22 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.3.2</version>
<version>3.4.0</version>
</dependency>
</dependencies>
<profiles>
@ -207,6 +213,4 @@
</profiles>
</project>
Loading…
Cancel
Save