diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/CustomReportSearchConditionConfig.java b/common/src/main/java/com/foreverwin/mesnac/common/model/CustomReportSearchConditionConfig.java index 6115c787..c435de55 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/model/CustomReportSearchConditionConfig.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/CustomReportSearchConditionConfig.java @@ -2,6 +2,7 @@ package com.foreverwin.mesnac.common.model; import java.util.Date; import java.util.List; +import java.util.Map; /** * @@ -33,7 +34,7 @@ public class CustomReportSearchConditionConfig { private Integer columnID; private Integer columnWidthPercent; //自定义报表 Load后需赋上初值 - private List fieldValueList; + private List> fieldValueList; //增加insert所需字段 private String site; @@ -177,10 +178,11 @@ public class CustomReportSearchConditionConfig { this.columnWidthPercent = columnWidthPercent; } - public List getFieldValueList() { + public List> getFieldValueList() { return fieldValueList; } - public void setFieldValueList(List fieldValueList) { + + public void setFieldValueList(List> fieldValueList) { this.fieldValueList = fieldValueList; } } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CustomReportImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CustomReportImpl.java index 74b875c9..2b8e8626 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CustomReportImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CustomReportImpl.java @@ -115,27 +115,46 @@ public class CustomReportImpl implements CustomReportInterface { int k=0; for(CustomReportSearchConditionConfig searchConditionConfig:conditionConfigList) { - if(searchConditionConfig.getDailogCheckboxSQL().trim().isEmpty()) - { - conditionConfigList.get(k).setFieldValueList(new ArrayList()); - }else - { - //当 弹出复选框数据获取SQL 有值时,依SQL获取相应的字段值列表 + if (searchConditionConfig.getDailogCheckboxSQL().trim().isEmpty()) { - //List> result=logicService.executeQuery(site, searchConditionConfig.getDailogCheckboxSQL().trim(), new HashMap()); - List> result = customReportMapper.executeSqlQuery( searchConditionConfig.getDailogCheckboxSQL().trim() ); - if(result.size()>0) - { - List lst=new ArrayList(); - - for(Map m:result) - { - for(String key:m.keySet()) - { - lst.add(m.get(key).toString()); + conditionConfigList.get(k).setFieldValueList(new ArrayList()); + } else { + String dictOrSql = searchConditionConfig.getDailogCheckboxSQL(); + if (dictOrSql.startsWith("SELECT".toUpperCase())) { + //当 弹出复选框数据获取SQL 有值时,依SQL获取相应的字段值列表 + //List> result=logicService.executeQuery(site, searchConditionConfig.getDailogCheckboxSQL().trim(), new HashMap()); + List> result = customReportMapper.executeSqlQuery(dictOrSql.trim()); + if (result.size() > 0) { + List> lst = new ArrayList<>(); + for (Map m : result) { + Map _map = new HashMap<>(); + for (String key : m.keySet()) { + _map.put("key", m.get(key)); + _map.put("text", m.get(key)); + break; + } + lst.add(_map); } + conditionConfigList.get(k).setFieldValueList(lst); + } + } else if (dictOrSql.contains("*") && dictOrSql.contains(";")) { + String[] dictOrSqlArray = dictOrSql.split(";"); + if (dictOrSqlArray != null && dictOrSqlArray.length > 0) { + List> mapList = new ArrayList<>(); + + Map _map = null; + for (int i = 0; i < dictOrSqlArray.length; i++) { + String keyValue = dictOrSqlArray[i]; + if (!keyValue.contains("*")) { + continue; + } + _map = new HashMap<>(); + _map.put("key", keyValue.split("\\*")[0]); + _map.put("text", keyValue.split("\\*")[1]); + mapList.add(_map); + } + conditionConfigList.get(k).setFieldValueList(mapList); } - conditionConfigList.get(k).setFieldValueList(lst); } } @@ -202,24 +221,15 @@ public class CustomReportImpl implements CustomReportInterface { if(querySentence.trim().isEmpty()) { - //70502.simple=请在检索语句配置栏填写 SQL语句 - //throw Exceptions.convert(new BasicBOBeanException(70502,new Data())); throw new RuntimeException("请在检索语句配置栏填写 SQL语句"); } - param=null; //2.依定的规则 检索语句中需替换的内容 以 :开头,所以此处依:先做下判断是否有需替换的内容 - if(querySentence.indexOf(":")>1) { //处理需替换的数据 - - //自定义报表_检索条件动态SQL配置 - List dynSQLConfigList=new ArrayList(); - - - param = new HashMap(); + param = new HashMap(); param.put("MAINHANDLE", "CustomReportBO:*,"+reportID); //map=logicService.executeQuery(site, QUERY_DYNSQLCONFIG_SQL, param); @@ -235,10 +245,8 @@ public class CustomReportImpl implements CustomReportInterface { } - if(object.getString(dynSqlConfigMap.get(i).toString())==null || object.getString(dynSqlConfigMap.get(i).getConditionField()).isEmpty()) + if( dynSqlConfigMap == null || dynSqlConfigMap.get(i)==null || object.getString(dynSqlConfigMap.get(i).getConditionField()) == null) { - //当前台的json格式字串中没有 依赖条件的值时,即表示查询条件中无此项,可直接赋空字串 - //queryMap.put(map.get(i).get("DYN_CONDITION_REPLACE_FIELD").toString().trim(), ""); querySentence=querySentence.replaceAll(dynSqlConfigMap.get(i).getDynConditionReplaceField().trim(), " "); }else @@ -268,11 +276,11 @@ public class CustomReportImpl implements CustomReportInterface { } - //3.执行查询 - Map siteParam=new HashMap(); - //siteParam.put("SITE", site); + //替换站点 2021/08/19 querySentence = querySentence.replace(":SITE","\'"+site+"\'"); + + //3.执行查询 //List> result=logicService.executeQuery(site, querySentence,siteParam); List> result= customReportMapper.executeSqlQuery( querySentence ); @@ -289,7 +297,5 @@ public class CustomReportImpl implements CustomReportInterface { } return result; - } - } diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/mapper/SelfReportMapper.java b/quality/src/main/java/com/foreverwin/mesnac/quality/mapper/SelfReportMapper.java index b55e5bba..d9f8f19b 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/mapper/SelfReportMapper.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/mapper/SelfReportMapper.java @@ -2,6 +2,7 @@ package com.foreverwin.mesnac.quality.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.foreverwin.mesnac.meapi.model.UserGroup; import com.foreverwin.mesnac.quality.model.SelfReport; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -20,5 +21,5 @@ import java.util.List; @Repository public interface SelfReportMapper extends BaseMapper { - List selectListByCondition(@Param("ew") QueryWrapper ew, @Param("locale") String locale, @Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime); + List selectListByCondition(@Param("ew") QueryWrapper ew, @Param("locale") String locale, @Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime, @Param("userGroupList")List userGroupList); } \ No newline at end of file diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java index f2b44e84..07ee55f7 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java @@ -13,6 +13,8 @@ import com.foreverwin.mesnac.common.service.CommonService; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.dto.NcCodeDto; import com.foreverwin.mesnac.meapi.dto.SfcDto; +import com.foreverwin.mesnac.meapi.mapper.UserGroupMapper; +import com.foreverwin.mesnac.meapi.model.UserGroup; import com.foreverwin.mesnac.meapi.service.NcCodeService; import com.foreverwin.mesnac.production.mapper.SfcCrossMapper; import com.foreverwin.mesnac.quality.dto.SelfReportRequest; @@ -60,6 +62,8 @@ public class SelfReportServiceImpl extends ServiceImpl selectPage(FrontPage frontPage, SelfReport selfReport) { @@ -76,7 +80,18 @@ public class SelfReportServiceImpl extends ServiceImpl selectList(QueryWrapper queryWrapper, String locale, LocalDate startTime, LocalDate endTime) { - return selfReportMapper.selectListByCondition(queryWrapper,locale,startTime,endTime); + String site = CommonMethods.getSite(); + String user = CommonMethods.getUser(); + List userGroupList = userGroupMapper.findUserGroupListByUser(site, user); + //ADMINISTRATORS,如果有的话就等于null + for (UserGroup userGroup : userGroupList){ + if("ADMINISTRATORS".equals(userGroup.getUserGroup())){ + userGroupList = null; + break; + } + } + + return selfReportMapper.selectListByCondition(queryWrapper,locale,startTime,endTime,userGroupList); } @Override diff --git a/quality/src/main/resources/mapper/SelfReportMapper.xml b/quality/src/main/resources/mapper/SelfReportMapper.xml index 03f8b45b..de56462e 100644 --- a/quality/src/main/resources/mapper/SelfReportMapper.xml +++ b/quality/src/main/resources/mapper/SelfReportMapper.xml @@ -586,6 +586,17 @@ AND ZSR.CREATED_DATE_TIME=#{ew.entity.createdDateTime} AND ZSR.MODIFY_USER=#{ew.entity.modifyUser} AND ZSR.MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + AND 1 = 2 + + + AND ZSR.REPORT_USER_GROUP IN + + UPPER(#{item.userGroup}) + + + AND ZSR.CREATED_DATE_TIME >=#{startTime} AND ZSR.CREATED_DATE_TIME <=#{endTime}