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 String updateBy;
private Date updateTime; private Date updateTime;
private String remark; private String remark;
private String yq;
} }

View File

@ -13,9 +13,5 @@ public class ComOpt {
private String xxlb; private String xxlb;
private String xxqz; private String xxqz;
private String bz; 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; package com.czlis.interfaceCommon.mapper;
import com.czlis.common.core.domain.entity.lis.ComOpt; 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 org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
public interface ComOptMapper { public interface ComOptMapper {
ComOpt getComOptOne(@Param("yq") String yq,@Param("xxdh") String xxdh); ComOpt getComOptOne(@Param("yq") String yq,@Param("xxdh") String xxdh);
String getComOptValue(@Param("yq") String yq,@Param("xxdh") String xxdh); String getComOptValue(@Param("yq") String yq,@Param("xxdh") String xxdh);
List<ComOpt> getComOptList(ComOpt comOpt); List<ComOpt> getComOptList(ComOpt comOpt);
void add(ComOpt comOpt); void add(ComOpt comOpt);
void update(ComOpt comOpt); void update(ComOpt comOpt);
void delete(@Param("yq") String yq,@Param("xxdh") String xxdh); 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="xxdh != null and xxdh != ''"> and xxdh = #{xxdh}</if>
<if test="xxlb != null and xxlb != ''"> and xxlb = #{xxlb}</if> <if test="xxlb != null and xxlb != ''"> and xxlb = #{xxlb}</if>
<if test="xxqz != null and xxqz != ''"> and xxqz = #{xxqz}</if> <if test="xxqz != null and xxqz != ''"> and xxqz = #{xxqz}</if>
<![CDATA[and yq is not null and yq <> '']]>
</where> </where>
order by optsort
</select> </select>
<insert id="add"> <insert id="add">
insert into com_opt( insert into com_opt(
<if test="bz != null and bz !=''">bz,</if> <if test="bz != null and bz !=''">bz,</if>
yq,xxdh,xxlb,xxqz,lx yq,xxdh,xxlb,xxqz
)values( )values(
<if test="bz != null and bz !=''">#{bz},</if> <if test="bz != null and bz !=''">#{bz},</if>
#{yq},#{xxdh},#{xxlb},#{xxqz},#{lx} #{yq},#{xxdh},#{xxlb},#{xxqz}
) )
</insert> </insert>
@ -45,39 +43,8 @@
delete from com_opt where yq = #{yq} and xxdh = #{xxdh} delete from com_opt where yq = #{yq} and xxdh = #{xxdh}
</delete> </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> </mapper>

View File

@ -1,5 +1,6 @@
package com.czlis.system.web.service; package com.czlis.system.web.service;
import com.alibaba.fastjson2.JSON;
import com.czlis.common.constant.CacheConstants; import com.czlis.common.constant.CacheConstants;
import com.czlis.common.constant.Constants; import com.czlis.common.constant.Constants;
import com.czlis.common.constant.UserConstants; import com.czlis.common.constant.UserConstants;
@ -62,8 +63,13 @@ public class SysLoginService {
@Autowired @Autowired
private SysUserMapper userMapper; private SysUserMapper userMapper;
public String getLocalconfig(String smac){ public Map<String, Object> getLocalconfig(String smac){
return commonUtil.getLocalconfig(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(){ public Map<String,String> getOEM(){
Map<String,String> oem=new HashMap<>(); 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.Anonymous;
import com.czlis.common.annotation.Log; import com.czlis.common.annotation.Log;
import com.czlis.common.core.controller.BaseController; 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.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.ComOpt;
import com.czlis.common.core.domain.entity.lis.ComOptTemplate; import com.czlis.common.core.domain.entity.lis.ComOptTemplate;
import com.czlis.common.core.domain.entity.lis.LabPat; import com.czlis.common.core.domain.entity.lis.LabPat;
@ -16,6 +18,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -29,48 +32,17 @@ public class ComOptController extends BaseController {
@Autowired @Autowired
private ComOptService comOptService; private ComOptService comOptService;
@Autowired
CommonUtil commonUtil;
@ApiOperation("查询参数列表") @ApiOperation("查询参数列表")
@GetMapping("/query") @GetMapping("/query")
public TableDataInfo getComOptList(ComOpt comOpt) { public Result getComOptList(String yq) {
startPage(); return comOptService.getComOptList(yq);
List<ComOpt> comOptList = comOptService.getComOptList(comOpt);
return getDataTable(comOptList);
} }
@ApiOperation("整体保存本地参数")
@Log(title = SysLogConstants.COMOPT_LOG,businessType = BusinessType.INSERT) @Log(title = "整体保存本地参数", businessType = BusinessType.UPDATE)
@ApiOperation("新增参数") @PutMapping("/update")
@PostMapping("/add") public Result saveopt(@Validated @RequestBody List<ComConfigDict> posts) {
public Result add(@RequestBody ComOpt comOpt) { return comOptService.saveopt(posts) ;
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("查询参数列表树状结构") @ApiOperation("查询参数列表树状结构")
@ -78,11 +50,10 @@ public class ComOptController extends BaseController {
public Result queryTree(){ public Result queryTree(){
return comOptService.queryTree(); return comOptService.queryTree();
} }
@ApiOperation("查询参数默认值")
@ApiOperation("获取单个参数的值") @GetMapping("/getdef")
@GetMapping("/queryOne") public Result getdef(){
public Result getParamOne(String yq,String xxdh){ return comOptService.getdef();
String value = commonUtil.getComOptValue(yq, xxdh);
return new Result("0","获取成功!",value);
} }
} }

View File

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

View File

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

View File

@ -1,96 +1,183 @@
package com.czlis.liswork.service.impl.xtwh; package com.czlis.liswork.service.impl.xtwh;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.ComOpt; import com.czlis.common.core.domain.entity.lis.*;
import com.czlis.common.core.domain.entity.lis.ComOptTemplate;
import com.czlis.common.core.domain.entity.lis.LabInstr;
import com.czlis.common.utils.ComOptionUtils; 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.mapper.ComOptMapper;
import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.interfaceCommon.utils.CommonUtil;
import com.czlis.liswork.service.ComConfigDictService;
import com.czlis.liswork.service.ComOptService; import com.czlis.liswork.service.ComOptService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.*;
import java.util.Map; import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
public class ComOptServiceImpl implements ComOptService { public class ComOptServiceImpl implements ComOptService {
@Autowired
ComConfigDictService ComConfigDictService;
@Autowired @Autowired
private ComOptMapper comOptMapper; private ComOptMapper comOptMapper;
@Autowired @Autowired
private CommonUtil commonUtil; private CommonUtil commonUtil;
@Override @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); 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) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Result add(ComOpt comOpt) { public Result saveopt(List<ComConfigDict> list) {
comOptMapper.add(comOpt); if (list.isEmpty() || list == null) return new Result("", "", list);
//设置缓存 String yq = list.get(0).getYq();
ComOptionUtils.setOptCache(comOpt.getYq(),comOpt.getXxdh(),comOpt); ComOpt comOpts = new ComOpt();
return new Result("0","新增成功!"); comOpts.setYq(yq);
} List<ComOpt> comOptList = comOptMapper.getComOptList(comOpts);
for (ComConfigDict comConfigDict : list) {
@Transactional(rollbackFor = Exception.class) if (!comOptList.isEmpty() && comOptList != null) {
@Override String ConfigCode = comConfigDict.getConfigCode();
public Result update(ComOpt comOpt) { 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); comOptMapper.update(comOpt);
//设置缓存 //设置缓存
ComOptionUtils.setOptCache(comOpt.getYq(),comOpt.getXxdh(),comOpt); ComOptionUtils.setOptCache(comOpt.getYq(), comOpt.getXxdh(), comOpt);
return new Result("0","修改数据成功!");
} }
} else {
@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;
ComOpt comOpt = new ComOpt(); ComOpt comOpt = new ComOpt();
comOpt.setYq(yq); comOpt.setYq(yq);
comOpt.setXxdh(comOptTemplate.getComtype()); comOpt.setXxlb("SYS");
comOpt.setXxlb("INSTR"); comOpt.setXxdh(comConfigDict.getConfigCode());
comOpt.setXxqz(comOptTemplate.getOptdefault()); comOpt.setXxqz(comConfigDict.getConfigDefvalue());
comOpt.setBz(comOptTemplate.getBz()); comOpt.setBz(comConfigDict.getConfigName());
comOpt.setOpttype(comOptTemplate.getOpttype()); comOptMapper.add(comOpt);
comOpt.setScope(comOptTemplate.getScope());
comOpt.setOptSort(comOptTemplate.getOptSort());
add(comOpt);
} }
}
return new Result("0","添加模版参数成功!"); }
return new Result("0", "修改数据成功!");
} }
@Override @Override
public Result queryTree() { 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); return new Result("0","查询成功!",list);
} }