Browse Source

/icform/conditionlist-bygroup

release
yinzuomei 3 years ago
parent
commit
5dfe33e9f7
  1. 23
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java
  2. 13
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java
  3. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java
  4. 9
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormItemDao.java
  5. 6
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java
  6. 15
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java
  7. 8
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java
  8. 86
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  9. 59
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  10. 21
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml

23
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ConditionResDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ConditionResDTO implements Serializable {
/**
* 分组ID,'默认NONE'
*/
private String itemGroupId;
/**
* 分组名称
* 基础信息教育信息....
*/
private String groupName;
private List<ConditionResultDTO> queryItemList;
}

13
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java

@ -102,6 +102,19 @@ public class IcFormController {
return new Result<List<ConditionResultDTO>>().ok(icFormItemService.queryConditionList(formDto));
}
/**
* 查询条件 分组显示
* @param tokenDto
* @param formDto
* @return
*/
@PostMapping("conditionlist-bygroup")
public Result<List<ConditionResDTO>> queryConditionListByGroup(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto){
formDto.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDto,CustomerFormQueryDTO.AddUserInternalGroup.class);
return new Result<List<ConditionResDTO>>().ok(icFormItemService.queryConditionListByGroup(formDto));
}
/**
* 居民信息列表_表头
* @param tokenDto

10
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormItemController.java

@ -78,4 +78,14 @@ public class IcFormItemController {
icFormItemService.editItemType(formDTO);
return new Result();
}
/**
* 初始化默认的查询组件ic_form_item.SEARCH_DISPLAY='1'
* @return
*/
@PostMapping("init-query-builder")
public Result initQueryBuilder(@RequestParam("customerId")String customerId){
icFormItemService.initQueryBuilder(customerId);
return new Result();
}
}

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

@ -37,6 +37,15 @@ public interface IcFormItemDao extends BaseDao<IcFormItemEntity> {
List<ConditionResultDTO> selectConditionList(@Param("customerId") String customerId, @Param("formCode") String formCode);
List<ConditionResultDTO> selectConditionListByGroupId(String groupId);
/**
* 查询组件列表
* @param customerId
* @param formCode
* @return
*/
List<ConditionResDTO> selectConditionListGroup(@Param("customerId") String customerId, @Param("formCode") String formCode, @Param("itemIdList") List<String> itemIdList);
List<TableHeaderResultDTO> queryTableHeaderList(@Param("customerId") String customerId, @Param("formCode") String formCode);
/**

6
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormQueryBuilderDao.java

@ -20,6 +20,9 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IcFormQueryBuilderEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 表单查询项
@ -30,4 +33,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IcFormQueryBuilderDao extends BaseDao<IcFormQueryBuilderEntity> {
IcFormQueryBuilderEntity selectDefaultQueryItem(@Param("itemId") String itemId,@Param("itemType") String itemType, @Param("queryType")String queryType);
List<String> selectItemId(@Param("customerId") String customerId, @Param("formCode") String formCode);
}

15
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcFormQueryBuilderEntity.java

@ -45,6 +45,11 @@ public class IcFormQueryBuilderEntity extends BaseEpmetEntity {
*/
private String formItemId;
/**
* 项标签
*/
private String label;
/**
* ic_form.form_code举例resi_base_info
* @see com.epmet.commons.tools.enums.IcFormCodeEnum
@ -52,11 +57,21 @@ public class IcFormQueryBuilderEntity extends BaseEpmetEntity {
*/
private String formCode;
/**
* 组件类型
*/
private String itemType;
/**
* 查询类型: equal, like,daterange....
*/
private String queryType;
/**
* 值转换类型
*/
private String funType;
/**
* 排序
*/

8
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormItemService.java

@ -43,6 +43,8 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
*/
List<ConditionResultDTO> queryConditionList(CustomerFormQueryDTO formDto);
List<ConditionResDTO> queryConditionListByGroup(CustomerFormQueryDTO formDto);
List<TableHeaderResultDTO> queryTableHeaderList(CustomerFormQueryDTO formDto);
List<IcFormResColumnDTO> queryConditions(String customerId,String formCode);
@ -75,4 +77,10 @@ public interface IcFormItemService extends BaseService<IcFormItemEntity> {
* @return
*/
void editItemType(EditIFormItemFormDTO formDTO);
/**
* 初始化默认的查询组件ic_form_item.SEARCH_DISPLAY='1'
* @param customerId
*/
void initQueryBuilder(String customerId);
}

86
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java

@ -20,14 +20,17 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dao.IcFormItemOptionsDao;
import com.epmet.dao.IcFormQueryBuilderDao;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.form.EditIFormItemFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.entity.IcFormItemOptionsEntity;
import com.epmet.entity.IcFormQueryBuilderEntity;
import com.epmet.service.IcFormItemService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -51,7 +54,8 @@ import java.util.stream.Collectors;
public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcFormItemEntity> implements IcFormItemService {
@Autowired
private IcFormItemOptionsDao icFormItemOptionsDao;
@Autowired
private IcFormQueryBuilderDao icFormQueryBuilderDao;
/**
* 获取居民信息的查询条件组件列表
*
@ -66,6 +70,16 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
return list;
}
@Override
public List<ConditionResDTO> queryConditionListByGroup(CustomerFormQueryDTO formDto) {
List<String> itemIdList=icFormQueryBuilderDao.selectItemId(formDto.getCustomerId(),formDto.getFormCode());
if(CollectionUtils.isEmpty(itemIdList)){
return new ArrayList<>();
}
List<ConditionResDTO> list=baseDao.selectConditionListGroup(formDto.getCustomerId(),formDto.getFormCode(),itemIdList);
return list;
}
/**
* 居民信息列表_表头
* @param formDto
@ -206,6 +220,76 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
}
}
/**
* 初始化默认的查询组件ic_form_item.SEARCH_DISPLAY='1'
*
* @param customerId
*/
@Override
public void initQueryBuilder(String customerId) {
//查询所有的查询组件
LambdaQueryWrapper<IcFormItemEntity> queryWrapper = new QueryWrapper<IcFormItemEntity>().lambda()
.eq(StringUtils.isNotBlank(customerId), IcFormItemEntity::getCustomerId, customerId)
.isNotNull(IcFormItemEntity::getColumnName)
.eq(IcFormItemEntity::getSearchDisplay, NumConstant.ONE);
List<IcFormItemEntity> itemList = baseDao.selectList(queryWrapper);
if (CollectionUtils.isEmpty(itemList)) {
return;
}
for (IcFormItemEntity item : itemList) {
IcFormQueryBuilderEntity builderEntity = new IcFormQueryBuilderEntity();
builderEntity.setCustomerId(item.getCustomerId());
builderEntity.setFormItemId(item.getId());
builderEntity.setLabel(item.getLabel());
builderEntity.setFormCode(item.getFormCode());
builderEntity.setItemType(item.getItemType());
builderEntity.setQueryType(queryType(item.getItemType()));
builderEntity.setFunType(StrConstant.EPMETY_STR);
builderEntity.setSort(item.getSort());
builderEntity.setCreatedBy("init");
builderEntity.setUpdatedBy("init");
//item默认的查询组件已经有了,就不插入了
IcFormQueryBuilderEntity entity = icFormQueryBuilderDao.selectDefaultQueryItem(item.getId(), item.getItemType(), builderEntity.getQueryType());
if (null == entity) {
icFormQueryBuilderDao.insert(builderEntity);
}
}
}
private String queryType(String itemType) {
String queryType;
switch (itemType) {
case "select":
queryType = "equal";
break;
case "input":
queryType = "like";
break;
case "datepicker":
queryType = "daterange";
break;
case "textarea":
queryType = "like";
break;
case "radio":
queryType = "equal";
break;
//多选的,查询时应该是 and (columnname='' or columnname='')
case "checkbox":
queryType = "list_equal";
break;
case "daterange":
queryType = "daterange";
break;
case "cascader":
queryType = "equal";
break;
default:
queryType = "like";
}
return queryType;
}
}

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

@ -59,6 +59,37 @@
ORDER BY b.SORT asc
</select>
<select id="selectConditionListByGroupId" parameterType="java.lang.String" resultMap="ConditionResultDTOMap">
SELECT
b.FORM_ITEM_ID AS item_id,
(
case when g.table_name is null then 'ic_resi_user'
when g.table_name ='' then 'ic_resi_user'
else g.table_name
end
)AS TABLE_NAME,
i.PARENT_ITEM_ID,
i.LABEL,
i.ITEM_TYPE,
i.ITEM_GROUP_ID,
i.REQUIRED,
IFNULL(i.VALID_TYPE,'')as VALID_TYPE,
IFNULL(i.DEFAULT_VALUE,'') as DEFAULT_VALUE,
IFNULL(i.OPTION_SOURCE_TYPE,'') as OPTION_SOURCE_TYPE,
IFNULL(i.OPTION_SOURCE_VALUE,'') as OPTION_SOURCE_VALUE,
b.SORT,
IFNULL(i.PLACEHOLDER,'') as PLACEHOLDER,
IFNULL(i.COLUMN_NAME,'')as COLUMN_NAME,
b.QUERY_TYPE
FROM ic_form_query_builder b
inner join ic_form_item i on(i.id=b.FORM_ITEM_ID and i.DEL_FLAG='0')
LEFT JOIN ic_form_item_group g ON ( i.ITEM_GROUP_ID = g.id )
WHERE
b.DEL_FLAG = '0'
AND i.ITEM_GROUP_ID=#{groupId}
ORDER BY b.SORT asc
</select>
<resultMap id="TableHeaderResultDTOMap" type="com.epmet.dto.result.TableHeaderResultDTO">
@ -161,4 +192,32 @@
AND a.customer_id = #{customerId}
</select>
<resultMap id="ConditionResDTOMap" type="com.epmet.dto.result.ConditionResDTO">
<id property="itemGroupId" column="ITEM_GROUP_ID"></id>
<result property="groupName" column="LABEL"/>
<collection property="queryItemList" ofType="com.epmet.dto.result.ConditionResultDTO"
column="ITEM_GROUP_ID" select="com.epmet.dao.IcFormItemDao.selectConditionListByGroupId">
</collection>
</resultMap>
<select id="selectConditionListGroup" parameterType="map" resultMap="ConditionResDTOMap">
SELECT DISTINCT
i.ITEM_GROUP_ID,
g.LABEL
FROM
ic_form_item i
LEFT JOIN ic_form_item_group g ON ( i.ITEM_GROUP_ID = g.id )
WHERE
i.DEL_FLAG = '0'
AND i.SEARCH_DISPLAY = '1'
AND g.DEL_FLAG = '0'
and i.CUSTOMER_ID=#{customerId}
and i.FORM_CODE=#{formCode}
AND(
<foreach collection="itemIdList" item="itemId" separator=" OR ">
i.ID = #{itemId}
</foreach>
)
order by g.sort asc
</select>
</mapper>

21
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormQueryBuilderDao.xml

@ -18,5 +18,26 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectDefaultQueryItem" parameterType="map" resultType="com.epmet.entity.IcFormQueryBuilderEntity">
SELECT
b.ID
FROM
ic_form_query_builder b
WHERE
b.DEL_FLAG = '0'
AND b.FORM_ITEM_ID = #{itemId}
AND b.ITEM_TYPE = #{itemType}
AND b.QUERY_TYPE = #{queryType}
</select>
<select id="selectItemId" parameterType="map" resultType="java.lang.String">
SELECT DISTINCT
b.FORM_ITEM_ID
FROM
ic_form_query_builder b
WHERE
b.CUSTOMER_ID = #{customerId}
AND b.FORM_CODE = #{formCode}
AND b.DEL_FLAG = '0'
</select>
</mapper>
Loading…
Cancel
Save