diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/GroupArrParam.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/GroupArrParam.java new file mode 100644 index 0000000..ccb6d62 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/param/GroupArrParam.java @@ -0,0 +1,35 @@ +package com.njcn.csdevice.pojo.param; + +import com.njcn.web.constant.ValidMessage; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * 重新分组 + * + * @author xuyang + * @date 2023/6/19 + */ +@Data +public class GroupArrParam { + + @ApiModelProperty("setId") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + private String setId; + + @ApiModelProperty("data") + @NotEmpty(message = "数据不能为空") + private List data; + + + @Data + public static class ArrItem { + private String id; + private String name; + private List children; + } +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsGroArr.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsGroArr.java new file mode 100644 index 0000000..7db9cb1 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsGroArr.java @@ -0,0 +1,36 @@ +package com.njcn.csdevice.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; + +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 组和指标关系表 + *

+ * + * @author xuyang + * @since 2023-06-19 + */ +@Data +@TableName("cs_gro_arr") +public class CsGroArr { + + private static final long serialVersionUID = 1L; + + /** + * 组id + */ + private String groupId; + + /** + * 指标id + */ + private String arrayId; + + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsGroup.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsGroup.java new file mode 100644 index 0000000..9480cdc --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsGroup.java @@ -0,0 +1,51 @@ +package com.njcn.csdevice.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; + +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 数据分组表 + *

+ * + * @author xuyang + * @since 2023-06-16 + */ +@Data +@TableName("cs_group") +public class CsGroup { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + /** + * 数据集id + */ + private String dataSetId; + + /** + * 分组名称 + */ + private String groupName; + + /** + * 排序 + */ + private Integer sort; + + /** + * 是否展示 + */ + private Integer isShow; + + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsGroupVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsGroupVO.java new file mode 100644 index 0000000..7d545a0 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/CsGroupVO.java @@ -0,0 +1,26 @@ +package com.njcn.csdevice.pojo.vo; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/6/16 15:48 + */ +@Data +public class CsGroupVO { + + private String id; + + private String pid; + + private String name; + + private List children = new ArrayList<>(); + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerDetailVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerDetailVO.java index 1674bb0..a0688bb 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerDetailVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DeviceManagerDetailVO.java @@ -21,4 +21,10 @@ public class DeviceManagerDetailVO { @ApiModelProperty("单位") private String unit; + + @ApiModelProperty("开始次数") + private String startTimes; + + @ApiModelProperty("结束次数") + private String endTimes; } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroArrController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroArrController.java new file mode 100644 index 0000000..b844495 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroArrController.java @@ -0,0 +1,52 @@ +package com.njcn.csdevice.controller.equipment; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.csdevice.pojo.param.GroupArrParam; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.service.ICsGroArrService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import com.njcn.web.controller.BaseController; + +import java.util.List; + +/** + *

+ * 组和指标关系表 前端控制器 + *

+ * + * @author xuyang + * @since 2023-06-19 + */ +@Slf4j +@RestController +@RequestMapping("/csGroArr") +@Api(tags = "组和指标关系") +@AllArgsConstructor +public class CsGroArrController extends BaseController { + + private final ICsGroArrService csGroArrService; + + @PostMapping("/updateGroArr") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("更新组和指标关系") + @ApiImplicitParam(name = "groupArrParam", value = "重新分组信息", required = true) + public HttpResult updateGroArr(@RequestBody GroupArrParam groupArrParam) { + String methodDescribe = getMethodDescribe("updateGroArr"); + LogUtil.njcnDebug(log, "{},分组信息为:{}", methodDescribe, groupArrParam); + csGroArrService.updateGroArr(groupArrParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } +} + diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java new file mode 100644 index 0000000..0303c1a --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsGroupController.java @@ -0,0 +1,52 @@ +package com.njcn.csdevice.controller.equipment; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.service.ICsGroupService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 数据分组表 前端控制器 + *

+ * + * @author xuyang + * @since 2023-06-16 + */ +@Slf4j +@RestController +@RequestMapping("/csGroup") +@Api(tags = "指标分组") +@AllArgsConstructor +public class CsGroupController extends BaseController { + + private final ICsGroupService csGroupService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getGroup") + @ApiOperation("查询分组") + @ApiImplicitParam(name = "dataSet", value = "数据集id", required = true) + public HttpResult> getGroupData(@RequestParam("dataSet") String dataSet){ + String methodDescribe = getMethodDescribe("getGroupData"); + List list = csGroupService.getGroupData(dataSet); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + +} + diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java index c5841aa..014e807 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsDataArrayMapper.java @@ -24,4 +24,6 @@ public interface CsDataArrayMapper extends BaseMapper { List getDictData(@Param("id") String id); + List getGroupData(@Param("id") String id); + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroArrMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroArrMapper.java new file mode 100644 index 0000000..56007ac --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroArrMapper.java @@ -0,0 +1,22 @@ +package com.njcn.csdevice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.csdevice.pojo.po.CsGroArr; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 组和指标关系表 Mapper 接口 + *

+ * + * @author xuyang + * @since 2023-06-19 + */ +public interface CsGroArrMapper extends BaseMapper { + + List getGroupArrayList(@Param("list") List list); + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java new file mode 100644 index 0000000..64b1be8 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsGroupMapper.java @@ -0,0 +1,27 @@ +package com.njcn.csdevice.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.csdevice.pojo.po.CsGroup; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 数据分组表 Mapper 接口 + *

+ * + * @author xuyang + * @since 2023-06-16 + */ +public interface CsGroupMapper extends BaseMapper { + + List getGroupData(@Param("dataSet") String dataSet); + + List getGroupData2(@Param("dataSet") String dataSet); + + List getArrayData(@Param("list") List list); + + void insertList(@Param("list") List list); +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml index 0f51d6b..d42ee4b 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsDataArrayMapper.xml @@ -47,4 +47,22 @@ where pid = #{id} + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroArrMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroArrMapper.xml new file mode 100644 index 0000000..ef035f1 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroArrMapper.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml new file mode 100644 index 0000000..333758d --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/mapping/CsGroupMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + insert into cs_group + ( + id, + data_set_id, + group_name, + sort, + is_show + ) + values + + ( + #{item.id}, + #{item.dataSetId}, + #{item.groupName}, + #{item.sort}, + #{item.isShow} + ) + + + + \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataArrayService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataArrayService.java index 8b79874..2de52ad 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataArrayService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsDataArrayService.java @@ -35,6 +35,14 @@ public interface ICsDataArrayService extends IService { List getDataArray(List list); + /** + * 根据数据集id获取分组数据 + * @param dataSet + * @return + */ + List getGroupData(String dataSet); + + // List getDataArrayById(String pid, String name); } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroArrService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroArrService.java new file mode 100644 index 0000000..f1bb178 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroArrService.java @@ -0,0 +1,30 @@ +package com.njcn.csdevice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.csdevice.pojo.param.GroupArrParam; +import com.njcn.csdevice.pojo.po.CsGroArr; + +import java.util.List; + +/** + *

+ * 组和指标关系表 服务类 + *

+ * + * @author xuyang + * @since 2023-06-19 + */ +public interface ICsGroArrService extends IService { + + /** + * 批量新增 + * @param list 数据集 + */ + void insertList(List list); + + /** + * 更新组和指标关系 + * @param groupArrParam 组和指标关系 + */ + void updateGroArr(GroupArrParam groupArrParam); +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java new file mode 100644 index 0000000..79eb7f1 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/ICsGroupService.java @@ -0,0 +1,25 @@ +package com.njcn.csdevice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.csdevice.pojo.po.CsGroup; +import com.njcn.csdevice.pojo.vo.CsGroupVO; + +import java.util.List; + +/** + *

+ * 数据分组表 服务类 + *

+ * + * @author xuyang + * @since 2023-06-16 + */ +public interface ICsGroupService extends IService { + + /** + * 根据数据集id查询分组详情 + * @param dataSet + */ + List getGroupData(String dataSet); + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java index 0a24cf5..d0fdd44 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsDataArrayServiceImpl.java @@ -1,6 +1,7 @@ package com.njcn.csdevice.service.impl; import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.csdevice.mapper.CsDataArrayMapper; import com.njcn.csdevice.pojo.dto.DataArrayDTO; @@ -13,6 +14,7 @@ import com.njcn.system.pojo.po.EleEpdPqd; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import javax.validation.constraints.Min; import java.util.*; import java.util.stream.Collectors; @@ -50,6 +52,18 @@ public class CsDataArrayServiceImpl extends ServiceImpl getGroupData(String dataSet) { + return this.baseMapper.getGroupData(dataSet); + } + // @Override // public List getDataArrayById(String pid, String name) { // return this.lambdaQuery().eq(CsDataArray::getPid,pid).eq(CsDataArray::getName,name).list(); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroArrServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroArrServiceImpl.java new file mode 100644 index 0000000..f3c5605 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroArrServiceImpl.java @@ -0,0 +1,77 @@ +package com.njcn.csdevice.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.csdevice.mapper.CsGroArrMapper; +import com.njcn.csdevice.mapper.CsGroupMapper; +import com.njcn.csdevice.pojo.param.GroupArrParam; +import com.njcn.csdevice.pojo.po.CsGroArr; +import com.njcn.csdevice.pojo.po.CsGroup; +import com.njcn.csdevice.service.ICsGroArrService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 组和指标关系表 服务实现类 + *

+ * + * @author xuyang + * @since 2023-06-19 + */ +@Service +@AllArgsConstructor +public class CsGroArrServiceImpl extends ServiceImpl implements ICsGroArrService { + + private final CsGroupMapper csGroupMapper; + + @Override + public void insertList(List list) { + this.saveBatch(list,1000); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateGroArr(GroupArrParam groupArrParam) { + List list = groupArrParam.getData(); + List groupIdList = list.stream().map(GroupArrParam.ArrItem::getId).collect(Collectors.toList()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CsGroArr::getGroupId, groupIdList); + this.baseMapper.delete(lambdaQueryWrapper); + csGroupMapper.deleteBatchIds(groupIdList); + + List listGroup = new ArrayList<>(); + List arrList = new ArrayList<>(); + + Integer sort = 0; + for (GroupArrParam.ArrItem item : list) { + if (CollectionUtil.isNotEmpty(item.getChildren())) { + CsGroup csGroup = new CsGroup(); + csGroup.setId(IdUtil.simpleUUID()); + csGroup.setGroupName(item.getName()); + csGroup.setDataSetId(groupArrParam.getSetId()); + csGroup.setSort(sort); + csGroup.setIsShow(1); + sort++; + listGroup.add(csGroup); + + for (String idItem : item.getChildren()) { + CsGroArr groupArr = new CsGroArr(); + groupArr.setGroupId(csGroup.getId()); + groupArr.setArrayId(idItem); + arrList.add(groupArr); + } + } + } + csGroupMapper.insertList(listGroup); + this.saveBatch(arrList,1000); + } + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java new file mode 100644 index 0000000..e7a2a00 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java @@ -0,0 +1,111 @@ +package com.njcn.csdevice.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.csdevice.mapper.CsGroupMapper; +import com.njcn.csdevice.pojo.po.CsDataArray; +import com.njcn.csdevice.pojo.po.CsGroArr; +import com.njcn.csdevice.pojo.po.CsGroup; +import com.njcn.csdevice.pojo.vo.CsGroupVO; +import com.njcn.csdevice.service.ICsDataArrayService; +import com.njcn.csdevice.service.ICsGroArrService; +import com.njcn.csdevice.service.ICsGroupService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; + +/** + *

+ * 数据分组表 服务实现类 + *

+ * + * @author xuyang + * @since 2023-06-16 + */ +@Service +@AllArgsConstructor +public class CsGroupServiceImpl extends ServiceImpl implements ICsGroupService { + + private final ICsDataArrayService csDataArrayService; + + private final ICsGroArrService csGroArrService; + + @Override + @Transactional(rollbackFor = Exception.class) + public List getGroupData(String dataSet) { + List list = this.baseMapper.getGroupData(dataSet); + List result = new ArrayList<>(); + if (CollectionUtil.isEmpty(list)) { + result = insertGroupData(dataSet); + } else { + List list2 = this.baseMapper.getGroupData2(dataSet); + if (CollectionUtil.isNotEmpty(list2)){ + List groupList = list2.stream().map(CsGroupVO::getId).collect(Collectors.toList()); + List arrayList = this.baseMapper.getArrayData(groupList); + result = list2.stream().peek((item -> item.setChildren(getChildrenes(item.getId(), arrayList)))).collect(Collectors.toList()); + } + } + return result; + } + + private List getChildrenes(String tabId, List all) { + return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList()); + } + + //fixme 目前组的数据插入写在这里,先查询数据集是否分组,分组了直接查询,没分组先分组再展示数据。后期根据业务需求在做调整 + public List insertGroupData(String dataSet) { + AtomicReference sort = new AtomicReference<>(0); + List ls = new ArrayList<>(); + List result = new ArrayList<>(); + List groArrList = new ArrayList<>(); + //取平均值 + List arrayList = csDataArrayService.getGroupData(dataSet); + Map> map = arrayList.stream().collect(Collectors.groupingBy(CsDataArray::getAnotherName,LinkedHashMap::new,Collectors.toList())); + map.forEach((k,v)->{ + //录入组数据 + String groupId = IdUtil.simpleUUID(); + CsGroup csGroup = new CsGroup(); + csGroup.setId(groupId); + csGroup.setDataSetId(dataSet); + csGroup.setGroupName(k); + csGroup.setSort(sort.getAndSet(sort.get() + 1)); + csGroup.setIsShow(1); + ls.add(csGroup); + //录入组和指标关系 + v.forEach(item->{ + CsGroArr csGroArr = new CsGroArr(); + csGroArr.setGroupId(groupId); + csGroArr.setArrayId(item.getId()); + groArrList.add(csGroArr); + }); + //展示组和指标关系 + List vo2 = new ArrayList<>(); + CsGroupVO csGroupVo = new CsGroupVO(); + csGroupVo.setId(groupId); + csGroupVo.setPid("0"); + csGroupVo.setName(k); + v.forEach(item->{ + CsGroupVO csGroupVo2 = new CsGroupVO(); + csGroupVo2.setId(item.getDataId()); + csGroupVo2.setPid(groupId); + if(Objects.equals(item.getPhase(),"M") || Objects.equals(item.getPhase(),"T") ) { + csGroupVo2.setName(item.getAnotherName()); + } else { + csGroupVo2.setName(item.getPhase() + "相" +item.getAnotherName()); + } + vo2.add(csGroupVo2); + }); + csGroupVo.setChildren(vo2); + result.add(csGroupVo); + }); + csGroArrService.insertList(groArrList); + this.saveBatch(ls,1000); + return result; + } + +}