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 index bca1f7c..c3e5f78 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/stats/StatsController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/stats/StatsController.java @@ -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 list) { + @PostMapping(value = "/query") + public Result query(@RequestBody Map list) { return statsService.query(list); } } diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LocalconfigMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LocalconfigMapper.java index 8585e45..36533c4 100644 --- a/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LocalconfigMapper.java +++ b/liswork/src/main/java/com/czlis/liswork/mapper/xtwh/LocalconfigMapper.java @@ -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> selectinstrgroupmain(); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/StatsService.java b/liswork/src/main/java/com/czlis/liswork/service/StatsService.java index 456893b..507b9de 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/StatsService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/StatsService.java @@ -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 list); + Result query(Map 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 index df0f1a9..9e83aa3 100644 --- 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 @@ -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 Statslist= comStatsTemplateMapper.selectComStatsTemplateList(Stats); @@ -42,7 +43,7 @@ public class StatsServiceImpl implements StatsService { 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 parameter=list.stream().filter(ss->"0".equals(ss.getParamType())||"2".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){ @@ -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 list){ - if(list==null||list.size()==0)return new Result("-1","入参为空"); + public Result query(Map 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 column=(List)c; + List parameterlist=(List)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 map=new HashMap<>(); - return new Result("0","成功",map); + return new Result("0","成功",statsSql+where); } + private Result checkprecondition(String precondition,List parameterlist) { + Map variables = new HashMap<>(); + String[] parameters = CalcUtils.getParameters(precondition); + for (String itemcode : parameters) { + Optional 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); + } + + } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComLocalconfigServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComLocalconfigServiceImpl.java index 5dc815b..b348ff2 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComLocalconfigServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/xtwh/ComLocalconfigServiceImpl.java @@ -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> getusr() { + List> list = new ArrayList<>(); + List usrlist = commonUtil.getComUsrList(""); + for (ComUsr xmInfo : usrlist) { + Map map = new HashMap<>(); + map.put("zddh", xmInfo.getYhdh()); + map.put("zdmc", xmInfo.getYhxm()); + list.add(map); + } + return list; + } + public List> getfzdh() { + List> list = new ArrayList<>(); + List> xmInfolist = localconfigMapper.selectinstrgroupmain(); + for (Map xmInfo : xmInfolist) { + Map map = new HashMap<>(); + map.put("zddh", xmInfo.get("fzdh").toString()); + map.put("zdmc", xmInfo.get("fzmc").toString()); + list.add(map); + } + return list; + } public List> getreportdict(String type) { List> list = new ArrayList<>(); List xmInfolist = comReportDictMapper.selectComReportDictByType(type); @@ -214,7 +249,7 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService { } return list; } - public List> getInstr() { + public List> getInstr(String lisgroup) { List> list = new ArrayList<>(); String yljg = getYLJG(); if (yljg == null) { @@ -222,7 +257,7 @@ public class ComLocalconfigServiceImpl implements ComLocalconfigService { List ComUsrlist = commonUtil.getComUsrList(yhdh); yljg = ComUsrlist.get(0).getYljg(); } - List labInstrlist = commonUtil.querybylisgroup("", yljg, "0"); + List labInstrlist = commonUtil.querybylisgroup(lisgroup, yljg, "0"); for (LabInstr labInstr : labInstrlist) { Map map = new HashMap<>(); map.put("zddh", labInstr.getYq().trim()); diff --git a/liswork/src/main/resources/mapper/ComLocalconfigMapper.xml b/liswork/src/main/resources/mapper/ComLocalconfigMapper.xml index 108921b..6d273d9 100644 --- a/liswork/src/main/resources/mapper/ComLocalconfigMapper.xml +++ b/liswork/src/main/resources/mapper/ComLocalconfigMapper.xml @@ -33,7 +33,9 @@ select * from com_localconfig order by sid - + insert into com_localconfig( sid,