Merge remote-tracking branch 'lis8.0/master'

This commit is contained in:
jiangs 2025-09-24 12:18:39 +08:00
commit 1a06bbff74
6 changed files with 215 additions and 35 deletions

View File

@ -15,15 +15,16 @@ public class CalcUtils {
* 工具类,计算公式计算,使用PB的计算公式加入参得出结果值 * 工具类,计算公式计算,使用PB的计算公式加入参得出结果值
* @param CalcExpression PB原始计算公式 * @param CalcExpression PB原始计算公式
* @param variableMap 入参MAP * @param variableMap 入参MAP
* @param def 默认返回值,当计算公式失败不符合计算条件时返回默认值
* @return * @return
*/ */
public static String getValueFromCalc(String CalcExpression, Map<String, String> variableMap) { public static String getValueFromCalc(String CalcExpression, Map<String, String> variableMap,String def) {
ExpressionParser parser = new SpelExpressionParser(); ExpressionParser parser = new SpelExpressionParser();
StandardEvaluationContext context = new StandardEvaluationContext(); StandardEvaluationContext context = new StandardEvaluationContext();
variableMap=replaceAllSpecialKeys(variableMap); variableMap=replaceAllSpecialKeys(variableMap);
for (Map.Entry<String, String> entry : variableMap.entrySet()) { for (Map.Entry<String, String> entry : variableMap.entrySet()) {
String str = entry.getValue(); String str = entry.getValue();
if (isNumber(str)) { if (isNumber(str) && getnumbervalue(entry.getKey())) {
context.setVariable(entry.getKey(), Double.parseDouble(str)); context.setVariable(entry.getKey(), Double.parseDouble(str));
} else { } else {
context.setVariable(entry.getKey(), entry.getValue()); context.setVariable(entry.getKey(), entry.getValue());
@ -55,14 +56,24 @@ public class CalcUtils {
return result.toString(); return result.toString();
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("表达式计算失败: " + expression, e); //throw new RuntimeException("表达式计算失败: " + expression, e);
return def;
} }
} }
public static boolean getnumbervalue(String keyname) {
if("DEPT".equals(keyname))return false;
if("GIAG".equals(keyname))return false;
if("YBZT".equals(keyname))return false;
return true;
}
public static boolean getBooleanFromCalc(String CalcExpression, Map<String, String> variableMap) { public static boolean getBooleanFromCalc(String CalcExpression, Map<String, String> variableMap) {
String resultcondition = "if((" + CalcExpression + ") ,1,0)"; return getBooleanFromCalc(CalcExpression,variableMap,false);
String result1 = getValueFromCalc(resultcondition, variableMap); }
public static boolean getBooleanFromCalc(String CalcExpression, Map<String, String> variableMap,boolean def) {
String resultcondition = "if((" + CalcExpression + "),1,0)";
String result1 = getValueFromCalc(resultcondition, variableMap,"-1");
if ("1".equals(result1)) return true; if ("1".equals(result1)) return true;
if ("-1".equals(result1)) return def;
return false; return false;
} }
/** /**
@ -87,7 +98,9 @@ public class CalcUtils {
* @return * @return
*/ */
public static String getCalc(String CalcExpression){ public static String getCalc(String CalcExpression){
CalcExpression=trimCalc(CalcExpression);
// 匹配 isnull(...) 格式,兼容括号内外的空格
CalcExpression = CalcExpression.replaceAll("isnull\\s*\\(\\s*(.*?)\\s*\\)", "($1 == null)");
// 1. 替换逻辑运算符:and→&&,or→|| // 1. 替换逻辑运算符:and→&&,or→||
String processed = CalcExpression.replaceAll("\\band|AND\\b", "&&").replaceAll("\\bor|OR\\b", "||"); String processed = CalcExpression.replaceAll("\\band|AND\\b", "&&").replaceAll("\\bor|OR\\b", "||");
// 2. 替换变量格式:[a] → #a // 2. 替换变量格式:[a] → #a
@ -97,12 +110,31 @@ public class CalcUtils {
processed = replaceLenFunction(processed); processed = replaceLenFunction(processed);
//4.like '%aa'或者 like 'aa%'或者 like '%aa%' //4.like '%aa'或者 like 'aa%'或者 like '%aa%'
processed = replaceLikeExpressions(processed); processed = replaceLikeExpressions(processed);
processed = processed.replaceAll("not\\s*\\.contains", "!contains");
// 1. 先将所有比较用的=替换为==(关键修复) // 1. 先将所有比较用的=替换为==(关键修复)
processed = processed.replaceAll("(\\w+)\\s*=\\s*('.*?'|\\w+)", "$1 == $2"); processed = processed.replaceAll("(\\w+)\\s*=\\s*('.*?'|\\w+)", "$1 == $2");
//5. 递归处理if结构:if(cond, trueExpr, falseExpr) → cond?trueExpr:falseExpr //5. 递归处理if结构:if(cond, trueExpr, falseExpr) → cond?trueExpr:falseExpr
return processIf(processed); return processIf(processed);
} }
/**
* 规整公式
* @param CalcExpression
* @return
*/
public static String trimCalc(String CalcExpression){
String expr=CalcExpression.replace(" "," ");
expr=expr.replace(" (","(");
expr=expr.replace(") ",")");
expr=expr.replace(", ",",");
expr=expr.replace(" ,",",");
expr=expr.replace("isNull","isnull");
expr=expr.replace("ISNULL","isnull");
expr=expr.replace(" LIKE "," like ");
expr=expr.replace(" NOT "," not ");
expr = expr.replace("IF(", "if(");
return expr;
}
/** /**
* 取出公式中所有[参数]返回数组,供调用传值引用 * 取出公式中所有[参数]返回数组,供调用传值引用
* @param input * @param input
@ -172,7 +204,7 @@ public class CalcUtils {
String wrappedFalse = needsParentheses(processedFalse) ? "(" + processedFalse + ")" : processedFalse; String wrappedFalse = needsParentheses(processedFalse) ? "(" + processedFalse + ")" : processedFalse;
// 拼接三元表达式 // 拼接三元表达式
String ternary = condition + "?" + wrappedTrue + ":" + wrappedFalse; String ternary ="(("+condition + ")?" + wrappedTrue + ":" + wrappedFalse+")";
String before = expr.substring(0, start); String before = expr.substring(0, start);
String after = expr.substring(end + 1); String after = expr.substring(end + 1);
@ -274,33 +306,47 @@ public class CalcUtils {
return result.toString(); return result.toString();
} }
/** /**
* 处理like表达式转换 * 处理like和not like表达式转换
* 支持:like '%xxx'、like 'xxx%'、like '%xxx%'、like 'xxx'(精确匹配) * 支持:
* - like '%xxx'、like 'xxx%'、like '%xxx%'、like 'xxx'(精确匹配)
* - not like '%xxx'、not like 'xxx%'、not like '%xxx%'、not like 'xxx'
*/ */
private static String replaceLikeExpressions(String expression) { private static String replaceLikeExpressions(String expression) {
// 修正正则:左侧表达式允许包含#、字母、数字、下划线(#[a-zA-Z0-9_]+) // 修正正则:
Pattern pattern = Pattern.compile("([#\\w]+)\\s+like\\s+'([^']+)'", Pattern.CASE_INSENSITIVE); // 1. 增加 (not\\s+)? 分组,用于匹配可选的 "not " 前缀,CASE_INSENSITIVE 会处理大小写
// 2. 左侧表达式允许包含#、字母、数字、下划线(#[a-zA-Z0-9_]+)
Pattern pattern = Pattern.compile("([#\\w]+)\\s+(not\\s+)?like\\s+'([^']+)'", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(expression); Matcher matcher = pattern.matcher(expression);
StringBuffer result = new StringBuffer(); StringBuffer result = new StringBuffer();
while (matcher.find()) { while (matcher.find()) {
String leftExpr = matcher.group(1); // 支持#变量(如#RESULT) String leftExpr = matcher.group(1); // 左侧表达式,如 #DEPT
String patternStr = matcher.group(2); String notPrefix = matcher.group(2); // 匹配到的 "not " 部分,如果是 like 则为 null
String replacement = generateLikeReplacement(leftExpr, patternStr); String patternStr = matcher.group(3); // like 后面的匹配模式,如 '%内分泌%'
// 生成 like 的基础替换字符串
String likeReplacement = generateLikeReplacement(leftExpr, patternStr);
// 如果存在 "not " 前缀,则在整个表达式前加上 "!"
String replacement = (notPrefix != null && !notPrefix.isEmpty())
? "!" + likeReplacement
: likeReplacement;
matcher.appendReplacement(result, replacement); matcher.appendReplacement(result, replacement);
} }
matcher.appendTail(result); matcher.appendTail(result);
return result.toString(); return result.toString();
} }
/** /**
* 根据like模式生成对应的SpEL方法调用 * 根据like模式生成对应的SpEL方法调用(内部使用)
*/ */
private static String generateLikeReplacement(String leftExpr, String patternStr) { private static String generateLikeReplacement(String leftExpr, String patternStr) {
boolean startsWithWildcard = patternStr.startsWith("%"); boolean startsWithWildcard = patternStr.startsWith("%");
boolean endsWithWildcard = patternStr.endsWith("%"); boolean endsWithWildcard = patternStr.endsWith("%");
String content = patternStr.replace("%", ""); // 提取实际匹配内容 String content = patternStr.replace("%", ""); // 提取实际匹配内容
// 处理三种like场景 // 处理三种like场景和一种精确匹配场景
if (startsWithWildcard && endsWithWildcard) { if (startsWithWildcard && endsWithWildcard) {
// like '%xxx%' → 包含:xxx.contains('content') // like '%xxx%' → 包含:xxx.contains('content')
return String.format("%s.contains('%s')", leftExpr, escapeQuotes(content)); return String.format("%s.contains('%s')", leftExpr, escapeQuotes(content));
@ -315,6 +361,8 @@ public class CalcUtils {
return String.format("%s.equals('%s')", leftExpr, escapeQuotes(content)); return String.format("%s.equals('%s')", leftExpr, escapeQuotes(content));
} }
} }
/** /**
* 转义字符串中的单引号,避免SpEL语法错误 * 转义字符串中的单引号,避免SpEL语法错误
*/ */
@ -336,15 +384,17 @@ public class CalcUtils {
// 测试 // 测试
public static void main(String[] args) { public static void main(String[] args) {
Map<String, String> variables = new HashMap<>(); Map<String, String> variables = new HashMap<>();
variables.put("SEX", "1"); variables.put("DEPT", "0123");
variables.put("CREA", "30.3"); variables.put("CREA", "30.3");
variables.put("AGE", "30"); variables.put("AGE", "30");
// 示例值 // 示例值
// variables.put("TP", "6.0"); // variables.put("TP", "6.0");
String testCalc = "if([AGE]>18,(if([SEX]=1,(( [CREA] / 88.4)^(-1.234)) * ([AGE]^(-0.179))*175 ,(( [CREA] / 88.4)^(-1.234)) * ([AGE]^(-0.179))*175*0.79)),0)"; String testCalc = "[DEPT] like '%内分泌%'";
// testCalc=testCalc.replace("[结果]", "[RESULT]"); // testCalc=testCalc.replace("[结果]", "[RESULT]");
//System.out.println(getCalc(testCalc)); System.out.println(getCalc(testCalc));
System.out.println(getValueFromCalc(testCalc,variables)); testCalc = "[DEPT] not like '%内分泌%'";
System.out.println(getCalc(testCalc));
System.out.println(getBooleanFromCalc(testCalc,variables));
} }
} }

View File

@ -125,8 +125,8 @@ public class CheckResultUtils {
} }
//项目不全,此公式跳过 //项目不全,此公式跳过
if (setjgsg) { if (setjgsg) {
boolean result = CalcUtils.getBooleanFromCalc(jsgs, variables); boolean result = CalcUtils.getBooleanFromCalc(jsgs, variables,true);
if (result) { if (!result) {
errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 规则触发,未通过审核!"; errmsg = errmsg + LisUtil.LINE_SEPARATOR + "审核条件: " + jsgs + " 规则触发,未通过审核!";
} }
@ -339,7 +339,7 @@ public class CheckResultUtils {
} }
} }
flag = CalcUtils.getBooleanFromCalc(checkrules, variables); flag = CalcUtils.getBooleanFromCalc(checkrules, variables);
if (flag = true) errmsg = "审核条件: " + ruledisplay + " 规则触发,未通过审核!"; if (flag) errmsg = "审核条件: " + ruledisplay + " 规则触发,未通过审核!";
} }
return errmsg; return errmsg;
} }

View File

@ -10,7 +10,7 @@
select * from lab_pat where sqh = #{sqh} select * from lab_pat where sqh = #{sqh}
</select> </select>
<sql id="selectLabPatVo"> <sql id="selectLabPatVo">
select jyrq,yq,ybh,jzbz,jgbz,dybz,brly,brdh,brxm,brxb,nl,nldw,ksdh,jymd,yljg from lab_pat select jyrq,yq,ybh,jzbz,jgbz,dybz,brly,brdh,brxm,brxb,nl,nldw,ksdh,jymd,yljg,alarmflag,finish,fslx,autojgbz,lstd,shcs from lab_pat
</sql> </sql>
<select id="getSampleList" resultType="com.czlis.common.core.domain.entity.lis.LabPat"> <select id="getSampleList" resultType="com.czlis.common.core.domain.entity.lis.LabPat">
<include refid="selectLabPatVo"></include> <include refid="selectLabPatVo"></include>

View File

@ -72,11 +72,21 @@ public class LisWorkOperController extends BaseController {
public Result check2( Date jyrq, String yq, String ybh, String yhdh){ public Result check2( Date jyrq, String yq, String ybh, String yhdh){
return lisWorkOperService.confirm(jyrq, yq, ybh, yhdh); return lisWorkOperService.confirm(jyrq, yq, ybh, yhdh);
} }
@ApiOperation("初审报告")
@GetMapping("/check1")
public Result check1( Date jyrq, String yq, String ybh, String yhdh){
return lisWorkOperService.confirm1(jyrq, yq, ybh, yhdh);
}
@ApiOperation("取消审核") @ApiOperation("取消审核")
@GetMapping("/uncheck2") @GetMapping("/uncheck2")
public Result uncheck2( Date jyrq, String yq, String ybh, String yhdh){ public Result uncheck2( Date jyrq, String yq, String ybh, String yhdh){
return lisWorkOperService.unconfirm(jyrq, yq, ybh, yhdh); return lisWorkOperService.unconfirm(jyrq, yq, ybh, yhdh);
} }
@ApiOperation("取消初审")
@GetMapping("/uncheck1")
public Result uncheck1( Date jyrq, String yq, String ybh, String yhdh){
return lisWorkOperService.unconfirm1(jyrq, yq, ybh, yhdh);
}
@GetMapping("/unconfirmlog") @GetMapping("/unconfirmlog")
public Result unconfirmlog( Date jyrq, String yq, String ybh, String yhdh,String reason){ public Result unconfirmlog( Date jyrq, String yq, String ybh, String yhdh,String reason){
return lisWorkOperService.unconfirmlog(jyrq, yq, ybh, yhdh,reason); return lisWorkOperService.unconfirmlog(jyrq, yq, ybh, yhdh,reason);

View File

@ -41,6 +41,7 @@ public interface LisWorkOperService {
* @return * @return
*/ */
Result confirm(Date jyrq, String yq, String ybh, String hdys); Result confirm(Date jyrq, String yq, String ybh, String hdys);
Result confirm1(Date jyrq, String yq, String ybh, String hdys);
/** /**
* 解除审核 * 解除审核
@ -52,6 +53,7 @@ public interface LisWorkOperService {
* @return * @return
*/ */
Result unconfirm(Date jyrq, String yq, String ybh, String hdys); Result unconfirm(Date jyrq, String yq, String ybh, String hdys);
Result unconfirm1(Date jyrq, String yq, String ybh, String hdys);
Result unconfirmlog(Date jyrq, String yq, String ybh, String hdys, String reason); Result unconfirmlog(Date jyrq, String yq, String ybh, String hdys, String reason);

View File

@ -339,7 +339,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
labResultList = saveallresult(labPat, labResultList); labResultList = saveallresult(labPat, labResultList);
boolean wjz = getAlarmFlag(labResultList); boolean wjz = getAlarmFlag(labResultList);
//同步主表危急值标识 //同步主表危急值标识
String alarmflag = labPat.getAlarmflag().trim(); String alarmflag = labPat.getAlarmflag();
if (("1".equals(alarmflag) && !wjz)) { if (("1".equals(alarmflag) && !wjz)) {
labPat.setAlarmflag(""); labPat.setAlarmflag("");
commonUtil.updateLabPat(labPat); commonUtil.updateLabPat(labPat);
@ -381,6 +381,69 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
} }
return new Result("3", "审核成功!"); return new Result("3", "审核成功!");
} }
@Override
public Result confirm1(Date jyrq, String yq, String ybh, String hdys) {
if (hdys == null || "".equals(hdys)) return new Result("-1", "审核者为空,无法审核!");
//入参通过GET推送时使用ServletUtils.getParameterToInt获取
//入参通过POSTJSON时使用JsonParamUtils.getParameterToInt获取
int problemId = ServletUtils.getParameterToInt("problemId", 0);
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
labPat.setHdys(hdys);
List<LabResult> labResultList = commonUtil.getLabResultList(jyrq, yq, ybh);
if (problemId < 3) {
//1,审核权限校验
if (!commonUtil.getUserPower(yq, hdys, 20)) {
return new Result("-1", "当前核对者无权对本仪器报告审核!");
}
//2:数据合法性校验
Result result0 = beforeconfirm(labPat, labResultList, 1, problemId);
if (!"0".equals(result0.getCode())) return result0;
}
if (problemId < 3) problemId = 3;
if (problemId < 4) {
//3:数据完整保存
labResultList = saveallresult(labPat, labResultList);
boolean wjz = getAlarmFlag(labResultList);
//同步主表危急值标识
String alarmflag = labPat.getAlarmflag();
if (("1".equals(alarmflag) && !wjz)) {
labPat.setAlarmflag("");
commonUtil.updateLabPat(labPat);
} else if (("".equals(alarmflag) || alarmflag == null) && wjz) {
labPat.setAlarmflag("1");
commonUtil.updateLabPat(labPat);
}
if(wjz){
return new Result("4", getAlarmMsg(labResultList),4);
}
}
if (problemId < 5) problemId = 5;
if (problemId < 6) {
//医学审核条件判断
Result result = chksample(labPat, labResultList, problemId);
if (!"0".equals(result.getCode())) return result;
}
if (problemId < 6) problemId = 6;
if (problemId < 99) {
//高级医学审核条件判断
Result result = chksamplenew(labPat, labResultList, problemId);
if ("99".equals(result.getCode())) {
labPat.setBz(result.getMsg());
result.setCode("0");
}
if (!"0".equals(result.getCode())) return result;
}
if (problemId < 99) problemId = 99;
//5:数据状态修改,异步上传接口作业创建
Result result1 = afterconfirm1(labPat, problemId);
if (!"0".equals(result1.getCode())) return result1;
setComLog(jyrq, yq, ybh,hdys, ComLogConstants.LG_CK1,"");
// String sqh=labPat.getSqh();
// if(sqh!=null){
// setlabReqsteplog(sqh,SampleStatusConstants.CONFIRM,hdys);
// }
return new Result("3", "审核成功!");
}
/** /**
* 审核前校验数据完整性,审核业务和初审业务都可使用 * 审核前校验数据完整性,审核业务和初审业务都可使用
@ -668,6 +731,37 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
return ret; return ret;
} }
/**
* 初步审核状态修改
* @param labPat
* @param problemId
* @return
*/
private Result afterconfirm1(LabPat labPat, Integer problemId) {
Date jyrq = labPat.getJyrq();
String yq = labPat.getYq();
String ybh = labPat.getYbh();
String hdys = labPat.getHdys();
String yqdl = commonUtil.getYqdl(yq);
String itemvs = commonUtil.getHISOPT("itemvs");
Result ret = new Result("0", "保存成功!");
if ("1".equals(itemvs)) {
if (!"细菌仪".equals(yqdl)) {
String nullcount = lisWorkOperMapper.checkresultnosqxmdh(jyrq, yq, ybh);
if (!"".equals(nullcount) && nullcount != null)
ret = new Result("3", "警告!" + LisUtil.LINE_SEPARATOR + " 报告项目未对应申请项目,请进(收费项目报告项目对照)菜单维护对照:" + LisUtil.LINE_SEPARATOR + nullcount);
}
}
Date Confirmdt = new Date();
labPat.setLastdt(Confirmdt);
labPat.setLastuser(hdys);
String finish = labPat.getFinish();
if (!"细菌仪".equals(yqdl) && finish != null) labPat.setFinish("1");
labPat.setJgbz(ReportStatusConstants.PRELIM);
commonUtil.updateLabPat(labPat);
return ret;
}
/** /**
* 申请单表校验TAT时间顺序,恢复时间倒置的时间轴 * 申请单表校验TAT时间顺序,恢复时间倒置的时间轴
* *
@ -906,7 +1000,7 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
} }
} }
if (setjgsg) { if (setjgsg) {
String result = CalcUtils.getValueFromCalc(jsgs, variables); String result = CalcUtils.getValueFromCalc(jsgs, variables,"0");
if ("0".equals(result) && lb_jsx) result = null; if ("0".equals(result) && lb_jsx) result = null;
if (result != null && !result.trim().isEmpty()) { if (result != null && !result.trim().isEmpty()) {
//插入结果值 //插入结果值
@ -1259,22 +1353,20 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
samplecondition = samplecondition.replace("[诊断]", "[DIAG]"); samplecondition = samplecondition.replace("[诊断]", "[DIAG]");
samplecondition = samplecondition.replace("[样本状态]", "[YBZT]"); samplecondition = samplecondition.replace("[样本状态]", "[YBZT]");
Map<String, String> variables = new HashMap<>(); Map<String, String> variables = new HashMap<>();
variables.put("ZB", "1"); variables.put("CB", "1");
variables.put("DEPT", ksdh); variables.put("DEPT", ksdh);
variables.put("DIAG", zd); variables.put("DIAG", zd);
variables.put("YBZT", ybzt); variables.put("YBZT", ybzt);
samplecondition = "if((" + samplecondition + ") ,1,0)"; boolean ref = CalcUtils.getBooleanFromCalc(samplecondition, variables);
String result = CalcUtils.getValueFromCalc(samplecondition, variables); if (ref) {
if ("1".equals(result)) {
if (lb_fcb) return 0; if (lb_fcb) return 0;
lb_hasval = true; lb_hasval = true;
String resultcondition = xmAlarmdetail.getResultcondition(); String resultcondition = xmAlarmdetail.getResultcondition();
resultcondition = resultcondition.replace("[结果]", "[RESULT]"); resultcondition = resultcondition.replace("[结果]", "[RESULT]");
Map<String, String> variables1 = new HashMap<>(); Map<String, String> variables1 = new HashMap<>();
variables1.put("RESULT", csjg); variables1.put("RESULT", csjg);
resultcondition = "if((" + resultcondition + ") ,1,0)"; boolean ref1 = CalcUtils.getBooleanFromCalc(resultcondition, variables1);
String result1 = CalcUtils.getValueFromCalc(resultcondition, variables1); if (ref1) return 1;
if ("1".equals(result1)) return 1;
} }
} }
if (lb_hasval) return 0; if (lb_hasval) return 0;
@ -1552,7 +1644,33 @@ public class LisWorkOperServiceImpl implements LisWorkOperService {
if(sqh!=null){ if(sqh!=null){
setlabReqsteplog(sqh,SampleStatusConstants.START,yhdh); setlabReqsteplog(sqh,SampleStatusConstants.START,yhdh);
} }
return new Result("3", msg); if (!"取消成功!".equals(msg)) return new Result("3", msg);
return new Result("1", msg);
}
@Override
public Result unconfirm1(Date jyrq, String yq, String ybh, String yhdh) {
if (yhdh == null || "".equals(yhdh)) return new Result("-1", "操作者为空,无法解除审核!");
int problemId = ServletUtils.getParameterToInt("problemId", 0);
LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh);
if (problemId < 3) {
//1,解除审核权限校验
if (!commonUtil.getUserPower(yq, yhdh, 10)) return new Result("-1", "当前操作者无权对本仪器报告解除审核!");
//2:数据合法性校验
String jgbz = labPat.getJgbz();
if ("2".equals(jgbz)) return new Result("1", "报告已审核,不能解除初审!");
if (!"1".equals(jgbz)) return new Result("1", "报告未初审,不能解除初审!");
}
// if (problemId < 3) problemId = 3;
// if (problemId < 4) problemId = 4;
if (problemId < 5) problemId = 5;
labPat.setFslx("");
labPat.setJgbz(ReportStatusConstants.DEFAULT);
commonUtil.updateLabPat(labPat);
setComLog(jyrq, yq, ybh,yhdh, ComLogConstants.LG_UCK1,"");
return new Result("1", "取消成功!");
} }
/** /**