From 81098344bb62a3674bc6422739ef86f77476a151 Mon Sep 17 00:00:00 2001 From: tangw Date: Wed, 11 Feb 2026 19:06:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/SysLoginParam.java | 4 + .../czlis/interfaceCommon/utils/LisUtil.java | 39 ++++++++ .../interfaceCommon/utils/LisWorkBase.java | 4 + .../system/web/service/SysLoginService.java | 8 ++ .../controller/stats/StatsController.java | 34 +++++++ .../liswork/mapper/stats/StatsMapper.java | 4 + .../czlis/liswork/service/StatsService.java | 11 +++ .../service/impl/stats/StatsServiceImpl.java | 92 +++++++++++++++++++ .../xtwh/ComStatsTemplateServiceImpl.java | 6 +- .../src/main/resources/mapper/StatsMapper.xml | 6 ++ 10 files changed, 206 insertions(+), 2 deletions(-) create mode 100644 liswork/src/main/java/com/czlis/liswork/controller/stats/StatsController.java create mode 100644 liswork/src/main/java/com/czlis/liswork/mapper/stats/StatsMapper.java create mode 100644 liswork/src/main/java/com/czlis/liswork/service/StatsService.java create mode 100644 liswork/src/main/java/com/czlis/liswork/service/impl/stats/StatsServiceImpl.java create mode 100644 liswork/src/main/resources/mapper/StatsMapper.xml diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java index bb45076..cda6258 100644 --- a/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/SysLoginParam.java @@ -21,6 +21,10 @@ public class SysLoginParam { * 登录的医疗机构 */ private String loginYLJG; + /** + * 默认仪器 + */ + private String defaultInstr; /** * 客户端唯一标识 */ diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java index 077945d..5f3964d 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java @@ -5,6 +5,7 @@ import com.czlis.common.utils.DateUtils; import com.lowagie.text.Document; import com.lowagie.text.pdf.PdfCopy; import com.lowagie.text.pdf.PdfReader; +import org.apache.commons.lang3.time.DateFormatUtils; import java.io.*; import java.lang.reflect.Field; @@ -30,7 +31,45 @@ public class LisUtil { public static Map getAgeFromBirthDay(String birthday) { return AgeUtils.getAgeFromBirthDay(birthday); } + //日期转字符串 + public static String getDateString(Date rq) { + return DateFormatUtils.format(rq, "yyyy-MM-dd"); + } + public static String getDateTimeString(Date rq) { + return DateFormatUtils.format(rq, "yyyy-MM-dd HH:mm:ss"); + } + public static String getTimeString(Date rq) { + return DateFormatUtils.format(rq, "HH:mm:ss"); + } + /** + * 提取包含指定子串后的所有内容 + * @param original 原字符串(可能为null) + * @param keyword 要匹配的子串(可能为null) + * @return 子串后的内容:子串不存在/空值返回空字符串,子串在末尾也返回空字符串 + */ + public static String getSubstringAfterKeyword(String original, String keyword) { + // 1. 空值安全校验(核心:避免NullPointerException) + if (original == null || keyword == null || keyword.isEmpty()) { + return ""; + } + // 2. 判断是否包含子串 + if (!original.contains(keyword)) { + return ""; + } + + // 3. 获取子串的结束位置(起始位置 + 子串长度) + int keywordStartIndex = original.indexOf(keyword); + int keywordEndIndex = keywordStartIndex + keyword.length(); + + // 4. 边界校验:避免子串在末尾导致截取越界 + if (keywordEndIndex >= original.length()) { + return ""; + } + + // 5. 截取子串后的所有内容 + return original.substring(keywordEndIndex); + } /** * 根据年龄获取出生日期 * diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java index 8656daa..0b26745 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java @@ -36,6 +36,10 @@ public class LisWorkBase { public String getYLJG(){ return loginConfigParamUtil.getLoginConfigParam().getLoginYLJG(); } + /**获取当前客户端默认仪器**/ + public String getDefaultInstr(){ + return loginConfigParamUtil.getLoginConfigParam().getDefaultInstr(); + } /**获取当前会话循环次数**/ int getProblemId() { return ServletUtils.getParameterToInt("problemId", 0); diff --git a/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java b/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java index b8b668a..5d86884 100644 --- a/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java +++ b/lis-system/src/main/java/com/czlis/system/web/service/SysLoginService.java @@ -153,6 +153,14 @@ public class SysLoginService { SysLoginParam sysLoginParam = new SysLoginParam(); sysLoginParam.setLoginYLJG(loginYLJG); sysLoginParam.setLocalid(localid); + Map map=getLocalconfig(localid,IpUtils.getIpAddr()); + if(map!=null) { + Object value =map.get("defaultinstr"); + if(value!=null) { + String defaultinstr = value.toString(); + sysLoginParam.setDefaultInstr(defaultinstr); + } + } loginUser.setSysLoginParam(sysLoginParam); // 生成token return tokenService.createToken(loginUser); diff --git a/liswork/src/main/java/com/czlis/liswork/controller/stats/StatsController.java b/liswork/src/main/java/com/czlis/liswork/controller/stats/StatsController.java new file mode 100644 index 0000000..7490345 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/controller/stats/StatsController.java @@ -0,0 +1,34 @@ +package com.czlis.liswork.controller.stats; + +import com.czlis.common.core.controller.BaseController; +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.ComStatsParameter; +import com.czlis.liswork.service.StatsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/stats") +@Api(tags = "统计") +@Slf4j +public class StatsController extends BaseController{ + @Autowired + private StatsService statsService; + @ApiOperation("获取模板详细信息") + @GetMapping(value = "/gettemplate") + public Result getTemplate(String StatsCode) { + return statsService.getTemplate(StatsCode); + } + @ApiOperation("获取模板详细信息") + @GetMapping(value = "/query") + public Result query(List list) { + return statsService.query(list); + } +} diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/stats/StatsMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/stats/StatsMapper.java new file mode 100644 index 0000000..f2db45e --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/mapper/stats/StatsMapper.java @@ -0,0 +1,4 @@ +package com.czlis.liswork.mapper.stats; + +public interface StatsMapper { +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/StatsService.java b/liswork/src/main/java/com/czlis/liswork/service/StatsService.java new file mode 100644 index 0000000..456893b --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/service/StatsService.java @@ -0,0 +1,11 @@ +package com.czlis.liswork.service; + +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.ComStatsParameter; + +import java.util.List; + +public interface StatsService { + Result getTemplate(String StatsCode); + Result query(List list); +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/stats/StatsServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/stats/StatsServiceImpl.java new file mode 100644 index 0000000..df0f1a9 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/stats/StatsServiceImpl.java @@ -0,0 +1,92 @@ +package com.czlis.liswork.service.impl.stats; + +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.ComStatsParameter; +import com.czlis.common.core.domain.entity.lis.ComStatsTemplate; +import com.czlis.common.utils.StringUtils; +import com.czlis.interfaceCommon.utils.LisUtil; +import com.czlis.interfaceCommon.utils.LisWorkUtils; +import com.czlis.liswork.mapper.xtwh.ComStatsParameterMapper; +import com.czlis.liswork.mapper.xtwh.ComStatsTemplateMapper; +import com.czlis.liswork.service.StatsService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +@Service +@Slf4j +public class StatsServiceImpl implements StatsService { + @Autowired + ComStatsParameterMapper comStatsParameterMapper; + @Autowired + ComStatsTemplateMapper comStatsTemplateMapper; + @Autowired + LisWorkUtils lisWorkUtils; + @Override + public Result getTemplate(String statsCode){ + ComStatsTemplate Stats=new ComStatsTemplate(); + Stats.setStatsCode(statsCode); + List Statslist= comStatsTemplateMapper.selectComStatsTemplateList(Stats); + if(Statslist==null||Statslist.size()==0){ + return new Result("-1","未找到该模板"); + } + ComStatsParameter param = new ComStatsParameter(); + param.setStatsCode(statsCode); + param.setStatus("0"); + List list=comStatsParameterMapper.selectComStatsParameterList(param); + if(list==null||list.size()==0)return new Result("-1","未找到该模板参数"); + List columnlist=list.stream().filter(ss->"1".equals(ss.getParamType())||"2".equals(ss.getParamType())||"6".equals(ss.getParamType())).collect(Collectors.toList()); + List summarylist=list.stream().filter(ss->"3".equals(ss.getParamType())).collect(Collectors.toList()); + List parameter=list.stream().filter(ss->"0".equals(ss.getParamType())).collect(Collectors.toList()); + List subquery=list.stream().filter(ss->"4".equals(ss.getParamType())).collect(Collectors.toList()); + if(parameter!=null&¶meter.size()>0){ + for(ComStatsParameter p:parameter){ + String defvalue=p.getParamDefvalue(); + if(StringUtils.isEmpty(defvalue))continue; + switch (defvalue){ + case "[LoginYLJG]": + p.setParamDefvalue(lisWorkUtils.getYLJG()); + break; + case "[DefaultInstr]": + p.setParamDefvalue(lisWorkUtils.getDefaultInstr()); + break; + case "[today]": + p.setParamDefvalue(LisUtil.getDateString(new Date())); + case "[now]": + p.setParamDefvalue(LisUtil.getTimeString(new Date())); + break; + default: + if("[today]".contains(defvalue)){ + String defvalue1=LisUtil.getSubstringAfterKeyword(defvalue,"[today]"); + if(defvalue1!=null)defvalue1=defvalue1.trim(); + if("".equals(defvalue1)&&defvalue1!=null){ + if(LisUtil.isNumber(defvalue1)){ + p.setParamDefvalue(LisUtil.getDateString(LisUtil.relativeDateTime(Integer.parseInt(defvalue1)))); + }else{ + p.setParamDefvalue(LisUtil.getDateString(new Date())+LisUtil.getSubstringAfterKeyword(defvalue,"[today]")); + } + } + } + } + } + } + Map map=new HashMap<>(); + map.put("Template",Statslist.get(0)); + map.put("Column",columnlist); + map.put("Summary",summarylist); + map.put("Parameter",parameter); + map.put("Subquery",subquery); + return new Result("0","成功",map); + } + @Override + public Result query(List list){ + if(list==null||list.size()==0)return new Result("-1","入参为空"); + Map map=new HashMap<>(); + return new Result("0","成功",map); + } +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComStatsTemplateServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComStatsTemplateServiceImpl.java index f29ad36..008b192 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComStatsTemplateServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComStatsTemplateServiceImpl.java @@ -5,13 +5,13 @@ import com.czlis.common.core.domain.entity.lis.ComStatsParameter; import com.czlis.common.core.domain.entity.lis.ComStatsTemplate; import com.czlis.common.exception.ServiceException; import com.czlis.common.utils.StringUtils; +import com.czlis.interfaceCommon.utils.LisWorkUtils; import com.czlis.liswork.mapper.xtwh.ComStatsParameterMapper; import com.czlis.liswork.mapper.xtwh.ComStatsTemplateMapper; import com.czlis.liswork.service.ComStatsTemplateService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import java.util.List; @Service @@ -21,6 +21,8 @@ public class ComStatsTemplateServiceImpl implements ComStatsTemplateService { ComStatsParameterMapper comStatsParameterMapper; @Autowired ComStatsTemplateMapper comStatsTemplateMapper; + @Autowired + LisWorkUtils lisWorkUtils; /** * 查询统计模板信息集合 * @@ -98,7 +100,7 @@ public class ComStatsTemplateServiceImpl implements ComStatsTemplateService { if(temp==null)return 0; String statsCode=temp.getStatsCode(); ComStatsParameter param = new ComStatsParameter(); - temp.setStatsCode(statsCode); + param.setStatsCode(statsCode); List list=comStatsParameterMapper.selectComStatsParameterList(param); if(list==null||list.size()==0)return 0; return list.size(); diff --git a/liswork/src/main/resources/mapper/StatsMapper.xml b/liswork/src/main/resources/mapper/StatsMapper.xml new file mode 100644 index 0000000..25bf78e --- /dev/null +++ b/liswork/src/main/resources/mapper/StatsMapper.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file