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

This commit is contained in:
jiangs 2025-12-10 10:37:25 +08:00
commit 3862d8ce67
10 changed files with 199 additions and 178 deletions

View File

@ -25,7 +25,7 @@ public class ComConfigDict {
private String updateBy;
private Date updateTime;
private String remark;
private String yq;
}

View File

@ -13,9 +13,5 @@ public class ComOpt {
private String xxlb;
private String xxqz;
private String bz;
private String opttype;
private String scope;
private Integer optSort;
private String lx;
}

View File

@ -0,0 +1,12 @@
package com.czlis.interfaceCommon.constants;
/**系统参数设置种类定义常量**/
public class ConfigTypeConstants {
/**仪器全局设置*/ public static final String SYSTEM="SYSTEM";
/**仪器界面设置*/ public static final String INPUT="INPUT";
/**本地选项设置*/ public static final String LOCAL="LOCAL";
/**本院特殊设置*/ public static final String HISOPT="HISOPT";
/**门诊采血设置*/ public static final String MZCX="_MZCX_";
/**条码签收设置*/ public static final String BAR="_BAR_";
}

View File

@ -1,29 +1,15 @@
package com.czlis.interfaceCommon.mapper;
import com.czlis.common.core.domain.entity.lis.ComOpt;
import com.czlis.common.core.domain.entity.lis.ComOptTemplate;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface ComOptMapper {
ComOpt getComOptOne(@Param("yq") String yq,@Param("xxdh") String xxdh);
String getComOptValue(@Param("yq") String yq,@Param("xxdh") String xxdh);
List<ComOpt> getComOptList(ComOpt comOpt);
void add(ComOpt comOpt);
void update(ComOpt comOpt);
void delete(@Param("yq") String yq,@Param("xxdh") String xxdh);
List<ComOptTemplate> getComOptTemplate(ComOptTemplate comOptTemplate);
void addTemplate(ComOptTemplate comOptTemplate);
void updateTemplate(ComOptTemplate comOptTemplate);
List<Map<String, Object>> queryTree();
}

View File

@ -18,18 +18,16 @@
<if test="xxdh != null and xxdh != ''"> and xxdh = #{xxdh}</if>
<if test="xxlb != null and xxlb != ''"> and xxlb = #{xxlb}</if>
<if test="xxqz != null and xxqz != ''"> and xxqz = #{xxqz}</if>
<![CDATA[and yq is not null and yq <> '']]>
</where>
order by optsort
</select>
<insert id="add">
insert into com_opt(
<if test="bz != null and bz !=''">bz,</if>
yq,xxdh,xxlb,xxqz,lx
yq,xxdh,xxlb,xxqz
)values(
<if test="bz != null and bz !=''">#{bz},</if>
#{yq},#{xxdh},#{xxlb},#{xxqz},#{lx}
#{yq},#{xxdh},#{xxlb},#{xxqz}
)
</insert>
@ -45,39 +43,8 @@
delete from com_opt where yq = #{yq} and xxdh = #{xxdh}
</delete>
<select id="getComOptTemplate" resultType="com.czlis.common.core.domain.entity.lis.ComOptTemplate">
select * from com_opt_template
<where>
<if test="comtype != null and comtype !=''">and comtype = #{comtype}</if>
<if test="optcode != null and optcode !=''">and optcode = #{optcode}</if>
</where>
</select>
<insert id="addTemplate">
insert into com_opt_template(
opttype,comtype,optcode,optdefault,optSort,scope
)values(
#{opttype},#{comtype},#{optcode},#{optdefault},#{optSort},#{scope}
)
</insert>
<update id="updateTemplate">
update com_opt_template set
<if test="opttype != null and opttype !=''">opttype = #{opttype}</if>
<if test="comtype != null and comtype !=''">comtype = #{comtype}</if>
<if test="optcode != null and opttype !=''">optcode = #{optcode}</if>
<if test="optdefault != null and optdefault !=''">optdefault = #{optdefault}</if>
<if test="optSort != null">optSort = #{optSort}</if>
<if test="scope != null and scope != ''">scope = #{scope}</if>
</update>
<select id="queryTree" resultType="map">
<![CDATA[
select (case a.lx when '1' then (select dict_label from sys_dict_data where a.yq = dict_value and dict_type = 'lis_opt_type') when '2' then a.yq else '' end),a.lx from (select distinct yq,lx from com_opt where yq is not null and yq <> '') a
union
select yq,'2' from lab_instr where useflag = '0'
order by lx
]]>
</select>
</mapper>

View File

@ -1,5 +1,6 @@
package com.czlis.system.web.service;
import com.alibaba.fastjson2.JSON;
import com.czlis.common.constant.CacheConstants;
import com.czlis.common.constant.Constants;
import com.czlis.common.constant.UserConstants;
@ -62,8 +63,13 @@ public class SysLoginService {
@Autowired
private SysUserMapper userMapper;
public String getLocalconfig(String smac){
return commonUtil.getLocalconfig(smac);
public Map<String, Object> getLocalconfig(String smac){
String configvalue=commonUtil.getLocalconfig(smac);
Map<String, Object> map = new HashMap<>();
if(configvalue!=null) {
map = JSON.parseObject(configvalue, Map.class);
}
return map;
}
public Map<String,String> getOEM(){
Map<String,String> oem=new HashMap<>();

View File

@ -3,7 +3,9 @@ package com.czlis.liswork.controller.xtwh;
import com.czlis.common.annotation.Anonymous;
import com.czlis.common.annotation.Log;
import com.czlis.common.core.controller.BaseController;
import com.czlis.common.core.domain.AjaxResult;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.ComConfigDict;
import com.czlis.common.core.domain.entity.lis.ComOpt;
import com.czlis.common.core.domain.entity.lis.ComOptTemplate;
import com.czlis.common.core.domain.entity.lis.LabPat;
@ -16,6 +18,7 @@ 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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -29,48 +32,17 @@ public class ComOptController extends BaseController {
@Autowired
private ComOptService comOptService;
@Autowired
CommonUtil commonUtil;
@ApiOperation("查询参数列表")
@GetMapping("/query")
public TableDataInfo getComOptList(ComOpt comOpt) {
startPage();
List<ComOpt> comOptList = comOptService.getComOptList(comOpt);
return getDataTable(comOptList);
public Result getComOptList(String yq) {
return comOptService.getComOptList(yq);
}
@Log(title = SysLogConstants.COMOPT_LOG,businessType = BusinessType.INSERT)
@ApiOperation("新增参数")
@PostMapping("/add")
public Result add(@RequestBody ComOpt comOpt) {
return comOptService.add(comOpt);
}
@Log(title = SysLogConstants.COMOPT_LOG,businessType = BusinessType.UPDATE)
@ApiOperation("修改参数")
@PostMapping("/update")
public Result update(@RequestBody ComOpt comOpt) {
return comOptService.update(comOpt);
}
@Log(title = SysLogConstants.COMOPT_LOG,businessType = BusinessType.DELETE)
@ApiOperation("删除参数")
@DeleteMapping("/del")
public Result delete(String yq,String xxdh) {
return comOptService.delete(yq,xxdh);
}
@ApiOperation("查询参数模版")
@GetMapping("/queryTemplate")
public Result getComOptTemplate(){
return comOptService.getComOptTemplate();
}
@ApiOperation("新增模版参数")
@PostMapping("/addTemplate")
public Result addTemplate(@RequestBody ComOptTemplate comOptTemplate) {
return comOptService.addTemplate(comOptTemplate);
@ApiOperation("整体保存本地参数")
@Log(title = "整体保存本地参数", businessType = BusinessType.UPDATE)
@PutMapping("/update")
public Result saveopt(@Validated @RequestBody List<ComConfigDict> posts) {
return comOptService.saveopt(posts) ;
}
@ApiOperation("查询参数列表树状结构")
@ -78,11 +50,10 @@ public class ComOptController extends BaseController {
public Result queryTree(){
return comOptService.queryTree();
}
@ApiOperation("查询参数默认值")
@GetMapping("/getdef")
public Result getdef(){
return comOptService.getdef();
}
@ApiOperation("获取单个参数的值")
@GetMapping("/queryOne")
public Result getParamOne(String yq,String xxdh){
String value = commonUtil.getComOptValue(yq, xxdh);
return new Result("0","获取成功!",value);
}
}

View File

@ -1,24 +1,15 @@
package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.ComConfigDict;
import com.czlis.common.core.domain.entity.lis.ComOpt;
import com.czlis.common.core.domain.entity.lis.ComOptTemplate;
import java.util.List;
public interface ComOptService {
List<ComOpt> getComOptList(ComOpt comOpt);
Result add(ComOpt comOpt);
Result update(ComOpt comOpt);
Result delete(String yq, String xxdh);
Result getComOptTemplate();
Result addTemplate(ComOptTemplate comOptTemplate);
Result getComOptList(String yq);
Result saveopt(List<ComConfigDict> posts);
Result queryTree();
Result getdef();
}

View File

@ -146,6 +146,7 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService {
Map<String, Object> map = getConfigvalue(smac);
if (!map.isEmpty()) {
for (ComConfigDict comConfigDict : list) {
comConfigDict.setConfigDefvalue("");
String configCode = comConfigDict.getConfigCode();
if (map.containsKey(configCode)) {
String value = map.get(configCode).toString();
@ -154,6 +155,10 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService {
}
}
}
}else{
for (ComConfigDict comConfigDict : list) {
comConfigDict.setConfigDefvalue(null);
}
}
return list;
}

View File

@ -1,96 +1,183 @@
package com.czlis.liswork.service.impl.xtwh;
import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.ComOpt;
import com.czlis.common.core.domain.entity.lis.ComOptTemplate;
import com.czlis.common.core.domain.entity.lis.LabInstr;
import com.czlis.common.core.domain.entity.lis.*;
import com.czlis.common.utils.ComOptionUtils;
import com.czlis.common.utils.SecurityUtils;
import com.czlis.interfaceCommon.constants.ConfigTypeConstants;
import com.czlis.interfaceCommon.mapper.ComOptMapper;
import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.liswork.service.ComConfigDictService;
import com.czlis.liswork.service.ComOptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Slf4j
public class ComOptServiceImpl implements ComOptService {
@Autowired
ComConfigDictService ComConfigDictService;
@Autowired
private ComOptMapper comOptMapper;
@Autowired
private CommonUtil commonUtil;
@Override
public List<ComOpt> getComOptList(ComOpt comOpt) {
public Result getdef(){
List<ComConfigDict> list=getconfigdef(ConfigTypeConstants.SYSTEM);
return new Result("0","成功",list);
}
@Override
public Result getComOptList(String yq) {
ComOpt comOpt=new ComOpt();
comOpt.setYq(yq);
List<ComOpt> comOptList = comOptMapper.getComOptList(comOpt);
return comOptList;
List<ComConfigDict> list=getconfigdef(ConfigTypeConstants.SYSTEM);
if(list.isEmpty()||list==null)return new Result("","",list);
for(ComConfigDict comConfigDict:list){
comConfigDict.setYq(yq);
comConfigDict.setConfigDefvalue("");
if(!comOptList.isEmpty()&&comOptList!=null) {
String ConfigCode = comConfigDict.getConfigCode();
Optional<ComOpt> comOptList0 = comOptList.stream().filter(instr -> ConfigCode.toUpperCase().equals(instr.getXxdh().toUpperCase())).findFirst();
ComOpt ComOpt0 = comOptList0.orElse(null);
if (ComOpt0 != null) {
comConfigDict.setConfigDefvalue(ComOpt0.getXxqz());
}
}
}
return new Result("0","成功",list);
}
/**
* 获取参数模块及默认值入参为ConfigTypeConstants常量
* @return
*/
private List<ComConfigDict> getconfigdef(String ConfigType) {
ComConfigDict post = new ComConfigDict();
post.setConfigType(ConfigType);
post.setStatus("0");
List<ComConfigDict> list = ComConfigDictService.selectComConfigDictList(post);
return list;
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result add(ComOpt comOpt) {
comOptMapper.add(comOpt);
//设置缓存
ComOptionUtils.setOptCache(comOpt.getYq(),comOpt.getXxdh(),comOpt);
return new Result("0","新增成功!");
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result update(ComOpt comOpt) {
public Result saveopt(List<ComConfigDict> list) {
if (list.isEmpty() || list == null) return new Result("", "", list);
String yq = list.get(0).getYq();
ComOpt comOpts = new ComOpt();
comOpts.setYq(yq);
List<ComOpt> comOptList = comOptMapper.getComOptList(comOpts);
for (ComConfigDict comConfigDict : list) {
if (!comOptList.isEmpty() && comOptList != null) {
String ConfigCode = comConfigDict.getConfigCode();
Optional<ComOpt> comOptList0 = comOptList.stream().filter(instr -> ConfigCode.toUpperCase().equals(instr.getXxdh().toUpperCase())).findFirst();
ComOpt ComOpt0 = comOptList0.orElse(null);
if (ComOpt0 != null) {
String xxqz=comConfigDict.getConfigDefvalue();
String xxqz0=ComOpt0.getXxqz();
boolean updatefalg=false;
if(xxqz==null&&xxqz0!=null)updatefalg=true;
if(xxqz!=null&&xxqz0==null)updatefalg=true;
if(xxqz!=null&&!xxqz.equals(xxqz0))updatefalg=true;
if(updatefalg) {
ComOpt comOpt=ComOpt0;
comOpt.setXxqz(xxqz);
comOptMapper.update(comOpt);
//设置缓存
ComOptionUtils.setOptCache(comOpt.getYq(), comOpt.getXxdh(), comOpt);
return new Result("0","修改数据成功!");
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result delete(String yq, String xxdh) {
comOptMapper.delete(yq,xxdh);
//清除缓存
ComOptionUtils.clearOptCache(yq,xxdh);
return new Result("0","删除数据成功!");
}
@Override
public Result getComOptTemplate() {
List<ComOptTemplate> comOptTemplateList = comOptMapper.getComOptTemplate(null);
return new Result("0","查询成功!",comOptTemplateList);
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result addTemplate(ComOptTemplate comOptTemplate) {
comOptMapper.addTemplate(comOptTemplate);
List<LabInstr> labInstrList = commonUtil.getLabInstrList(null);
for (LabInstr labInstr : labInstrList) {
String yq = labInstr.getYq();
String value = commonUtil.getComOptValue(yq, comOptTemplate.getOptcode());
if(value == null || value.equals("")) continue;
} else {
ComOpt comOpt = new ComOpt();
comOpt.setYq(yq);
comOpt.setXxdh(comOptTemplate.getComtype());
comOpt.setXxlb("INSTR");
comOpt.setXxqz(comOptTemplate.getOptdefault());
comOpt.setBz(comOptTemplate.getBz());
comOpt.setOpttype(comOptTemplate.getOpttype());
comOpt.setScope(comOptTemplate.getScope());
comOpt.setOptSort(comOptTemplate.getOptSort());
add(comOpt);
comOpt.setXxlb("SYS");
comOpt.setXxdh(comConfigDict.getConfigCode());
comOpt.setXxqz(comConfigDict.getConfigDefvalue());
comOpt.setBz(comConfigDict.getConfigName());
comOptMapper.add(comOpt);
}
return new Result("0","添加模版参数成功!");
}
}
return new Result("0", "修改数据成功!");
}
@Override
public Result queryTree() {
List<Map<String,Object>> list = comOptMapper.queryTree();
String yhdh=SecurityUtils.getLoginUser().getUsername();
String yljg=SecurityUtils.getLoginUser().getSysLoginParam().getLoginYLJG();
List<LabInstr> labInstrs;
if ("admin".equals(yhdh) || "lis".equals(yhdh)) {
labInstrs = commonUtil.querybylisgroup("", yljg, "0");
} else {
labInstrs = commonUtil.getInstrdList("", yljg, "0", yhdh, "7");
}
ComOpt comOpt=new ComOpt();
comOpt.setXxdh("ifnullbfcheck");
List<ComOpt> comOptlist=comOptMapper.getComOptList(comOpt);
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
List<ComDict> comDictList =commonUtil.getComDictList("group");
for (ComDict comDict : comDictList) {
String zddh=comDict.getZddh();
List<LabInstr> labInstr0=labInstrs.stream().filter(ss->zddh.equals(ss.getLisgroup())).collect(Collectors.toList());
if(labInstr0.size()>0) {
List<Map<String,Object>> labInstrlist=new ArrayList<Map<String,Object>>();
String newflag="";
for(LabInstr labInstr:labInstr0){
String newflag0="";
String yq=labInstr.getYq().trim();
Optional<ComOpt> comOptList0 = comOptlist.stream().filter(instr -> yq.toUpperCase().equals(instr.getYq().trim().toUpperCase())).findFirst();
if(!comOptList0.isPresent()) {
newflag0="1";
newflag="1";
}
Map<String, Object> map0 = new HashMap<String, Object>();
map0.put("id", yq);
map0.put("label", labInstr.getYqmc());
map0.put("lx", labInstr.getLisgroup());
map0.put("newflag", newflag0);
labInstrlist.add(map0);
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", zddh);
map.put("label", comDict.getZdmc());
map.put("children", labInstrlist);
map.put("newflag", newflag);
list.add(map);
}
}
List<LabInstr> labInstr1=labInstrs.stream().filter(ss->"".equals(ss.getLisgroup())||ss.getLisgroup()==null).collect(Collectors.toList());
if(labInstr1.size()>0) {
String newflag="";
List<Map<String,Object>> labInstrlist=new ArrayList<Map<String,Object>>();
for(LabInstr labInstr:labInstr1){
String newflag0="";
String yq=labInstr.getYq().trim();
Optional<ComOpt> comOptList0 = comOptlist.stream().filter(instr -> yq.toUpperCase().equals(instr.getYq().trim().toUpperCase())).findFirst();
if(!comOptList0.isPresent()) {
newflag0="1";
newflag="1";
}
Map<String, Object> map0 = new HashMap<String, Object>();
map0.put("id", labInstr.getYq().trim());
map0.put("label", labInstr.getYqmc());
map0.put("lx", labInstr.getLisgroup());
map0.put("newflag", newflag0);
labInstrlist.add(map0);
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", "-1");
map.put("label", "未分组");
map.put("children", labInstrlist);
map.put("newflag", newflag);
list.add(map);
}
// List<Map<String,Object>> list = comOptMapper.queryTree();
return new Result("0","查询成功!",list);
}