主业务添加代码

This commit is contained in:
tangw 2025-08-27 19:27:37 +08:00
parent 5d32a1105c
commit f85f756f12
3 changed files with 132 additions and 11 deletions

View File

@ -165,4 +165,39 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
/**
* 根据 Date 对象获取周几(周1-周7)
* @param date 目标日期
* @return 1-7
*/
public static int getWeekDay(Date date) {
// Date 转 LocalDate(默认系统时区)
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// 获取周索引:Monday=1,Sunday=7(更符合日常认知)
return localDate.getDayOfWeek().getValue();
}
/**
* 根据 Date 对象获取周几(中文)
* @param date 目标日期
* @return 中文周几(如 "周一"、"周日")
*/
public static String getWeekDayName(Date date) {
// Date 转 LocalDate(默认系统时区)
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// 获取周索引:Monday=1,Sunday=7(更符合日常认知)
int weekIndex= localDate.getDayOfWeek().getValue();
String[] weekDays = {"", "周一", "周二", "周三", "周四", "周五", "周六", "周日"};
return weekDays[weekIndex];
}
/**
* 获取当前时间(时分秒)
* @param date
* @param format HH:mm/HH:mm:ss/hh:mm:ss a
* @return
*/
public static String time(Date date,String format) {
SimpleDateFormat hourMinFormatter = new SimpleDateFormat("HH:mm");
return hourMinFormatter.format(date);
}
}

View File

@ -8,6 +8,55 @@ import java.util.Date;
public interface LisWorkOperService {
Result newPatInfo(Date jyrq,String ybh, String sqh, String yq, Long userId);
Result changePat(LabPat labPat);
/**
* 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新
*
* @param jyrq
* @param yq
* @param ybh
* @return
*/
Result saveallresult(Date jyrq, String yq, String ybh);
/**
* 结果表补充申请单项目代码
*
* @param jyrq
* @param yq
* @param ybh
*/
void setItemSqxmdh(Date jyrq, String yq, String ybh);
/**
* 审核报告
* @param jyrq
* @param yq
* @param ybh
* @param hdys
* @return
*/
Result confirm(Date jyrq, String yq, String ybh, String hdys);
/**
* 计算项目参考值结果异常标志
*
* @param jyrq
* @param yq
* @param ybh
*/
Result saverefs(Date jyrq, String yq, String ybh);
/**
* 计算项目增加及重新计算
*
* @param jyrq
* @param yq
* @param ybh
*/
Result calcsample(Date jyrq, String yq, String ybh);
/**
* 获取常用取值结果标志
*
* @param yq
* @param xmdh
* @param csjg
* @return
*/
String getitemlmtflag(String yq, String xmdh, String csjg);
}

View File

@ -2,6 +2,7 @@ package com.czlis.liswork.service.impl;
import com.czlis.common.core.domain.entity.lis.*;
import com.czlis.common.utils.DateUtils;
import com.czlis.common.utils.SecurityUtils;
import com.czlis.common.utils.ServletUtils;
import com.czlis.common.utils.StringUtils;
@ -23,6 +24,7 @@ import com.czlis.liswork.pojo.DTO.ResultCalcDTO;
import com.czlis.liswork.service.LisWorkOperService;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -264,6 +266,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
String f_check1 = commonUtil.getComOptValue(yq, "f_check1");
if ("1".equals(f_check1)) return new Result("-1", "审核前必须先初审!");
}
if(checkWorkTime(labPat)==1)return new Result("-1", "核对医生不允许与检验医生相同!");
String limit_brly = commonUtil.getHISOPT("limit_brly");
String brly = labPat.getBrly();
if ("1".equals(limit_brly) && (brly == null || "".equals(brly)))
@ -548,6 +551,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
* @param jyrq
* @return
*/
@Override
public Result saveallresult(Date jyrq, String yq, String ybh) {
int finsh=1;
List<LabResult> labResultList = commonUtil.getLabResultList(jyrq, yq, ybh);
@ -581,7 +585,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
}
return new Result("0", "保存成功!");
}
//内部使用
private int saveallresult(LabPat labPat) {
Date jyrq = labPat.getJyrq();
@ -607,7 +610,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (sqh != null && !"".equals(sqh)) setItemSqxmdh(jyrq, yq, ybh, sqh);
return wjz;
}
/**
* 结果表补充申请单项目代码
*
@ -615,6 +617,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
* @param yq
* @param ybh
*/
@Override
public void setItemSqxmdh(Date jyrq, String yq, String ybh) {
String sqh = commonUtil.getSqhByKey(jyrq, yq, ybh);
if (sqh == null || "".equals(sqh)) {
@ -622,7 +625,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
setItemSqxmdh(jyrq, yq, ybh, sqh);
}
}
//内部使用
private void setItemSqxmdh(Date jyrq, String yq, String ybh, String sqh) {
if (sqh != null && !"".equals(sqh)) {
@ -635,7 +637,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
}
}
}
/**
* 计算项目增加及重新计算
*
@ -643,12 +644,12 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
* @param yq
* @param ybh
*/
@Override
public Result calcsample(Date jyrq, String yq, String ybh) {
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
calcsample(labPat);
return new Result("0", "保存成功!");
}
//内部使用
private void calcsample(LabPat labPat) {
Date jyrq = labPat.getJyrq();
@ -705,7 +706,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
}
}
}
/**
* 计算项目参考值结果异常标志
*
@ -713,6 +713,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
* @param yq
* @param ybh
*/
@Override
public Result saverefs(Date jyrq, String yq, String ybh) {
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
int wjz = saverefs(labPat);
@ -728,7 +729,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
return new Result("0", "保存成功!");
}
//内部使用
/**
* 计算项目参考值结果异常标志(内部使用)
*
@ -799,7 +799,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
}
return 0;
}
/**
* 明细结果计算参考值异常标志危急值标志并更新
*
@ -915,7 +914,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (!"".equals(wjzflag)) wjz = 1;
return wjz;
}
/**
* 特定条件危急值判断
*
@ -989,7 +987,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if (lb_hasval) return 0;
else return -1;
}
/**
* 获取常用取值结果标志
*
@ -998,6 +995,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
* @param csjg
* @return
*/
@Override
public String getitemlmtflag(String yq, String xmdh, String csjg) {
String jgbz = "";
if (csjg == null || csjg.isEmpty()) {
@ -1017,4 +1015,43 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
}
return jgbz;
}
/**
* 工作时间校验检验者审核者不允许相同 上班时间上午8点-12点下午2点到5点,周末不算
* @param labPat
* @return 返回0通过,返回1不允许相同
*/
private int checkWorkTime(LabPat labPat){
String yhdh = labPat.getYhdh();
String hdys = labPat.getHdys();
if(yhdh==null || yhdh.isEmpty()) return 0;
if(hdys==null || hdys.isEmpty()) return 0;
if(!yhdh.equals(hdys)) return 0;
String sb1=commonUtil.getHISOPT("SHTIME1");
String sb2=commonUtil.getHISOPT("SHTIME2");
String sb3=commonUtil.getHISOPT("SHTIME3");
String sb4=commonUtil.getHISOPT("SHTIME4");
if((sb1==null || sb1.isEmpty()) && (sb2==null || sb2.isEmpty()) && (sb3==null || sb3.isEmpty()) && (sb4==null || sb4.isEmpty())) return 0;
Date currenttime=DateUtils.getNowDate();
int weekDay = DateUtils.getWeekDay(currenttime);
//周末不算
if(weekDay==6 && weekDay==7) return 0;
int lt_now= Integer.parseInt(DateUtils.time(currenttime,"HH:mm").replace(":", ""));
if((sb1==null || sb1.isEmpty()) && (sb2==null || sb2.isEmpty())) {
sb1 = sb1.replace(":", "");
sb2 = sb2.replace(":", "");
if (LisUtil.isTureNumber(sb1) && LisUtil.isTureNumber(sb2)) {
int nsb1 = Integer.parseInt(sb1);
int nsb2 = Integer.parseInt(sb2);
if (lt_now > nsb1 && lt_now < nsb2) return 1;
}
if (LisUtil.isTureNumber(sb3) && LisUtil.isTureNumber(sb4)) {
int nsb3 = Integer.parseInt(sb3);
int nsb4 = Integer.parseInt(sb4);
if (lt_now > nsb3 && lt_now < nsb4) return 1;
}
}
return 0;
}
}