Merge branch 'master' of http://47.115.223.229:8888/yangjun/hldy_java_monomer
This commit is contained in:
commit
d38a2a0a9f
|
@ -80,4 +80,9 @@ public class ConfigMaterialCategory implements Serializable {
|
|||
private String typeId;
|
||||
@TableField(exist = false)
|
||||
private String medicationId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer categoryRowSpan;
|
||||
@TableField(exist = false)
|
||||
private Integer typeRowSpan;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialCategoryMapper;
|
|||
import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialMedicationMapper;
|
||||
import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialTypeMapper;
|
||||
import com.nu.modules.ConfigMaterial.service.IConfigMaterialCategoryService;
|
||||
import com.nu.modules.serviceDirective.entity.ConfigServiceDirective;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -35,7 +36,75 @@ public class ConfigMaterialCategoryServiceImpl extends ServiceImpl<ConfigMateria
|
|||
|
||||
@Override
|
||||
public IPage<ConfigMaterialCategory> selectMaterialList(Page<ConfigMaterialCategory> page, QueryWrapper<ConfigMaterialCategory> queryWrapper) {
|
||||
return baseMapper.selectMaterialList(page,queryWrapper);
|
||||
IPage<ConfigMaterialCategory> pageList = baseMapper.selectMaterialList(page,queryWrapper);
|
||||
List<ConfigMaterialCategory> list = pageList.getRecords();
|
||||
//按照list 的categoryId字段获取相同数据开始和结束标记
|
||||
String categoryId = list.get(0).getCategoryId();
|
||||
int outerStart = 0; // 一级分组起始索引
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
ConfigMaterialCategory configMaterialCategory = list.get(i);
|
||||
// 当遇到不同的categoryId时处理当前分组
|
||||
if (!configMaterialCategory.getCategoryId().equals(categoryId)) {
|
||||
processAllGroups(list, outerStart, i - 1); // 处理完整个一级分组
|
||||
outerStart = i; // 重置一级起始位置
|
||||
categoryId = configMaterialCategory.getCategoryId();
|
||||
}
|
||||
}
|
||||
processAllGroups(list, outerStart, list.size() - 1); // 处理最后一组
|
||||
return pageList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理完整个一级分组(包含二级和三级分组)
|
||||
*
|
||||
* @param records 记录列表
|
||||
* @param start 当前分组的起始索引
|
||||
* @param end 当前分组的结束索引
|
||||
*/
|
||||
private void processAllGroups(List<ConfigMaterialCategory> records, int start, int end) {
|
||||
processOuterGroup(records, start, end); // 处理一级categoryRowSpan
|
||||
|
||||
int innerStart = start; // 二级分组起始索引
|
||||
String currentTypeId = records.get(innerStart).getTypeId();
|
||||
|
||||
// 二级循环:处理当前一级分组内的typeId分组
|
||||
for (int j = innerStart + 1; j <= end; j++) {
|
||||
if (!records.get(j).getTypeId().equals(currentTypeId)) {
|
||||
processMiddleGroup(records, innerStart, j - 1); // 处理完整个二级分组
|
||||
innerStart = j;
|
||||
currentTypeId = records.get(j).getTypeId();
|
||||
}
|
||||
}
|
||||
processMiddleGroup(records, innerStart, end); // 处理最后一组二级数据
|
||||
}
|
||||
|
||||
// 处理一级categoryRowSpan(与之前保持一致)
|
||||
private void processOuterGroup(List<ConfigMaterialCategory> records, int start, int end) {
|
||||
int count = end - start + 1;
|
||||
if (count > 1) {
|
||||
records.get(start).setCategoryRowSpan(count);
|
||||
for (int i = start + 1; i <= end; i++) {
|
||||
records.get(i).setCategoryRowSpan(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理二级typeId分组(包含三级instructionTagId分组)
|
||||
*
|
||||
* @param records 记录列表
|
||||
* @param start 当前分组的起始索引
|
||||
* @param end 当前分组的结束索引
|
||||
*/
|
||||
private void processMiddleGroup(List<ConfigMaterialCategory> records, int start, int end) {
|
||||
int count = end - start + 1;
|
||||
if (count > 1) {
|
||||
records.get(start).setTypeRowSpan(count);
|
||||
for (int i = start + 1; i <= end; i++) {
|
||||
records.get(i).setTypeRowSpan(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<mapper namespace="com.nu.modules.tplink.region.mapper.RegionInfoMapper">
|
||||
|
||||
<select id="getByRegionId" parameterType="java.util.Map" resultType="com.nu.modules.tplink.region.entity.RegionInfo">
|
||||
select id,
|
||||
select a.id,
|
||||
a.region_id as regionId,
|
||||
a.region_name as regionName,
|
||||
a.region_level as regionLevel,
|
||||
|
@ -19,7 +19,7 @@
|
|||
a.media_server_id as mediaServerId,
|
||||
a.backup_media_server_id as backupMediaServerId,
|
||||
a.bind_type as bindType
|
||||
from nu_iot_tplink_region a,
|
||||
from nu_iot_tplink_region a
|
||||
left join nu_iot_tplink_region p on a.parent_id = p.region_id
|
||||
where a.region_id = #{regionId}
|
||||
</select>
|
||||
|
|
Loading…
Reference in New Issue