Merge remote-tracking branch 'origin/master'

master
philip 4 years ago
commit 9d0786e2e2

@ -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<String> fieldValueList;
private List<Map<String, Object>> fieldValueList;
//增加insert所需字段
private String site;
@ -177,10 +178,11 @@ public class CustomReportSearchConditionConfig {
this.columnWidthPercent = columnWidthPercent;
}
public List<String> getFieldValueList() {
public List<Map<String, Object>> getFieldValueList() {
return fieldValueList;
}
public void setFieldValueList(List<String> fieldValueList) {
public void setFieldValueList(List<Map<String, Object>> fieldValueList) {
this.fieldValueList = fieldValueList;
}
}

@ -115,28 +115,47 @@ public class CustomReportImpl implements CustomReportInterface {
int k=0;
for(CustomReportSearchConditionConfig searchConditionConfig:conditionConfigList)
{
if(searchConditionConfig.getDailogCheckboxSQL().trim().isEmpty())
{
if (searchConditionConfig.getDailogCheckboxSQL().trim().isEmpty()) {
conditionConfigList.get(k).setFieldValueList(new ArrayList());
}else
{
} else {
String dictOrSql = searchConditionConfig.getDailogCheckboxSQL();
if (dictOrSql.startsWith("SELECT".toUpperCase())) {
//当 弹出复选框数据获取SQL 有值时依SQL获取相应的字段值列表
//List<Map<String, Object>> result=logicService.executeQuery(site, searchConditionConfig.getDailogCheckboxSQL().trim(), new HashMap<String,Object>());
List<Map<String, Object>> result = customReportMapper.executeSqlQuery( searchConditionConfig.getDailogCheckboxSQL().trim() );
if(result.size()>0)
{
List<String> lst=new ArrayList<String>();
for(Map<String,Object> m:result)
{
for(String key:m.keySet())
{
lst.add(m.get(key).toString());
List<Map<String, Object>> result = customReportMapper.executeSqlQuery(dictOrSql.trim());
if (result.size() > 0) {
List<Map<String, Object>> lst = new ArrayList<>();
for (Map<String, Object> m : result) {
Map<String, Object> _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<Map<String, Object>> mapList = new ArrayList<>();
Map<String, Object> _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);
}
}
}
k++;
@ -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<CustomReportSearchConditionDynSQLConfig> dynSQLConfigList=new ArrayList<CustomReportSearchConditionDynSQLConfig>();
param = new HashMap<String, Object>();
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<String,Object> siteParam=new HashMap<String, Object>();
//siteParam.put("SITE", site);
//替换站点 2021/08/19
querySentence = querySentence.replace(":SITE","\'"+site+"\'");
//3.执行查询
//List<Map<String, Object>> result=logicService.executeQuery(site, querySentence,siteParam);
List<Map<String, Object>> result= customReportMapper.executeSqlQuery( querySentence );
@ -289,7 +297,5 @@ public class CustomReportImpl implements CustomReportInterface {
}
return result;
}
}

@ -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<SelfReport> {
List<SelfReport> selectListByCondition(@Param("ew") QueryWrapper<SelfReport> ew, @Param("locale") String locale, @Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime);
List<SelfReport> selectListByCondition(@Param("ew") QueryWrapper<SelfReport> ew, @Param("locale") String locale, @Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime, @Param("userGroupList")List<UserGroup> userGroupList);
}

@ -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<SelfReportMapper, SelfRep
private CommonService commonService;
@Autowired
private NcCodeService ncCodeService;
@Autowired
private UserGroupMapper userGroupMapper;
@Override
public IPage<SelfReport> selectPage(FrontPage<SelfReport> frontPage, SelfReport selfReport) {
@ -76,7 +80,18 @@ public class SelfReportServiceImpl extends ServiceImpl<SelfReportMapper, SelfRep
}
@Override
public List<SelfReport> selectList(QueryWrapper<SelfReport> queryWrapper, String locale, LocalDate startTime, LocalDate endTime) {
return selfReportMapper.selectListByCondition(queryWrapper,locale,startTime,endTime);
String site = CommonMethods.getSite();
String user = CommonMethods.getUser();
List<UserGroup> 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

@ -586,6 +586,17 @@
<if test="ew.entity.createdDateTime!=null"> AND ZSR.CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if>
<if test="ew.entity.modifyUser!=null"> AND ZSR.MODIFY_USER=#{ew.entity.modifyUser}</if>
<if test="ew.entity.modifiedDateTime!=null"> AND ZSR.MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}</if>
<if test="userGroupList != null">
<if test="userGroupList.size &lt;= 0">
AND 1 = 2
</if>
<if test="userGroupList.size > 0">
AND ZSR.REPORT_USER_GROUP IN
<foreach item="item" index="index" collection="userGroupList" separator="," open="(" close=")">
UPPER(#{item.userGroup})
</foreach>
</if>
</if>
</if>
<if test="startTime!=null"> AND ZSR.CREATED_DATE_TIME >=#{startTime}</if>
<if test="endTime!=null"> AND ZSR.CREATED_DATE_TIME &lt;=#{endTime}</if>

Loading…
Cancel
Save