Browse Source

Merge remote-tracking branch 'origin/dev_resi_export' into dev_resi_export

release
sunyuchao 3 years ago
parent
commit
af1f9fcc8e
  1. 3
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateFormDTO.java
  2. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResultDTO.java
  3. 9
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java
  4. 11
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java
  5. 4
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  6. 26
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  7. 69
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  8. 4
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml
  9. 28
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  10. 6
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

3
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateFormDTO.java

@ -1,7 +1,9 @@
package com.epmet.dto.form; package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.ExportGroup;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
@ -24,6 +26,7 @@ public class IcExportTemplateFormDTO implements Serializable {
/** /**
* 客户id * 客户id
*/ */
@NotBlank(message = "客户Id不能为空",groups = ExportGroup.class)
private String customerId; private String customerId;
/** /**

2
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResultDTO.java

@ -14,7 +14,7 @@ import java.util.List;
public class ConditionResultDTO implements Serializable { public class ConditionResultDTO implements Serializable {
private static final long serialVersionUID = -2021200288758478252L; private static final long serialVersionUID = -2021200288758478252L;
/** /**
* 父项ID * ID
*/ */
private String itemId; private String itemId;

9
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java

@ -2,6 +2,7 @@ package com.epmet.dto.result;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
@ -28,8 +29,14 @@ public class IcCustomExportResultDTO implements Serializable {
/** /**
* sql中要返回的 列名 顺序跟表头顺序一致 * sql中要返回的 列名 顺序跟表头顺序一致
*/ */
private List<SqlColumn> sqlColumns; private List<SqlColumn> showSqlColumns;
/**
* sql中要返回的关联的列 (与显示的要去重)
*/
private List<SqlColumn> hiddenSqlColumns;
@NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@Data @Data
public static class SqlColumn { public static class SqlColumn {

11
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java

@ -3,7 +3,6 @@ package com.epmet.dto.result;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
@ -47,6 +46,11 @@ public class IcExportTemplateForExportResultDTO implements Serializable {
*/ */
private Integer sort; private Integer sort;
/**
* itemId
*/
private String itemId;
/** /**
* 表名 * 表名
*/ */
@ -55,10 +59,9 @@ public class IcExportTemplateForExportResultDTO implements Serializable {
* 列名 * 列名
*/ */
private String columnName; private String columnName;
/** /**
* 子节点 * 只有远程获取的才有值
*/ */
private List<IcExportTemplateForExportResultDTO> children; private String optionSourceValue;
} }

4
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -25,8 +25,8 @@ import java.util.Set;
* @author yinzuomei@elink-cn.com * @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:16 * @date 2020/6/4 13:16
*/ */
// @FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class,url = "http://localhost:8089") @FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class,url = "http://localhost:8089")
@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class) //@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallbackFactory = OperCustomizeOpenFeignClientFallbackFactory.class)
public interface OperCustomizeOpenFeignClient { public interface OperCustomizeOpenFeignClient {
@PostMapping(value = "/oper/customize/customerfootbar/customerfootbars", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/oper/customize/customerfootbar/customerfootbars", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)

26
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java

@ -38,8 +38,10 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
List<ConditionResultDTO> selectConditionList(@Param("customerId") String customerId, @Param("formCode") String formCode); List<ConditionResultDTO> selectConditionList(@Param("customerId") String customerId, @Param("formCode") String formCode);
List<ConditionResultDTO> selectConditionListByGroupId(String groupId); List<ConditionResultDTO> selectConditionListByGroupId(String groupId);
/** /**
* 查询组件列表 * 查询组件列表
*
* @param customerId * @param customerId
* @param formCode * @param formCode
* @return * @return
@ -57,7 +59,7 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
* @author yinzuomei * @author yinzuomei
* @date 2021/11/1 12:58 下午 * @date 2021/11/1 12:58 下午
*/ */
List<IcFormResColumnDTO> queryConditions(@Param("customerId") String customerId, @Param("formCode")String formCode); List<IcFormResColumnDTO> queryConditions(@Param("customerId") String customerId, @Param("formCode") String formCode);
/** /**
* 构造出所有子表关联语句 * 构造出所有子表关联语句
@ -68,13 +70,29 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
* @author yinzuomei * @author yinzuomei
* @date 2021/11/1 1:25 下午 * @date 2021/11/1 1:25 下午
*/ */
List<SubTableJoinDTO> querySubTables(@Param("customerId") String customerId, @Param("formCode")String formCode); List<SubTableJoinDTO> querySubTables(@Param("customerId") String customerId, @Param("formCode") String formCode);
Set<String> queryIcResiSubTables(@Param("customerId") String customerId, @Param("formCode")String formCode); Set<String> queryIcResiSubTables(@Param("customerId") String customerId, @Param("formCode") String formCode);
/** /**
* @Author sun * @Author sun
* @Description 居民信息新增查询各表必填字段 * @Description 居民信息新增查询各表必填字段
**/ **/
List<ColumnTableNameResultDTO> getMustColumn(@Param("customerId")String customerId); List<ColumnTableNameResultDTO> getMustColumn(@Param("customerId") String customerId);
/**
* desc:获取需要远程获取并带有关联item的参数的 item项
*
* @param customerId
* @param formCode
* @return
*/
List<ConditionResultDTO> getConditionRemoteItems(@Param("customerId") String customerId, @Param("formCode") String formCode);
/**
* desc:根据Id获取item对应的表名和item属性
* @param itemId
* @return
*/
ConditionResultDTO getConditionItem(@Param("itemId") String itemId);
} }

69
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java

@ -4,15 +4,20 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.IcExportTemplateDao; import com.epmet.dao.IcExportTemplateDao;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcExportTemplateDTO; import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateFormDTO; import com.epmet.dto.form.IcExportTemplateFormDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcCustomExportResultDTO; import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO; import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity; import com.epmet.entity.IcExportTemplateEntity;
import com.epmet.service.IcExportTemplateService; import com.epmet.service.IcExportTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -28,11 +33,14 @@ import java.util.stream.Collectors;
* @author generator generator@elink-cn.com * @author generator generator@elink-cn.com
* @since v1.0.0 2022-04-21 * @since v1.0.0 2022-04-21
*/ */
@Slf4j
@Service @Service
public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplateDao, IcExportTemplateEntity> implements IcExportTemplateService { public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplateDao, IcExportTemplateEntity> implements IcExportTemplateService {
@Autowired @Autowired
private IcExportTemplateDao icExportTemplateDao; private IcExportTemplateDao icExportTemplateDao;
@Autowired
private IcFormItemDao icFormItemDao;
@Override @Override
public PageData<IcExportTemplateDTO> page(Map<String, Object> params) { public PageData<IcExportTemplateDTO> page(Map<String, Object> params) {
@ -92,21 +100,62 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return null; return null;
} }
//todo 删除多余的方法
// List<ConditionResultDTO> remoteItemList = icFormItemDao.getConditionRemoteItems(param.getCustomerId(), param.getFormCode());
Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream().collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList())); Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream().collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList()));
List<List<String>> headerMap = new ArrayList<>(); List<List<String>> headerList = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> sqlColumns = new ArrayList<>(); List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = new ArrayList<>();
resultTemp.forEach((pid, groupList) -> { List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns = new ArrayList<>();
List<String> headerGroupList = new ArrayList<>(); Set<String> hasExistColumnSet = new HashSet<>();
for (IcExportTemplateForExportResultDTO item : groupList) { resultTemp.get(NumConstant.ZERO_STR).forEach(root -> {
headerGroupList.add(item.getLabel()); digui(resultTemp, root, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet);
sqlColumns.add(new IcCustomExportResultDTO.SqlColumn(item.getTableName(), item.getColumnName())); });
//组织 关联item项的
if (hasExistColumnSet.size() > NumConstant.ZERO) {
Set<String> configItemIdSet = list.stream().map(IcExportTemplateForExportResultDTO::getItemId).collect(Collectors.toSet());
Set<String> conditionItemIdSet = new HashSet<>(hasExistColumnSet);
conditionItemIdSet.removeAll(configItemIdSet);
conditionItemIdSet.forEach(itemId -> {
ConditionResultDTO item = icFormItemDao.getConditionItem(itemId);
if (item == null || StringUtils.isBlank(item.getColumnName())) {
log.error("getTemplateConfigForExport item 不存在 id:{}", itemId);
return;
} }
headerMap.add(headerGroupList); hiddenSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(item.getTableName(), item.getColumnName()));
}); });
}
IcCustomExportResultDTO result = new IcCustomExportResultDTO(); IcCustomExportResultDTO result = new IcCustomExportResultDTO();
result.setHeaders(headerMap); result.setHeaders(headerList);
result.setSqlColumns(sqlColumns); result.setShowSqlColumns(showSqlColumns);
result.setHiddenSqlColumns(hiddenSqlColumns);
return result; return result;
} }
private void digui(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns, Set<String> hasExistColumnSet) {
if (StringUtils.isNotBlank(root.getColumnName())) {
showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getTableName(), root.getColumnName()));
if (StringUtils.isNotBlank(root.getOptionSourceValue())) {
String[] paramArr = root.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
//先remote中再添加 然后移除item中有的
hasExistColumnSet.addAll(Arrays.asList(paramArr));
}
}
List<IcExportTemplateForExportResultDTO> children = resultTemp.get(root.getId());
if (CollectionUtils.isEmpty(children)) {
return;
}
children.forEach(o -> {
List<String> headerGroupList = new ArrayList<>();
headerGroupList.add(root.getLabel());
headerGroupList.add(o.getLabel());
headerList.add(headerGroupList);
digui(resultTemp, o, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet);
});
}
} }

4
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml

@ -20,9 +20,11 @@
</resultMap> </resultMap>
<select id="getTemplateConfigForExport" resultType="com.epmet.dto.result.IcExportTemplateForExportResultDTO"> <select id="getTemplateConfigForExport" resultType="com.epmet.dto.result.IcExportTemplateForExportResultDTO">
SELECT SELECT
c.ID,c.TEMP_ID,c.LABEL,c.PID,c.sort,ifig.TABLE_NAME,concat(ifi.COLUMN_NAME,if(ifi.COLUMN_NUM = 0,'',ifi.COLUMN_NUM)) columnName c.ID,c.TEMP_ID,c.LABEL,c.PID,c.sort,ifi.ID AS itemId,ifig.TABLE_NAME,concat(ifi.COLUMN_NAME,if(ifi.COLUMN_NUM = 0,'',ifi.COLUMN_NUM)) columnName,
ifi2.OPTION_SOURCE_VALUE
FROM ic_export_template_config c FROM ic_export_template_config c
LEFT JOIN ic_form_item ifi ON c.FORM_ITEM_ID = ifi.ID LEFT JOIN ic_form_item ifi ON c.FORM_ITEM_ID = ifi.ID
LEFT JOIN ic_form_item ifi2 ON c.FORM_ITEM_ID = ifi2.ID AND ifi2.OPTION_SOURCE_TYPE ='remote' AND ifi2.OPTION_SOURCE_VALUE LIKE '%?%'
LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
WHERE TEMP_ID = #{tempId} and c.CUSTOMER_ID = #{customerId} and c.DEL_FLAG = '0' WHERE TEMP_ID = #{tempId} and c.CUSTOMER_ID = #{customerId} and c.DEL_FLAG = '0'
ORDER BY c.PID,c.SORT ORDER BY c.PID,c.SORT

28
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -224,4 +224,32 @@
) )
order by g.sort asc order by g.sort asc
</select> </select>
<select id="getConditionRemoteItems" resultType="com.epmet.dto.result.ConditionResultDTO">
SELECT
ifi.ID AS itemId,
ifi.OPTION_SOURCE_VALUE,
ifig.TABLE_NAME,
concat(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
FROM ic_form_item ifi LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
WHERE
ifi.OPTION_SOURCE_TYPE = 'remote'
AND ifi.OPTION_SOURCE_VALUE like '%?%'
AND ifi.CUSTOMER_ID = #{customerId}
AND ifi.FORM_CODE = #{formCode}
and ifi.DEL_FLAG = '0'
AND ifig.DEL_FLAG = '0'
</select>
<select id="getConditionItem" resultType="com.epmet.dto.result.ConditionResultDTO">
SELECT
ifi.ID AS itemId,
ifig.TABLE_NAME,
CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
FROM
ic_form_item ifi
LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
WHERE
ifi.ID= #{itemId}
and ifi.DEL_FLAG = '0'
AND ifig.DEL_FLAG = '0'
</select>
</mapper> </mapper>

6
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -84,6 +84,12 @@
or ${subCondition.tableName}.${subCondition.columnName} ='') or ${subCondition.tableName}.${subCondition.columnName} ='')
</if> </if>
</if> </if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'list_equal' ">
<foreach collection="subCondition.columnValue" item="colValue" open="AND ( " separator=" OR " close=" ) ">
${subCondition.tableName}.${subCondition.columnName} like concat('%',#{colValue},'%')
</foreach>
</if>
</if> </if>
</foreach> </foreach>
</if> </if>

Loading…
Cancel
Save