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.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* *
@ -33,7 +34,7 @@ public class CustomReportSearchConditionConfig {
private Integer columnID; private Integer columnID;
private Integer columnWidthPercent; private Integer columnWidthPercent;
//自定义报表 Load后需赋上初值 //自定义报表 Load后需赋上初值
private List<String> fieldValueList; private List<Map<String, Object>> fieldValueList;
//增加insert所需字段 //增加insert所需字段
private String site; private String site;
@ -177,10 +178,11 @@ public class CustomReportSearchConditionConfig {
this.columnWidthPercent = columnWidthPercent; this.columnWidthPercent = columnWidthPercent;
} }
public List<String> getFieldValueList() { public List<Map<String, Object>> getFieldValueList() {
return fieldValueList; return fieldValueList;
} }
public void setFieldValueList(List<String> fieldValueList) {
public void setFieldValueList(List<Map<String, Object>> fieldValueList) {
this.fieldValueList = fieldValueList; this.fieldValueList = fieldValueList;
} }
} }

@ -115,27 +115,46 @@ public class CustomReportImpl implements CustomReportInterface {
int k=0; int k=0;
for(CustomReportSearchConditionConfig searchConditionConfig:conditionConfigList) for(CustomReportSearchConditionConfig searchConditionConfig:conditionConfigList)
{ {
if(searchConditionConfig.getDailogCheckboxSQL().trim().isEmpty()) if (searchConditionConfig.getDailogCheckboxSQL().trim().isEmpty()) {
{
conditionConfigList.get(k).setFieldValueList(new ArrayList());
}else
{
//当 弹出复选框数据获取SQL 有值时依SQL获取相应的字段值列表
//List<Map<String, Object>> result=logicService.executeQuery(site, searchConditionConfig.getDailogCheckboxSQL().trim(), new HashMap<String,Object>()); conditionConfigList.get(k).setFieldValueList(new ArrayList());
List<Map<String, Object>> result = customReportMapper.executeSqlQuery( searchConditionConfig.getDailogCheckboxSQL().trim() ); } else {
if(result.size()>0) String dictOrSql = searchConditionConfig.getDailogCheckboxSQL();
{ if (dictOrSql.startsWith("SELECT".toUpperCase())) {
List<String> lst=new ArrayList<String>(); //当 弹出复选框数据获取SQL 有值时依SQL获取相应的字段值列表
//List<Map<String, Object>> result=logicService.executeQuery(site, searchConditionConfig.getDailogCheckboxSQL().trim(), new HashMap<String,Object>());
for(Map<String,Object> m:result) List<Map<String, Object>> result = customReportMapper.executeSqlQuery(dictOrSql.trim());
{ if (result.size() > 0) {
for(String key:m.keySet()) List<Map<String, Object>> lst = new ArrayList<>();
{ for (Map<String, Object> m : result) {
lst.add(m.get(key).toString()); 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);
} }
conditionConfigList.get(k).setFieldValueList(lst);
} }
} }
@ -202,24 +221,15 @@ public class CustomReportImpl implements CustomReportInterface {
if(querySentence.trim().isEmpty()) if(querySentence.trim().isEmpty())
{ {
//70502.simple=请在检索语句配置栏填写 SQL语句
//throw Exceptions.convert(new BasicBOBeanException(70502,new Data()));
throw new RuntimeException("请在检索语句配置栏填写 SQL语句"); throw new RuntimeException("请在检索语句配置栏填写 SQL语句");
} }
param=null;
//2.依定的规则 检索语句中需替换的内容 以 :开头,所以此处依:先做下判断是否有需替换的内容 //2.依定的规则 检索语句中需替换的内容 以 :开头,所以此处依:先做下判断是否有需替换的内容
if(querySentence.indexOf(":")>1) if(querySentence.indexOf(":")>1)
{ {
//处理需替换的数据 //处理需替换的数据
param = new HashMap();
//自定义报表_检索条件动态SQL配置
List<CustomReportSearchConditionDynSQLConfig> dynSQLConfigList=new ArrayList<CustomReportSearchConditionDynSQLConfig>();
param = new HashMap<String, Object>();
param.put("MAINHANDLE", "CustomReportBO:*,"+reportID); param.put("MAINHANDLE", "CustomReportBO:*,"+reportID);
//map=logicService.executeQuery(site, QUERY_DYNSQLCONFIG_SQL, param); //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(), " "); querySentence=querySentence.replaceAll(dynSqlConfigMap.get(i).getDynConditionReplaceField().trim(), " ");
}else }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 //替换站点 2021/08/19
querySentence = querySentence.replace(":SITE","\'"+site+"\'"); querySentence = querySentence.replace(":SITE","\'"+site+"\'");
//3.执行查询
//List<Map<String, Object>> result=logicService.executeQuery(site, querySentence,siteParam); //List<Map<String, Object>> result=logicService.executeQuery(site, querySentence,siteParam);
List<Map<String, Object>> result= customReportMapper.executeSqlQuery( querySentence ); List<Map<String, Object>> result= customReportMapper.executeSqlQuery( querySentence );
@ -289,7 +297,5 @@ public class CustomReportImpl implements CustomReportInterface {
} }
return result; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.foreverwin.mesnac.meapi.model.UserGroup;
import com.foreverwin.mesnac.quality.model.SelfReport; import com.foreverwin.mesnac.quality.model.SelfReport;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -20,5 +21,5 @@ import java.util.List;
@Repository @Repository
public interface SelfReportMapper extends BaseMapper<SelfReport> { 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.common.util.StringUtil;
import com.foreverwin.mesnac.meapi.dto.NcCodeDto; import com.foreverwin.mesnac.meapi.dto.NcCodeDto;
import com.foreverwin.mesnac.meapi.dto.SfcDto; 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.meapi.service.NcCodeService;
import com.foreverwin.mesnac.production.mapper.SfcCrossMapper; import com.foreverwin.mesnac.production.mapper.SfcCrossMapper;
import com.foreverwin.mesnac.quality.dto.SelfReportRequest; import com.foreverwin.mesnac.quality.dto.SelfReportRequest;
@ -60,6 +62,8 @@ public class SelfReportServiceImpl extends ServiceImpl<SelfReportMapper, SelfRep
private CommonService commonService; private CommonService commonService;
@Autowired @Autowired
private NcCodeService ncCodeService; private NcCodeService ncCodeService;
@Autowired
private UserGroupMapper userGroupMapper;
@Override @Override
public IPage<SelfReport> selectPage(FrontPage<SelfReport> frontPage, SelfReport selfReport) { public IPage<SelfReport> selectPage(FrontPage<SelfReport> frontPage, SelfReport selfReport) {
@ -76,7 +80,18 @@ public class SelfReportServiceImpl extends ServiceImpl<SelfReportMapper, SelfRep
} }
@Override @Override
public List<SelfReport> selectList(QueryWrapper<SelfReport> queryWrapper, String locale, LocalDate startTime, LocalDate endTime) { 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 @Override

@ -586,6 +586,17 @@
<if test="ew.entity.createdDateTime!=null"> AND ZSR.CREATED_DATE_TIME=#{ew.entity.createdDateTime}</if> <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.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="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>
<if test="startTime!=null"> AND ZSR.CREATED_DATE_TIME >=#{startTime}</if> <if test="startTime!=null"> AND ZSR.CREATED_DATE_TIME >=#{startTime}</if>
<if test="endTime!=null"> AND ZSR.CREATED_DATE_TIME &lt;=#{endTime}</if> <if test="endTime!=null"> AND ZSR.CREATED_DATE_TIME &lt;=#{endTime}</if>

Loading…
Cancel
Save