This commit is contained in:
tangw 2026-02-12 16:40:50 +08:00
parent c608000793
commit 03fbbea28a
6 changed files with 104 additions and 26 deletions

View File

@ -8,11 +8,10 @@ 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 org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/stats")
@ -27,8 +26,8 @@ public class StatsController extends BaseController{
return statsService.getTemplate(StatsCode);
}
@ApiOperation("查询")
@GetMapping(value = "/query")
public Result query(List<ComStatsParameter> list) {
@PostMapping(value = "/query")
public Result query(@RequestBody Map<String,Object> list) {
return statsService.query(list);
}
}

View File

@ -3,6 +3,7 @@ package com.czlis.liswork.mapper.xtwh;
import com.czlis.common.core.domain.entity.lis.ComLocalconfig;
import java.util.List;
import java.util.Map;
public interface LocalconfigMapper {
@ -16,4 +17,5 @@ public interface LocalconfigMapper {
int delComLocalconfigBymac(String smac);
int delComLocalconfigByIds(Long[] sids);
int updateComLocalconfig(ComLocalconfig comLocalconfig);
List<Map<String,Object>> selectinstrgroupmain();
}

View File

@ -4,8 +4,9 @@ import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.ComStatsParameter;
import java.util.List;
import java.util.Map;
public interface StatsService {
Result getTemplate(String StatsCode);
Result query(List<ComStatsParameter> list);
Result query(Map<String,Object> list);
}

View File

@ -4,6 +4,7 @@ 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.CalcUtils;
import com.czlis.interfaceCommon.utils.LisUtil;
import com.czlis.interfaceCommon.utils.LisWorkUtils;
import com.czlis.liswork.mapper.xtwh.ComStatsParameterMapper;
@ -13,10 +14,7 @@ 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.*;
import java.util.stream.Collectors;
@Service
@Slf4j
@ -29,6 +27,9 @@ public class StatsServiceImpl implements StatsService {
LisWorkUtils lisWorkUtils;
@Override
public Result getTemplate(String statsCode){
if(statsCode==null||"".equals(statsCode)){
return new Result("-1","模板代码未传");
}
ComStatsTemplate Stats=new ComStatsTemplate();
Stats.setStatsCode(statsCode);
List<ComStatsTemplate> Statslist= comStatsTemplateMapper.selectComStatsTemplateList(Stats);
@ -42,7 +43,7 @@ public class StatsServiceImpl implements StatsService {
if(list==null||list.size()==0)return new Result("-1","未找到该模板参数");
List<ComStatsParameter> columnlist=list.stream().filter(ss->"1".equals(ss.getParamType())||"2".equals(ss.getParamType())||"6".equals(ss.getParamType())).collect(Collectors.toList());
List<ComStatsParameter> summarylist=list.stream().filter(ss->"3".equals(ss.getParamType())).collect(Collectors.toList());
List<ComStatsParameter> parameter=list.stream().filter(ss->"0".equals(ss.getParamType())).collect(Collectors.toList());
List<ComStatsParameter> parameter=list.stream().filter(ss->"0".equals(ss.getParamType())||"2".equals(ss.getParamType())).collect(Collectors.toList());
List<ComStatsParameter> subquery=list.stream().filter(ss->"4".equals(ss.getParamType())).collect(Collectors.toList());
if(parameter!=null&&parameter.size()>0){
for(ComStatsParameter p:parameter){
@ -57,6 +58,7 @@ public class StatsServiceImpl implements StatsService {
break;
case "[today]":
p.setParamDefvalue(LisUtil.getDateString(new Date()));
break;
case "[now]":
p.setParamDefvalue(LisUtil.getTimeString(new Date()));
break;
@ -84,9 +86,46 @@ public class StatsServiceImpl implements StatsService {
return new Result("0","成功",map);
}
@Override
public Result query(List<ComStatsParameter> list){
if(list==null||list.size()==0)return new Result("-1","入参为空");
public Result query(Map<String,Object> list){
if(list==null||list.isEmpty())return new Result("-1","入参为空");
Object t=list.get("Template");
if(t==null )return new Result("-1","模板为空");
Object c=list.get("Column");
if(c==null )return new Result("-1","字段为空");
Object p=list.get("Parameter");
if(p==null )return new Result("-1","筛选条件为空");
ComStatsTemplate template=(ComStatsTemplate)t;
List<ComStatsParameter> column=(List<ComStatsParameter>)c;
List<ComStatsParameter> parameterlist=(List<ComStatsParameter>)p;
String statsSql=template.getStatsSql();
if(statsSql==null)return new Result("-1","sql语句为空");
String where="";
for(ComStatsParameter parameter :parameterlist){
String precondition=parameter.getPrecondition();
Result result=checkprecondition(precondition,parameterlist);
if(!"0".equals(result.getCode()))return result;
boolean flag=(boolean)result.getData();
if(flag){
where=where+" "+parameter.getParamSql();
}
}
Map<String,Object> map=new HashMap<>();
return new Result("0","成功",map);
return new Result("0","成功",statsSql+where);
}
private Result checkprecondition(String precondition,List<ComStatsParameter> parameterlist) {
Map<String, String> variables = new HashMap<>();
String[] parameters = CalcUtils.getParameters(precondition);
for (String itemcode : parameters) {
Optional<ComStatsParameter> temp=parameterlist.stream().filter(ss->itemcode.equals(ss.getParamCode())).findAny();
if(temp.isPresent()) {
variables.put(itemcode, temp.get().getParamDefvalue());
}else{
return new Result("-1","有参数未定义"+itemcode);
}
}
boolean flag = CalcUtils.getBooleanFromCalc(precondition, variables);
return new Result("0","成功",flag);
}
}

View File

@ -180,18 +180,53 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService {
@Override
public Object getComDicts(String zdlb) {
if ("INSTR".equals(zdlb)||"instr".equals(zdlb)||"yq".equals(zdlb)) {
return getInstr();
}else if (zdlb.contains("item:")) {
String yq=zdlb.trim().substring(5);
return getitem(yq);
}else if ("barcode".equals(zdlb)) {
return getreportdict("1");
} else if ("reback".equals(zdlb)) {
return getreportdict("2");
switch (zdlb){
case "INSTR":
case "instr":
case "yq":
return getInstr("");
case "barcode":
return getreportdict("1");
case "reback":
return getreportdict("2");
case "fzdh":
return getfzdh();
case "USR":
return getusr();
default:
if (zdlb.contains("item:")) {
String yq=zdlb.trim().substring(5);
return getitem(yq);
}
if (zdlb.contains("INSTR:")) {
String lisgroup=zdlb.trim().substring(6);
return getInstr(lisgroup);
}
}
return commonUtil.getComDictList(zdlb);
}
public List<Map<String, String>> getusr() {
List<Map<String, String>> list = new ArrayList<>();
List<ComUsr> usrlist = commonUtil.getComUsrList("");
for (ComUsr xmInfo : usrlist) {
Map<String, String> map = new HashMap<>();
map.put("zddh", xmInfo.getYhdh());
map.put("zdmc", xmInfo.getYhxm());
list.add(map);
}
return list;
}
public List<Map<String, String>> getfzdh() {
List<Map<String, String>> list = new ArrayList<>();
List<Map<String, Object>> xmInfolist = localconfigMapper.selectinstrgroupmain();
for (Map<String, Object> xmInfo : xmInfolist) {
Map<String, String> map = new HashMap<>();
map.put("zddh", xmInfo.get("fzdh").toString());
map.put("zdmc", xmInfo.get("fzmc").toString());
list.add(map);
}
return list;
}
public List<Map<String, String>> getreportdict(String type) {
List<Map<String, String>> list = new ArrayList<>();
List<ComReportDict> xmInfolist = comReportDictMapper.selectComReportDictByType(type);
@ -214,7 +249,7 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService {
}
return list;
}
public List<Map<String, String>> getInstr() {
public List<Map<String, String>> getInstr(String lisgroup) {
List<Map<String, String>> list = new ArrayList<>();
String yljg = getYLJG();
if (yljg == null) {
@ -222,7 +257,7 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService {
List<ComUsr> ComUsrlist = commonUtil.getComUsrList(yhdh);
yljg = ComUsrlist.get(0).getYljg();
}
List<LabInstr> labInstrlist = commonUtil.querybylisgroup("", yljg, "0");
List<LabInstr> labInstrlist = commonUtil.querybylisgroup(lisgroup, yljg, "0");
for (LabInstr labInstr : labInstrlist) {
Map<String, String> map = new HashMap<>();
map.put("zddh", labInstr.getYq().trim());

View File

@ -33,7 +33,9 @@
select * from com_localconfig
order by sid
</select>
<select id="selectinstrgroupmain" resultType="map">
select fzdh,fzmc from lab_instrgroupmain
</select>
<insert id="insertComLocalconfig" parameterType="com.czlis.common.core.domain.entity.lis.ComLocalconfig" useGeneratedKeys="true" keyProperty="sid">
insert into com_localconfig(
<if test="sid != null and sid != 0">sid,</if>