Merge branch 'jihan_0920_护理服务、商城、积分兑换、在线问诊功能分支' into dev_gy_0920

# Conflicts:
#	xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/screeningproject/ScreeningProjectController.java
#	xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/screeningproject/ScreeningProject.java
#	xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/screeningproject/ScreeningProjectMapper.java
#	xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/screeningproject/impl/ScreeningProjectServiceImpl.java
#	xinelu-nurse-manage/src/main/resources/mapper/manage/screeningproject/ScreeningProjectMapper.xml
This commit is contained in:
mengkuiliang 2023-10-10 11:17:01 +08:00
commit 151dae3aff
31 changed files with 785 additions and 139 deletions

View File

@ -72,6 +72,16 @@ xinelu:
consultation-file-url: /consultationFileUrl
#聊天图片地址
chat-record-file-url: /chatRecordFileUrl
#筛查预约条码图片地址
apply-barcode-piture-url: /applyBarcodePitureUrl
#筛查预约条码图片地址
register-barcode-piture-url: /registerBarcodePictureUrl
#血小板筛查图片地址
platelet-piture-url: /plateletPitureUrl
#眼底病变筛查左眼图片地址
left-eye-piture-url: /leftEyePitureUrl
#眼底病变筛查右眼图片地址
right-eye-piture-url: /rightEyePitureUrl
# 开发环境配置
server:
@ -219,7 +229,7 @@ swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping: /dev-api
pathMapping:
swagger-ui:
base-url: com.xinelu

View File

@ -185,6 +185,12 @@
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-redis</artifactId>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
</dependencies>
</project>

View File

@ -77,6 +77,30 @@ public class XinELuConfig {
*/
private String attributePitureUrl;
/**
* 筛查预约条码图片地址
*/
public String applyBarcodePitureUrl;
/**
* 筛查预约条码图片地址
*/
public String registerBarcodePitureUrl;
/**
* 血小板筛查图片地址
*/
public String plateletPitureUrl;
/**
* 眼底病变筛查左眼图片地址
*/
public String leftEyePitureUrl;
/**
* 眼底病变筛查右眼图片地址
*/
public String rightEyePitureUrl;
/**
* 修改会员App用户头像上传
*/
@ -576,4 +600,44 @@ public class XinELuConfig {
public void setItemDirectoryUrl(String itemDirectoryUrl) {
this.itemDirectoryUrl = itemDirectoryUrl;
}
public String getApplyBarcodePitureUrl() {
return applyBarcodePitureUrl;
}
public void setApplyBarcodePitureUrl(String applyBarcodePitureUrl) {
this.applyBarcodePitureUrl = applyBarcodePitureUrl;
}
public String getRegisterBarcodePitureUrl() {
return registerBarcodePitureUrl;
}
public void setRegisterBarcodePitureUrl(String registerBarcodePitureUrl) {
this.registerBarcodePitureUrl = registerBarcodePitureUrl;
}
public String getPlateletPitureUrl() {
return plateletPitureUrl;
}
public void setPlateletPitureUrl(String plateletPitureUrl) {
this.plateletPitureUrl = plateletPitureUrl;
}
public String getLeftEyePitureUrl() {
return leftEyePitureUrl;
}
public void setLeftEyePitureUrl(String leftEyePitureUrl) {
this.leftEyePitureUrl = leftEyePitureUrl;
}
public String getRightEyePitureUrl() {
return rightEyePitureUrl;
}
public void setRightEyePitureUrl(String rightEyePitureUrl) {
this.rightEyePitureUrl = rightEyePitureUrl;
}
}

View File

@ -259,6 +259,30 @@ public class Constants {
*/
public static final String ATTRIBUTE_PICTURE_URL = "attributePitureUrl";
/**
* 筛查预约条码图片地址
*/
public static final String APPLY_BARCODE_PICTURE_URL = "applyBarcodePitureUrl";
/**
* 筛查预约条码图片地址
*/
public static final String REGISTER_BARCODE_PICTURE_URL = "registerBarcodePitureUrl";
/**
* 血小板筛查图片地址
*/
public static final String PLATELET_PICTURE_URL = "plateletPitureUrl";
/**
* 眼底病变筛查左眼图片地址
*/
public static final String LEFT_EYE_PICTURE_URL = "leftEyePitureUrl";
/**
* 眼底病变筛查右眼图片地址
*/
public static final String RIGHT_EYE_PICTURE_URL = "rightEyePitureUrl";
/**
* 护理站模板信息下载
*/

View File

@ -113,6 +113,11 @@ public class SysUser extends BaseEntity {
*/
private String stationPersonPassword;
/**
* 医生主键
*/
private Long hospitalPersonId;
/**
* 部门对象
*/
@ -334,7 +339,15 @@ public class SysUser extends BaseEntity {
this.roleId = roleId;
}
@Override
public Long getHospitalPersonId() {
return hospitalPersonId;
}
public void setHospitalPersonId(Long hospitalPersonId) {
this.hospitalPersonId = hospitalPersonId;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())

View File

@ -0,0 +1,222 @@
package com.xinelu.common.utils;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.BufferedImageLuminanceSource;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import com.xinelu.common.utils.uuid.IdUtils;
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Shape;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;
import java.util.concurrent.atomic.AtomicInteger;
import javax.imageio.ImageIO;
import org.apache.commons.lang3.StringUtils;
/**
* 二维码生成类
*
* @author haown
* @date 2023-01-31
*/
public class QrCodeUtils {
private static final String CHARSET = "UTF-8";
private static final String FORMAT = "JPG";
// 二维码尺寸
private static final int QRCODE_SIZE = 300;
// LOGO宽度
private static final int LOGO_WIDTH = 60;
// LOGO高度
private static final int LOGO_HEIGHT = 60;
/**
* 创建二维码图片
*
* @param content 二维码内容
* @param width 生成二维码长度
* @param height 生成二维码高度
* @param filePath 二维码存放路径
*/
public static void createEwm(String content, Integer width, Integer height, String filePath) {
// 二维码生成
QrConfig config = new QrConfig(width, height);
// 设置边距既二维码和背景之间的边距
config.setMargin(0);
QrCodeUtil.generate(content, config, FileUtil.file(filePath));
}
/**
* @return java.lang.Boolean
* @Author mengkuiliang
* @Description 生成二维码
* @Date 2023-01-04 19:58
* @Param [ ontent二维码内容
* logoPathlogo图片路径
* savePath二维码保存地址
* fileName二维码文件名
* bCompress是否压缩logo
* ]
**/
public static Boolean generate(String content, String logoPath, String savePath, String fileName, boolean bCompress) {
try {
// 生成图片
BufferedImage image = createImage(content, logoPath, bCompress);
// 创建输出目录
mkdirs(savePath);
// 生成文件名 文件名为空时自动生成
if (StringUtils.isBlank(fileName)) {
fileName = IdUtils.fastSimpleUUID() + "." + FORMAT.toLowerCase();
} else {
fileName = fileName.substring(0, fileName.lastIndexOf(".") > 0 ? fileName.lastIndexOf(".") : fileName.length()) + "." + FORMAT.toLowerCase();
}
// 写文件
ImageIO.write(image, FORMAT, new File(savePath + "/" + fileName));
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* @return java.lang.String
* @Author mengkuiliang
* @Description 解析二维码
* @Date 2023-01-04 19:58
* @Param [filePath图片路径]
**/
public static String analysis(String filePath) throws Exception {
if (StringUtils.isBlank(filePath)) {
return null;
}
BufferedImage image;
image = ImageIO.read(new File(filePath));
if (image == null) {
return null;
}
BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.CHARACTER_SET, CHARSET);
Result result = new MultiFormatReader().decode(bitmap, hints);
return result.getText();
}
/**
* 生成图片
*/
private static BufferedImage createImage(String content, String logoPath, boolean bCompress) throws Exception {
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
hints.put(EncodeHintType.MARGIN, 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints);
int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
// 插入logo
if (!StringUtils.isBlank(logoPath)) {
insertLogo(image, logoPath, bCompress);
}
return image;
}
/***
* @Author mengkuiliang
* @Description 插入LOGO
* @Date 2023-01-04 19:58
* @Param [source源图片, logoPathlogo文件地址, bCompress是否压缩]
* @return void
**/
private static void insertLogo(BufferedImage source, String logoPath, boolean bCompress) throws Exception {
if (!StringUtils.isBlank(logoPath)) {
File file = new File(logoPath);
if (file.exists()) {
Image src = ImageIO.read(file);
int width = src.getWidth(null);
int height = src.getHeight(null);
// 压缩LOGO
if (bCompress) {
if (width > LOGO_WIDTH) {
width = LOGO_WIDTH;
}
if (height > LOGO_HEIGHT) {
height = LOGO_HEIGHT;
}
Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
src = image;
}
// 生成LOGO
Graphics2D graph = source.createGraphics();
int x = (QRCODE_SIZE - width) / 2;
int y = (QRCODE_SIZE - height) / 2;
graph.drawImage(src, x, y, width, height, null);
Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
graph.setStroke(new BasicStroke(3f));
graph.draw(shape);
graph.dispose();
}
}
}
public static void createTxm(String content, String filePath, String fileName) {
// 条形码生成
BarcodeFormat barcodeFormat = BarcodeFormat.CODE_128;
AtomicInteger codeWidth = new AtomicInteger(3 + // start guard
(7 * 6) + // left bars
5 + // middle guard
(7 * 6) + // right bars
3); // end guard
codeWidth.set(Math.max(codeWidth.get(), 180));
try {
BufferedImage txmImg = QrCodeUtil.generate(content, barcodeFormat, codeWidth.get(), 50);
File imgFilePath = new File(filePath + fileName);
if (!imgFilePath.exists()) {
imgFilePath.getParentFile().mkdir();
imgFilePath.createNewFile();
}
File outputfile = new File(filePath + fileName);
ImageIO.write(txmImg, "png", outputfile);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 当文件夹不存在时自动创建多层目录
*/
public static void mkdirs(String path) {
File file = new File(path);
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
}
}

View File

@ -6,6 +6,7 @@ import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.DateUtils;
import com.xinelu.common.utils.StringUtils;
import com.xinelu.common.utils.uuid.IdUtils;
import java.util.Base64;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.io.IOUtils;
@ -356,6 +357,25 @@ public class FileUtils {
return ajax;
}
//将图片转换成Base64格式的数据集
public static String PicToBase64(String filePath) {
Base64.Encoder encoder = Base64.getEncoder();
byte[] ImgContainer = null;
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(filePath);
ImgContainer = new byte[fileInputStream.available()];
fileInputStream.read(ImgContainer);
String Base64ImgData = encoder.encodeToString(ImgContainer);
fileInputStream.close();
return "data:image/png" + ";base64," + Base64ImgData;
} catch (FileNotFoundException e) {
return "找不到指定文件!";
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 视频上传接口
*

View File

@ -1,16 +0,0 @@
package com.xinelu.applet.controller.appletSchedulePlan;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description: 小程序医生排班计划控制器
* @author: haown
* @create: 2023-09-22 10:28
**/
@Api(tags = "小程序医生排班计划控制器")
@RestController
@RequestMapping("/nurseApplet/schedule/plan")
public class AppletSchedulePlanController {
}

View File

@ -0,0 +1,36 @@
package com.xinelu.applet.controller.applethospitalinfo;
import com.xinelu.common.core.controller.BaseController;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.hospitalinfo.HospitalInfo;
import com.xinelu.manage.service.hospitalinfo.IHospitalInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description: 小程序医院信息管理控制器
* @author: haown
* @create: 2023-10-09 11:06
**/
@Api(tags = "小程序医院信息管理控制器")
@RestController
@RequestMapping("/nurseApplet/hospital")
public class AppletHospitalInfoController extends BaseController {
@Resource
private IHospitalInfoService hospitalInfoService;
/**
* 查询医院信息管理列表
*/
@ApiOperation("查询医院信息管理列表")
@GetMapping("/getList")
public AjaxResult getList(HospitalInfo hospitalInfo) {
List<HospitalInfo> list = hospitalInfoService.selectHospitalInfoList(hospitalInfo);
return AjaxResult.success(list);
}
}

View File

@ -0,0 +1,35 @@
package com.xinelu.applet.controller.appletscheduleplandetail;
import com.xinelu.common.core.controller.BaseController;
import com.xinelu.common.core.domain.R;
import com.xinelu.manage.domain.scheduleplandetail.SchedulePlanDetail;
import com.xinelu.manage.service.scheduleplandetail.ISchedulePlanDetailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description: 小程序医生排班计划控制器
* @author: haown
* @create: 2023-09-22 10:28
**/
@Api(tags = "小程序医生排班计划控制器")
@RestController
@RequestMapping("/nurseApplet/schedule/plandetail")
public class AppletSchedulePlanController extends BaseController {
@Resource
private ISchedulePlanDetailService planDetailService;
@ApiOperation("通过排班计划查询明细")
@GetMapping("/getList")
public R<List<SchedulePlanDetail>> getList(SchedulePlanDetail planDetail) {
List<SchedulePlanDetail> list = planDetailService.getList(planDetail);
return R.ok(list);
}
}

View File

@ -8,6 +8,7 @@ import com.xinelu.common.core.domain.R;
import com.xinelu.common.core.page.TableDataInfo;
import com.xinelu.common.utils.DateUtils;
import com.xinelu.common.utils.StringUtils;
import com.xinelu.common.utils.file.FileUtils;
import com.xinelu.manage.dto.screeningrecord.ScreeningApplyDTO;
import com.xinelu.manage.dto.screeningrecord.ScreeningRecordDTO;
import com.xinelu.manage.service.patientinfo.IPatientInfoService;
@ -15,6 +16,7 @@ import com.xinelu.manage.service.screeningrecord.IScreeningRecordService;
import com.xinelu.manage.vo.screeningrecord.ScreeningRecordVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.io.File;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
@ -59,9 +61,12 @@ public class AppletScreeningRecordController extends BaseController {
List<ScreeningRecordVo> list = screeningRecordService.list(query);
// 二维码返回
list.forEach(record -> {
StringUtils.isNotEmpty(record.getApplyBarcode());
// TODO 居民申请条码
//record.setApplyBarcode(patientService.getPicToBase64(record.getApplyBarcode()));
if (StringUtils.isNotEmpty(record.getApplyBarcode())) {
File file = new File(record.getApplyBarcode());
if (file.exists() && file.isFile()) {
record.setApplyBarcode(FileUtils.PicToBase64(record.getApplyBarcode()));
}
}
});
return getDataTable(list);
}
@ -97,11 +102,12 @@ public class AppletScreeningRecordController extends BaseController {
public R<ScreeningRecordVo> detail(@PathVariable String screeningId) {
ScreeningRecordVo screeningRecordVo = screeningRecordService.detail(screeningId);
if (screeningRecordVo != null) {
// TODO 设置文件类型
//File fileInfo = sysFileService.getFile(screeningRecordVo.getAttachment());
//if (fileInfo != null) {
// screeningRecordVo.setFileType(fileInfo.getSuffix());
//}
File file = new File(screeningRecordVo.getAttachment());
if (file.exists() && file.isFile()) {
String fileName = file.getName();
screeningRecordVo.setFileType(fileName.substring(fileName.lastIndexOf(".") + 1));
}
if (!StringUtils.contains(screeningRecordVo.getProjectName(), ScreeningProjectConstants.ALZHEIMER)) {
screeningRecordService.getRecordDetail(screeningRecordVo);
}

View File

@ -0,0 +1,130 @@
package com.xinelu.manage.controller.patientinfo;
import com.xinelu.common.annotation.Log;
import com.xinelu.common.core.controller.BaseController;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.core.page.TableDataInfo;
import com.xinelu.common.enums.BusinessType;
import com.xinelu.common.utils.poi.ExcelUtil;
import com.xinelu.manage.domain.patientinfo.PatientInfo;
import com.xinelu.manage.dto.cancelpicture.CancelPictureDTO;
import com.xinelu.manage.service.patientinfo.IPatientInfoService;
import com.xinelu.manage.vo.patientinfo.PatientInfoVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Objects;
/**
* 被护理人基本信息Controller
*
* @author xinyilu
* @date 2022-09-02
*/
@RestController
@RequestMapping("/system/patientArchives")
public class PatientArchivesInfoController extends BaseController {
@Resource
private IPatientInfoService patientInfoService;
/**
* 查询被护理人基本信息列表
*/
@PreAuthorize("@ss.hasPermi('system:patientArchives:list')")
@GetMapping("/list")
public TableDataInfo list(PatientInfoVO patientInfo) {
startPage();
List<PatientInfoVO> list = patientInfoService.selectPatientInfoList(patientInfo);
return getDataTable(list);
}
/**
* 导出被护理人基本信息列表
*/
@PreAuthorize("@ss.hasPermi('system:patientArchives:export')")
@Log(title = "被护理人基本信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, PatientInfoVO patientInfo) {
List<PatientInfoVO> list = patientInfoService.selectPatientInfoList(patientInfo);
ExcelUtil<PatientInfoVO> util = new ExcelUtil<>(PatientInfoVO.class);
util.exportExcel(response, list, "被护理人基本信息数据");
}
/**
* 获取被护理人基本信息详细信息
*/
@PreAuthorize("@ss.hasPermi('system:patientArchives:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
return AjaxResult.success(patientInfoService.selectPatientInfoById(id));
}
/**
* 新增被护理人基本信息
*/
@PreAuthorize("@ss.hasPermi('system:patientArchives:add')")
@Log(title = "被护理人基本信息", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody PatientInfo patientInfo) {
return toAjax(patientInfoService.insertPatientInfo(patientInfo));
}
/**
* 修改被护理人基本信息
*/
@PreAuthorize("@ss.hasPermi('system:patientArchives:edit')")
@Log(title = "被护理人基本信息", businessType = BusinessType.UPDATE)
@PostMapping(value = "edit")
public AjaxResult edit(@RequestBody PatientInfo patientInfo) {
return patientInfoService.updatePatientInfo(patientInfo);
}
/**
* 删除被护理人基本信息
*/
@PreAuthorize("@ss.hasPermi('system:patientArchives:remove')")
@Log(title = "被护理人基本信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(patientInfoService.deletePatientInfoByIds(ids));
}
/**
* 删除旧图片
*
* @param cancelPictureDTO 路径参数
* @return 结果
*/
@PostMapping("/updatePicture")
public AjaxResult updatePicture(@RequestBody CancelPictureDTO cancelPictureDTO) {
if (CollectionUtils.isEmpty(cancelPictureDTO.getPictureUrlList())) {
return AjaxResult.success();
}
return patientInfoService.updatePicture(cancelPictureDTO.getPictureUrlList());
}
/**
* PC端重置密码
*
* @param id 会员id
* @param password 密码
* @return AjaxResult
*/
@PostMapping("/updatePassword")
public AjaxResult updatePassword(Long id, String password) {
if (Objects.isNull(id)) {
return AjaxResult.error("用户信息有误,请联系管理员!");
}
if (StringUtils.isBlank(password)) {
return AjaxResult.error("请输入密码!");
}
return patientInfoService.updatePasswordById(id, password);
}
}

View File

@ -3,8 +3,11 @@ package com.xinelu.manage.controller.screeningproject;
import com.xinelu.common.core.controller.BaseController;
import com.xinelu.common.core.domain.R;
import com.xinelu.common.core.page.TableDataInfo;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.uuid.IdUtils;
import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo;
import com.xinelu.manage.domain.screeningproject.ScreeningProject;
import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService;
import com.xinelu.manage.service.screeningproject.IScreeningProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -35,6 +38,9 @@ public class ScreeningProjectController extends BaseController {
@Resource
private IScreeningProjectService projectService;
@Resource
private IHospitalPersonInfoService personInfoService;
@ApiOperation("服务项目分页列表")
@GetMapping("list")
public TableDataInfo list(ScreeningProject project) {
@ -53,7 +59,11 @@ public class ScreeningProjectController extends BaseController {
@ApiOperation("新增服务项目")
@PostMapping("add")
public R<String> add(@RequestBody ScreeningProject project) {
if (projectService.checkSameProjectName(project.getProjectName(), project.getHospitalId(), null)) {
// 根据当前登录用户获取医生主键
HospitalPersonInfo hospitalPersonInfo = personInfoService.selectHospitalPersonInfoById(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
project.setHospitalId(hospitalPersonInfo.getHospitalId());
project.setHospitalName(hospitalPersonInfo.getPersonName());
if (projectService.checkSameProjectName(project.getProjectName(), project.getHospitalId(), null)) {
return R.fail("" + project.getHospitalName() + "】已存在服务项目【" + project.getProjectName() + "】,不能重复添加");
}
//价格校验
@ -72,7 +82,7 @@ public class ScreeningProjectController extends BaseController {
if (StringUtils.isBlank(project.getStatus())) {
project.setStatus("1");
}
project.setDiscountPrice(project.getPrice().multiply(new BigDecimal(project.getDiscount())).multiply(new BigDecimal("0.1")).setScale(2, BigDecimal.ROUND_HALF_UP));
project.setDiscountPrice(project.getPrice().multiply(new BigDecimal(project.getDiscount())).multiply(new BigDecimal("0.1")));
project.setProjectId(IdUtils.fastSimpleUUID());
project.setCreateBy(getUsername());
project.setCreateTime(new Date());
@ -102,7 +112,7 @@ public class ScreeningProjectController extends BaseController {
if (StringUtils.isBlank(project.getStatus())) {
project.setStatus("1");
}
project.setDiscountPrice(project.getPrice().multiply(new BigDecimal(project.getDiscount())).multiply(new BigDecimal("0.1")).setScale(2, BigDecimal.ROUND_HALF_UP));
project.setDiscountPrice(project.getPrice().multiply(new BigDecimal(project.getDiscount())).multiply(new BigDecimal("0.1")));
project.setUpdateBy(getUsername());
project.setUpdateTime(new Date());
projectService.update(project);

View File

@ -44,7 +44,11 @@ public class ScreeningRecordController extends BaseController {
@ApiOperation(value = "居民预约筛查列表")
public TableDataInfo screeningList(ScreeningRecordDTO query) {
startPage();
return getDataTable(screeningRecordService.screeningList(query));
try {
return getDataTable(screeningRecordService.screeningList(query));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@GetMapping("/list")

View File

@ -128,6 +128,16 @@ public class HospitalPersonInfo extends BaseDomain implements Serializable {
*/
private String personPictureUrl;
/**
* 科室人员账号
*/
private String personAccount;
/**
* 科室人员密码
*/
private String personPassword;
@Override
public String toString() {

View File

@ -60,7 +60,7 @@ public class ScreeningProject extends BaseEntity {
* 医院编号
*/
@ApiModelProperty("医院编号")
private String hospitalId;
private Long hospitalId;
/**
* 医院名称

View File

@ -49,12 +49,12 @@ public class ScreeningRecord implements Serializable {
/**
* 医院编号
*/
private String deptId;
private Long hospitalId;
/**
* 医院名称
*/
private String deptName;
private String hospitalName;
/**
* 预约项目业务主键
@ -108,7 +108,7 @@ public class ScreeningRecord implements Serializable {
* 医生编号
*/
@ApiModelProperty("医生编号")
private String doctorId;
private Long doctorId;
/**
* 医生名称

View File

@ -0,0 +1,21 @@
package com.xinelu.manage.dto.cancelpicture;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 取消图片参数实体类
* @Author 纪寒
* @Date 2022-11-09 14:26:28
* @Version 1.0
*/
@Data
public class CancelPictureDTO implements Serializable {
private static final long serialVersionUID = 3470954431511861546L;
/**
* 图片集合
*/
private List<String> pictureUrlList;
}

View File

@ -43,10 +43,10 @@ public class ScreeningApplyDTO implements Serializable {
private Date applyEndTime;
@ApiModelProperty(value = "预约机构业务主键", required = true)
private String deptId;
private Long hospitalId;
@ApiModelProperty(value = "预约机构名称", required = true)
private String deptName;
private String hospitalName;
@ApiModelProperty(value = "预约项目业务主键", required = true)
private String projectId;

View File

@ -52,13 +52,13 @@ public class ScreeningRecordApplyDTO implements Serializable {
* 医院编号
*/
@ApiModelProperty("医院编号")
private String deptId;
private Long hospitalId;
/**
* 医院名称
*/
@ApiModelProperty("医院名称")
private String deptName;
private String hospitalName;
@ApiModelProperty("项目业务主键")
private String projectId;
@ -87,7 +87,7 @@ public class ScreeningRecordApplyDTO implements Serializable {
* 医生编号
*/
@ApiModelProperty("医生编号")
private String doctorId;
private Long doctorId;
/**
* 医生名称

View File

@ -52,13 +52,13 @@ public class ScreeningRecordDTO extends BaseEntity {
* 医院编号
*/
@ApiModelProperty("医院编号")
private String deptId;
private Long hospitalId;
/**
* 医院名称
*/
@ApiModelProperty("医院名称")
private String deptName;
private String hospitalName;
@ApiModelProperty("预约项目业务主键")
private String projectId;

View File

@ -26,6 +26,6 @@ public interface ScreeningProjectMapper {
int updateByPrimaryKey(ScreeningProject record);
Integer checkSameName(@Param("projectName") String projectName, @Param("hospitalId") String hospitalId, @Param("projectId") String projectId);
Integer checkSameName(@Param("projectName") String projectName, @Param("deptId") Long deptId, @Param("projectId") String projectId);
}

View File

@ -3,6 +3,7 @@ package com.xinelu.manage.service.hospitalpersoninfo.impl;
import com.xinelu.common.config.XinELuConfig;
import com.xinelu.common.constant.Constants;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.core.domain.entity.SysUser;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.codes.GenerateSystemCodeUtil;
@ -14,6 +15,7 @@ import com.xinelu.manage.mapper.hospitalpersoncertificate.HospitalPersonCertific
import com.xinelu.manage.mapper.hospitalpersoninfo.HospitalPersonInfoMapper;
import com.xinelu.manage.service.hospitalpersoninfo.IHospitalPersonInfoService;
import com.xinelu.manage.vo.hospitalpersoninfo.HospitalPersonInfoVO;
import com.xinelu.system.mapper.SysUserMapper;
import java.io.File;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@ -48,6 +50,9 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
@Resource
private HospitalPersonCertificateMapper hospitalPersonCertificateMapper;
@Resource
private SysUserMapper userMapper;
/**
* 查询健康咨询-科室人员信息
*
@ -126,6 +131,15 @@ public class HospitalPersonInfoServiceImpl implements IHospitalPersonInfoService
throw new ServiceException("新增科室人员资质证书信息失败,请联系管理员!");
}
}
// 保存到sys_user表
SysUser sysUser = new SysUser();
sysUser.setUserName(hospitalPersonInfo.getPersonAccount());
sysUser.setPassword(SecurityUtils.encryptPassword(hospitalPersonInfo.getPersonPassword()));
sysUser.setNickName(hospitalPersonInfo.getPersonName());
sysUser.setHospitalPersonId(hospitalPersonInfo.getId());
sysUser.setStatus("0");
sysUser.setDelFlag("0");
userMapper.insertUser(sysUser);
return AjaxResult.success();
}

View File

@ -27,5 +27,5 @@ public interface IScreeningProjectService {
* @author gaoyu
* @date 2022-11-23 10:20
*/
boolean checkSameProjectName(String projectName, String deptId, String projectId);
boolean checkSameProjectName(String projectName, Long deptId, String projectId);
}

View File

@ -1,9 +1,13 @@
package com.xinelu.manage.service.screeningproject.impl;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.manage.domain.hospitalinfo.HospitalInfo;
import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo;
import com.xinelu.manage.domain.screeningproject.ScreeningProject;
import com.xinelu.manage.mapper.hospitalinfo.HospitalInfoMapper;
import com.xinelu.manage.mapper.hospitalpersoninfo.HospitalPersonInfoMapper;
import com.xinelu.manage.mapper.screeningproject.ScreeningProjectMapper;
import com.xinelu.manage.service.screeningproject.IScreeningProjectService;
import com.xinelu.system.mapper.SysDeptMapper;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
@ -19,22 +23,36 @@ public class ScreeningProjectServiceImpl implements IScreeningProjectService {
@Resource
private ScreeningProjectMapper projectMapper;
@Resource
private SysDeptMapper deptMapper;
private HospitalPersonInfoMapper hospitalPersonInfoMapper;
@Resource
private HospitalInfoMapper hospitalInfoMapper;
@Override public List<ScreeningProject> findList(ScreeningProject project) {
return projectMapper.findList(project);
}
@Override public int insert(ScreeningProject project) {
// TODO 设置机构
// project.setDeptName(deptMapper.selectDeptById(project.getDeptId()).getDeptName());
HospitalPersonInfo hospitalPersonInfo = hospitalPersonInfoMapper.selectHospitalPersonInfoById(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
if (hospitalPersonInfo != null) {
project.setHospitalId(hospitalPersonInfo.getHospitalId());
HospitalInfo hospital = hospitalInfoMapper.selectHospitalInfoById(hospitalPersonInfo.getHospitalId());
if (hospital != null) {
project.setHospitalName(hospital.getHospitalName());
}
}
return projectMapper.insertSelective(project);
}
@Override
public int update(ScreeningProject project) {
// TODO 设置机构
// project.setDeptName(deptMapper.selectDeptById(project.getDeptId()).getDeptName());
HospitalPersonInfo hospitalPersonInfo = hospitalPersonInfoMapper.selectHospitalPersonInfoById(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
if (hospitalPersonInfo != null) {
project.setHospitalId(hospitalPersonInfo.getHospitalId());
HospitalInfo hospital = hospitalInfoMapper.selectHospitalInfoById(hospitalPersonInfo.getHospitalId());
if (hospital != null) {
project.setHospitalName(hospital.getHospitalName());
}
}
return projectMapper.updateByPrimaryKey(project);
}
@ -42,7 +60,7 @@ public class ScreeningProjectServiceImpl implements IScreeningProjectService {
projectMapper.updateByPrimaryKeySelective(project);
}
@Override public boolean checkSameProjectName(String projectName, String hospitalId, String projectId) {
return projectMapper.checkSameName(projectName, hospitalId, projectId) != null;
@Override public boolean checkSameProjectName(String projectName, Long deptId, String projectId) {
return projectMapper.checkSameName(projectName, deptId, projectId) != null;
}
}

View File

@ -16,7 +16,7 @@ import java.util.List;
*/
public interface IScreeningRecordService {
List<ScreeningRecordVo> screeningList(ScreeningRecordDTO query);
List<ScreeningRecordVo> screeningList(ScreeningRecordDTO query) throws Exception;
/**
* @Author mengkuiliang

View File

@ -1,26 +1,33 @@
package com.xinelu.manage.service.screeningrecord.impl;
import com.alibaba.fastjson2.JSONObject;
import com.xinelu.common.config.XinELuConfig;
import com.xinelu.common.constant.ScreeningProjectConstants;
import com.xinelu.common.core.domain.SelectVo;
import com.xinelu.common.core.domain.TimelineVo;
import com.xinelu.common.core.domain.model.LoginUser;
import com.xinelu.common.enums.UploadType;
import com.xinelu.common.utils.DateUtils;
import com.xinelu.common.utils.QrCodeUtils;
import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.bean.BeanUtils;
import com.xinelu.common.utils.file.FileUtils;
import com.xinelu.common.utils.uuid.IdUtils;
import com.xinelu.manage.domain.hospitalinfo.HospitalInfo;
import com.xinelu.manage.domain.hospitalpersoninfo.HospitalPersonInfo;
import com.xinelu.manage.domain.screeningproject.ScreeningProject;
import com.xinelu.manage.domain.screeningrecord.ScreeningRecord;
import com.xinelu.manage.dto.screeningrecord.ScreeningApplyDTO;
import com.xinelu.manage.dto.screeningrecord.ScreeningRecordApplyDTO;
import com.xinelu.manage.dto.screeningrecord.ScreeningRecordDTO;
import com.xinelu.manage.dto.screeningrecord.ScreeningRecordSaveDTO;
import com.xinelu.manage.mapper.hospitalinfo.HospitalInfoMapper;
import com.xinelu.manage.mapper.hospitalpersoninfo.HospitalPersonInfoMapper;
import com.xinelu.manage.mapper.screeningrecord.ScreeningRecordMapper;
import com.xinelu.manage.service.patientinfo.IPatientInfoService;
import com.xinelu.manage.service.screeningrecord.IScreeningRecordService;
import com.xinelu.manage.vo.patientinfo.PatientInfoVO;
import com.xinelu.manage.vo.screeningrecord.ScreeningRecordVo;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@ -45,13 +52,21 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
private ScreeningRecordMapper screeningRecordMapper;
@Resource
private IPatientInfoService patientService;
//@Resource
//private IScreeningProjectRecordService projectRecordService;
@Resource
private HospitalPersonInfoMapper hospitalPersonInfoMapper;
@Resource
private HospitalInfoMapper hospitalInfoMapper;
@Resource
private XinELuConfig xinELuConfig;
@Override
public List<ScreeningRecordVo> screeningList(ScreeningRecordDTO query) {
// TODO 通过机构查询
// query.setDeptId(SecurityUtils.getDeptId());
public List<ScreeningRecordVo> screeningList(ScreeningRecordDTO query) throws Exception {
HospitalPersonInfo hospitalPersonInfo = hospitalPersonInfoMapper.selectHospitalPersonInfoById(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
if (hospitalPersonInfo != null) {
query.setHospitalId(hospitalPersonInfo.getHospitalId());
} else {
throw new Exception("该账号未关联医生");
}
return screeningRecordMapper.screeningList(query);
}
@ -97,7 +112,7 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
// 查询 同一机构的同一筛查项目在同一天是否有预约
ScreeningRecordDTO query = new ScreeningRecordDTO();
query.setPatientId(body.getPatientId());
query.setDeptId(body.getDeptId());
query.setHospitalId(body.getHospitalId());
query.setProjectId(body.getProjectId());
query.setApplyStartDate(body.getApplyStartTime());
query.setApplyEndDate(body.getApplyEndTime());
@ -113,7 +128,7 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
recordBody.setApplyCode(generateCode());
recordBody.setScreeningType("1");
// 预约条码
recordBody.setApplyBarcode(generateBarcode(UploadType.SCREENING_BARCODE.getCode(), recordBody.getScreeningId(), recordBody.getApplyCode()));
recordBody.setApplyBarcode(generateBarcode(xinELuConfig.getApplyBarcodePitureUrl(), recordBody.getScreeningId(), recordBody.getApplyCode()));
int flag = screeningRecordMapper.insert(recordBody);
if(flag > 0) {
// 推送消息
@ -136,9 +151,17 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
@Override
public Integer update(ScreeningRecord body) {
// TODO 用户id
//body.setDoctorId(SecurityUtils.getUserId());
body.setDeptName(SecurityUtils.getLoginUser().getUser().getDept().getDeptName());
HospitalPersonInfo hospitalPersonInfo = hospitalPersonInfoMapper.selectHospitalPersonInfoById(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
if (hospitalPersonInfo != null) {
body.setDoctorId(hospitalPersonInfo.getId());
body.setDoctorName(hospitalPersonInfo.getPersonName());
HospitalInfo hospitalInfo = hospitalInfoMapper.selectHospitalInfoById(hospitalPersonInfo.getHospitalId());
if (hospitalInfo != null) {
body.setHospitalId(hospitalInfo.getId());
body.setHospitalName(hospitalInfo.getHospitalName());
}
}
body.setScreeningStatus("4");
body.setScreeningDate(new Date());
int flag = screeningRecordMapper.update(body);
@ -192,14 +215,13 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
if (StringUtils.equals("3", screeningRecord.getScreeningStatus()) || StringUtils.equals("4", screeningRecord.getScreeningStatus())) {
throw new Exception("该预约已登记,请勿重复登记。");
}
// TODO 当前登录用户id
//screeningRecord.setDoctorId(loginUser.getUserId());
screeningRecord.setDoctorId(loginUser.getUser().getHospitalPersonId());
screeningRecord.setDoctorName(loginUser.getUser().getNickName());
screeningRecord.setRegistrationDate(new Date());
screeningRecord.setScreeningStatus("3");
// 生成登记条码
screeningRecord.setRegistrationCode(generateCode());
screeningRecord.setRegistrationBarcode(generateBarcode(UploadType.REGISTRATION_BARCODE.getCode(), screeningRecord.getScreeningId(), screeningRecord.getRegistrationCode()));
screeningRecord.setRegistrationBarcode(generateBarcode(xinELuConfig.getRegisterBarcodePitureUrl(), screeningRecord.getScreeningId(), screeningRecord.getRegistrationCode()));
int flag = screeningRecordMapper.update(screeningRecord);
return screeningRecord.getRegistrationCode();
@ -263,12 +285,11 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
if(recordVo == null) {
return null;
}
// TODO 获取文件类型
//File fileInfo = sysFileService.getFile(recordVo.getAttachment());
//if (fileInfo != null) {
// recordVo.setFileType(fileInfo.getSuffix());
//}
File file = new File(recordVo.getAttachment());
if (file.exists() && file.isFile()) {
String fileName = file.getName();
recordVo.setFileType(fileName.substring(fileName.lastIndexOf(".") + 1));
}
if (!StringUtils.contains(recordVo.getProjectName(), ScreeningProjectConstants.ALZHEIMER)) {
getRecordDetail(recordVo);
}
@ -320,12 +341,18 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
screeningRecord.setProjectId(project.getProjectId());
screeningRecord.setProjectName(project.getProjectName());
screeningRecord.setPatientId(body.getPatientId());
// TODO 用户id
//screeningRecord.setDoctorId(SecurityUtils.getUserId());
screeningRecord.setDoctorId(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
screeningRecord.setDoctorName(SecurityUtils.getLoginUser().getUser().getNickName());
// TODO 机构id
//screeningRecord.setDeptId(SecurityUtils.getDeptId());
screeningRecord.setDeptName(SecurityUtils.getLoginUser().getUser().getDept().getDeptName());
HospitalPersonInfo hospitalPersonInfo = hospitalPersonInfoMapper.selectHospitalPersonInfoById(SecurityUtils.getLoginUser().getUser().getHospitalPersonId());
if (hospitalPersonInfo == null) {
throw new Exception("当前用户未绑定医生账号");
} else {
HospitalInfo hospitalInfo = hospitalInfoMapper.selectHospitalInfoById(hospitalPersonInfo.getHospitalId());
if (hospitalInfo != null) {
screeningRecord.setHospitalId(hospitalInfo.getId());
screeningRecord.setHospitalName(hospitalInfo.getHospitalName());
}
}
screeningRecord.setScreeningStatus("1");
screeningRecord.setScreeningType("2");
screeningRecord.setApplyStartTime(new Date());
@ -361,9 +388,8 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
List<String> projectName = screeningRecordVoList.stream().map(ScreeningRecordVo::getProjectName).collect(Collectors.toList());
retObject.fluentPut("projectName", String.join("," , projectName))
.fluentPut("doctorName", screeningRecordVoList.get(0).getDoctorName());
// TODO 居民信息
//PatientInfoVO patientInfoVO = patientService.selectPatientInfoById(screeningRecordVoList.get(0).getPatientId());
//retObject.fluentPut("name", patientInfoVO.getPatientName());
PatientInfoVO patientInfoVO = patientService.selectPatientInfoById(screeningRecordVoList.get(0).getPatientId());
retObject.fluentPut("name", patientInfoVO.getPatientName());
}
// 根据评估记录业务主键查询评估记录
@ -405,19 +431,18 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
/** 获取图片附件转base64 */
private void setAttachment(ScreeningRecordVo record) {
// TODO 文件转换为base64
//if(!StringUtils.isBlank(record.getAttachment())) {
// File fileInfo = sysFileService.getFile(record.getAttachment());
// if(fileInfo != null) {
// record.setAttachment(FileUtils.PicToBase64(fileInfo.getFilePath()));
// }
//}
//if(!StringUtils.isBlank(record.getAttachmentTwo())) {
// File fileInfo = sysFileService.getFile(record.getAttachmentTwo());
// if(fileInfo != null) {
// record.setAttachmentTwo(FileUtils.PicToBase64(fileInfo.getFilePath()));
// }
//}
if(!StringUtils.isBlank(record.getAttachment())) {
File file = new File(record.getAttachment());
if(file.exists()) {
record.setAttachment(FileUtils.PicToBase64(record.getAttachment()));
}
}
if(!StringUtils.isBlank(record.getAttachmentTwo())) {
File file = new File(record.getAttachmentTwo());
if (file.exists()) {
record.setAttachmentTwo(FileUtils.PicToBase64(record.getAttachmentTwo()));
}
}
}
/**
@ -430,25 +455,15 @@ public class ScreeningRecordServiceImpl implements IScreeningRecordService {
/**
* 生成条码
* @param code
* @param url
* @param screeningId
* @param content
*/
private String generateBarcode(String code, String screeningId, String content) {
// TODO 文件保存
//String fileDir = UploadType.getUploadType(code).getPath() + DateUtils.formatDate(new Date(), "yyyy-MM-dd") + "/";
//String fileName = screeningId + ".jpg";
//QrCodeUtils.createTxm(content, fileDir, fileName);
//File sysFile = new File();
//sysFile.setFileId(IdUtils.fastSimpleUUID());
//sysFile.setOriginalFilename(screeningId + ".jpg");
//sysFile.setFilePath(fileDir);
//sysFile.setContentType("image/jpeg");
//sysFile.setSuffix("jpg");
//sysFile.setUploadType(code);
//fileService.insert(sysFile);
//return sysFile.getFileId();
return null;
private String generateBarcode(String url, String screeningId, String content) {
String uploadPathUrl = XinELuConfig.getProfile() + url + "/";
String fileName = screeningId + ".jpg";
QrCodeUtils.createTxm(content, uploadPathUrl, fileName);
return uploadPathUrl + "/" + fileName;
}
}

View File

@ -32,7 +32,7 @@ public class ScreeningRecordVo {
* 居民业务主键
*/
@ApiModelProperty("居民业务主键")
private String patientId;
private Long patientId;
/**
* 居民姓名
@ -97,19 +97,19 @@ public class ScreeningRecordVo {
* 医院编号
*/
@ApiModelProperty("医院编号")
private String deptId;
private Long hospitalId;
/**
* 医院名称
*/
@ApiModelProperty("医院名称")
private String deptName;
private String hospitalName;
/**
* 医生编号
*/
@ApiModelProperty("医生编号")
private String doctorId;
private Long doctorId;
/**
* 医生名称

View File

@ -13,7 +13,7 @@
<result property="discount" column="discount" jdbcType="INTEGER"/>
<result property="discountPrice" column="discount_price" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="CHAR"/>
<result property="hospitalId" column="hospital_id" jdbcType="VARCHAR"/>
<result property="hospitalId" column="hospital_id" jdbcType="BIGINT"/>
<result property="hospitalName" column="hospital_name" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="DATE"/>
@ -75,7 +75,7 @@
,remark)
values (#{id,jdbcType=BIGINT},#{projectId,jdbcType=VARCHAR},#{projectName,jdbcType=VARCHAR}
,#{projectType,jdbcType=CHAR},#{price,jdbcType=DECIMAL},#{discount,jdbcType=INTEGER}
,#{discountPrice,jdbcType=VARCHAR},#{status,jdbcType=CHAR},#{hospitalId,jdbcType=VARCHAR}
,#{discountPrice,jdbcType=VARCHAR},#{status,jdbcType=CHAR},#{hospitalId,jdbcType=BIGINT}
,#{hospitalName,jdbcType=VARCHAR},#{createBy,jdbcType=VARCHAR},#{createTime,jdbcType=DATE}
,#{updateBy,jdbcType=VARCHAR},#{updateTime,jdbcType=DATE},#{delFlag,jdbcType=CHAR}
,#{remark,jdbcType=VARCHAR})
@ -109,7 +109,7 @@
<if test="discount != null">#{discount,jdbcType=INTEGER},</if>
<if test="discountPrice != null">#{discountPrice,jdbcType=DECIMAL},</if>
<if test="status != null">#{status,jdbcType=CHAR},</if>
<if test="hospitalId != null">#{hospitalId,jdbcType=VARCHAR},</if>
<if test="hospitalId != null">#{hospitalId,jdbcType=BIGINT},</if>
<if test="hospitalName != null">#{hospitalName,jdbcType=VARCHAR},</if>
<if test="createBy != null">#{createBy,jdbcType=VARCHAR},</if>
<if test="createTime != null">#{createTime,jdbcType=DATE},</if>
@ -141,7 +141,7 @@
status = #{status,jdbcType=CHAR},
</if>
<if test="hospitalId != null">
hospital_id = #{hospitalId,jdbcType=VARCHAR},
hospital_id = #{hospitalId,jdbcType=BIGINT},
</if>
<if test="hospitalName != null">
hospital_name = #{hospitalName,jdbcType=VARCHAR},
@ -176,7 +176,7 @@
discount = #{discount,jdbcType=INTEGER},
discount_price = #{discountPrice,jdbcType=VARCHAR},
status = #{status,jdbcType=CHAR},
hospital_id = #{hospitalId,jdbcType=VARCHAR},
hospital_id = #{hospitalId,jdbcType=BIGINT},
hospital_name = #{hospitalName,jdbcType=VARCHAR},
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=DATE},

View File

@ -10,8 +10,8 @@
<result property="patientId" column="patient_id" jdbcType="VARCHAR"/>
<result property="screeningStatus" column="screening_status" jdbcType="VARCHAR"/>
<result property="disease" column="disease" jdbcType="VARCHAR"/>
<result property="deptId" column="dept_id" jdbcType="VARCHAR"/>
<result property="deptName" column="dept_name" jdbcType="VARCHAR"/>
<result property="hospitalId" column="hospital_id" jdbcType="BIGINT"/>
<result property="hospitalName" column="hospital_name" jdbcType="VARCHAR"/>
<result property="projectId" column="project_id" jdbcType="VARCHAR"/>
<result property="projectName" column="project_name" jdbcType="VARCHAR"/>
<result property="applyStartTime" column="apply_start_time" jdbcType="TIMESTAMP"/>
@ -21,7 +21,7 @@
<result property="diagnosticResult" column="diagnostic_result" jdbcType="VARCHAR"/>
<result property="attachment" column="attachment" jdbcType="VARCHAR"/>
<result property="attachmentTwo" column="attachment_two" jdbcType="VARCHAR"/>
<result property="doctorId" column="doctor_id" jdbcType="VARCHAR"/>
<result property="doctorId" column="doctor_id" jdbcType="BIGINT"/>
<result property="doctorName" column="doctor_name" jdbcType="VARCHAR"/>
<result property="applyCode" column="apply_code" jdbcType="VARCHAR"/>
<result property="applyBarcode" column="apply_barcode" jdbcType="VARCHAR"/>
@ -36,7 +36,7 @@
<sql id="Base_Column_List">
id,screening_id,patient_id,screening_status,
disease,dept_id,IFNULL(dept_name, '') as dept_name,
disease,hospital_id,IFNULL(hospital_name, '') as hospital_name,
project_id, project_name,
apply_start_time,apply_end_time, screening_date,
content,diagnostic_result,attachment,attachment_two,
@ -46,7 +46,7 @@
<sql id="Insert_Column">
screening_id,patient_id,screening_status,
disease,dept_id,dept_name,
disease,hospital_id,hospital_name,
project_id, project_name,
apply_start_time, apply_end_time, screening_date,
content,diagnostic_result,attachment,attachment_two,
@ -57,7 +57,7 @@
<insert id="insert">
insert into screening_record (<include refid="Insert_Column"></include>)
values (#{screeningId}, #{patientId}, #{screeningStatus},
#{disease}, #{deptId}, #{deptName},
#{disease}, #{hospitalId}, #{hospitalName},
#{projectId},#{projectName},
#{applyStartTime}, #{applyEndTime},#{screeningDate},
#{content}, #{diagnosticResult},#{attachment},#{attachmentTwo},
@ -74,11 +74,11 @@
<if test="screeningStatus != null">
screening_status = #{screeningStatus},
</if>
<if test="deptId != null">
dept_id = #{deptId},
<if test="hospitalId != null">
hospital_id = #{hospitalId},
</if>
<if test="deptName != null">
dept_name = #{deptName},
<if test="hospitalName != null">
hospital_name = #{hospitalName},
</if>
<if test="projectId != null">
project_id = #{projectId},
@ -179,11 +179,11 @@
<if test="address != null and address != ''">
and address like concat('%', #{address}, '%')
</if>
<if test="deptId != null and deptId != ''">
and dept_id = #{deptId}
<if test="hospitalId != null and hospitalId != ''">
and hospital_id = #{hospitalId}
</if>
<if test="deptName != null and deptName != ''">
and dept_name = #{deptName}
<if test="hospitalName != null and hospitalName != ''">
and hospital_name = #{hospitalName}
</if>
<if test="projectId != null and projectId != ''">
and project_id = #{projectId}
@ -216,7 +216,7 @@
<select id="screeningList" resultType="com.xinelu.manage.vo.screeningrecord.ScreeningRecordVo">
select r.resident_name,r.gender,r.birthday,r.phone,r.`identity`
,r.manage_status,r.manage_time,d.screening_id,d.patient_id,d.project_id,d.project_name
,d.dept_id,d.dept_name,d.apply_start_time,d.apply_end_time,
,d.hospital_id,d.hospital_name,d.apply_start_time,d.apply_end_time,
d.diagnostic_result,d.attachment,d.attachment_two,
d.registration_date,d.registration_code, d.registration_barcode,d.screening_type,d.push_date,
case when date_format(apply_end_time, '%y%m%d%H%i') &lt; date_format(now(), '%y%m%d%H%i') then '1'
@ -240,11 +240,11 @@
<if test="address != null and address != ''">
and r.address like concat('%', #{address}, '%')
</if>
<if test="deptId != null and deptId != ''">
and d.dept_id = #{deptId}
<if test="hospitalId != null and hospitalId != ''">
and d.hospital_id = #{hospitalId}
</if>
<if test="deptName != null and deptName != ''">
and d.dept_name = #{deptName}
<if test="hospitalName != null and hospitalName != ''">
and d.hospital_name = #{hospitalName}
</if>
<if test="projectId != null and projectId != ''">
and d.project_id = #{projectId}
@ -318,7 +318,7 @@
<!-- 获取筛查结果记录 -->
<select id="record" resultType="com.xinelu.manage.vo.screeningrecord.ScreeningRecordVo">
select ssr.id,ssr.screening_id,ssr.patient_id,ssr.screening_status,
ssr.disease,ssr.dept_id,IFNULL(ssr.dept_name, '') as dept_name,ssr.project_id, ssr.project_name,
ssr.disease,ssr.hospital_id,IFNULL(ssr.hospital_name, '') as hospital_name,ssr.project_id, ssr.project_name,
ssr.apply_start_time,ssr.apply_end_time, ssr.screening_date,ssr.content,ssr.diagnostic_result,ssr.attachment,ssr.attachment_two,
ssr.doctor_id,IFNULL(ssr.doctor_name,'') as doctor_name,ssr.apply_barcode,ssr.registration_date,ssr.screening_type,ssr.push_date,ssr.assess_record_id,
ssr.remark,sf.suffix as fileType

View File

@ -23,6 +23,7 @@
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="hospitalPersonId" column="hospital_person_id"/>
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap>
@ -47,7 +48,8 @@
</resultMap>
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status,
u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.hospital_person_id,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
@ -160,6 +162,7 @@
<if test="status != null and status != ''">status,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="hospitalPersonId != null and hospitalPersonId != ''">hospital_person_id,</if>
create_time
)values(
<if test="userId != null and userId != ''">#{userId},</if>
@ -174,6 +177,7 @@
<if test="status != null and status != ''">#{status},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="hospitalPersonId != null and hospitalPersonId != ''">#{hospitalPersonId},</if>
sysdate()
)
</insert>