|
@@ -0,0 +1,145 @@
|
|
|
+package com.huimv.eartag2.manage.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.db.PageResult;
|
|
|
+import com.huimv.eartag2.common.common.utils.PageOf;
|
|
|
+import com.huimv.eartag2.common.dao.entity.SysBaseConfigEntity;
|
|
|
+import com.huimv.eartag2.common.dao.repo.SysBaseConfigRepo;
|
|
|
+import com.huimv.eartag2.common.utils.Result;
|
|
|
+import com.huimv.eartag2.common.utils.ResultCode;
|
|
|
+import com.huimv.eartag2.common.vo.SysBaseConfigVo;
|
|
|
+import com.huimv.eartag2.manage.service.ISysBaseConfigService;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.PageRequest;
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.persistence.criteria.Order;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description: 基础配置相关
|
|
|
+ * @Author: 静静
|
|
|
+ * @CreateTime: 2022-07-19 10:44
|
|
|
+ * @Version: 1.0
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class SysBaseConfigServiceImpl implements ISysBaseConfigService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysBaseConfigRepo sysBaseConfigRepo;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result add(List<Map<String, String>> mapList) {
|
|
|
+ //SysBaseConfigEntity
|
|
|
+ //存入数据库
|
|
|
+ ArrayList<SysBaseConfigEntity> sysBaseConfigEntities = new ArrayList<>();
|
|
|
+ String fitId = UUID.randomUUID().toString();
|
|
|
+ for (Map<String, String> stringStringMap : mapList) {
|
|
|
+ SysBaseConfigEntity sysBaseConfigEntity = new SysBaseConfigEntity();
|
|
|
+ sysBaseConfigEntity.setConfigName(stringStringMap.get("configName"));
|
|
|
+ sysBaseConfigEntity.setConfigKey(stringStringMap.get("configKey"));
|
|
|
+ sysBaseConfigEntity.setConfigValue(stringStringMap.get("configValue"));
|
|
|
+ sysBaseConfigEntity.setAreaName(stringStringMap.get("areaName"));
|
|
|
+ sysBaseConfigEntity.setRowId(fitId);
|
|
|
+ sysBaseConfigEntities.add(sysBaseConfigEntity);
|
|
|
+ }
|
|
|
+ sysBaseConfigRepo.saveAllAndFlush(sysBaseConfigEntities);
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result remove(List<Integer> id) {
|
|
|
+ sysBaseConfigRepo.deleteAllById(id);
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result update(List<Map<String, String>> maps) {
|
|
|
+ for (Map<String, String> map : maps) {
|
|
|
+ String id = map.get("id");
|
|
|
+ SysBaseConfigEntity baseConfigDo = sysBaseConfigRepo.getById(Integer.valueOf(id));
|
|
|
+ baseConfigDo.setConfigName(map.get("configName"));
|
|
|
+ baseConfigDo.setConfigKey(map.get("configKey"));
|
|
|
+ baseConfigDo.setConfigValue(map.get("configValue"));
|
|
|
+ baseConfigDo.setAreaName(map.get("areaName"));
|
|
|
+ sysBaseConfigRepo.saveAndFlush(baseConfigDo);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result list(Map<String, String> paramsMap) {
|
|
|
+ String farmName = paramsMap.get("farmName");
|
|
|
+ String farmCode = paramsMap.get("farmCode");
|
|
|
+ String ip = paramsMap.get("ip");
|
|
|
+ Specification<SysBaseConfigEntity> sf = (Specification<SysBaseConfigEntity>) (root, criteriaQuery, criteriaBuilder) ->{
|
|
|
+ List<Predicate> predList = new ArrayList<>();
|
|
|
+ if (null != farmName && farmName.trim().length() > 0){
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("farmName").as(String.class), farmName));
|
|
|
+ }
|
|
|
+ if (null != farmCode && farmCode.trim().length() > 0){
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("farmCode").as(String.class), farmCode));
|
|
|
+ }
|
|
|
+ if (null != ip && ip.trim().length() > 0){
|
|
|
+ predList.add(criteriaBuilder.equal(root.get("ip").as(String.class), ip));
|
|
|
+ }
|
|
|
+ Predicate[] pred = new Predicate[predList.size()];
|
|
|
+ Predicate and = criteriaBuilder.and(predList.toArray(pred));
|
|
|
+ criteriaQuery.where(and);
|
|
|
+
|
|
|
+ List<Order> orders = new ArrayList<>();
|
|
|
+ orders.add(criteriaBuilder.desc(root.get("id")));
|
|
|
+ return criteriaQuery.orderBy(orders).getRestriction();
|
|
|
+ };
|
|
|
+ String pageNo= paramsMap.get("pageNo");
|
|
|
+ String pageSize = paramsMap.get("pageSize");
|
|
|
+ Pageable pageable = PageRequest.of(Integer.valueOf(pageNo) - 1, Integer.valueOf(pageSize));
|
|
|
+ Page<SysBaseConfigEntity> page = sysBaseConfigRepo.findAll(sf, pageable);
|
|
|
+ List<SysBaseConfigEntity> content = page.getContent();
|
|
|
+ //将查询出来的数据 按照row_id进行分组
|
|
|
+ Map<String, List<SysBaseConfigEntity>> groupResult = content.stream().collect(Collectors.groupingBy(SysBaseConfigEntity::getRowId));
|
|
|
+ Set<String> rowIds = groupResult.keySet();
|
|
|
+
|
|
|
+ //最终返回的拼装好的数据
|
|
|
+ ArrayList<SysBaseConfigVo> resultList = new ArrayList<>();
|
|
|
+ rowIds.forEach(rowId->{
|
|
|
+ List<SysBaseConfigEntity> sysBaseConfigEntities = groupResult.get(rowId);
|
|
|
+ SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(sysBaseConfigEntities);
|
|
|
+ resultList.add(sysBaseConfigVo);
|
|
|
+ });
|
|
|
+
|
|
|
+ PageOf<SysBaseConfigVo> result = new PageOf<>();
|
|
|
+ result.setList(resultList);
|
|
|
+ result.setPageSize(Integer.valueOf(pageSize));
|
|
|
+ result.setTotalCount(page.getTotalElements());
|
|
|
+ result.setTotalPage(page.getSize());
|
|
|
+ return new Result(ResultCode.SUCCESS,result);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result getDateById(List<Integer> ids) {
|
|
|
+ ArrayList<SysBaseConfigEntity> sysBaseConfigEntities = new ArrayList<>();
|
|
|
+ for (Integer id : ids) {
|
|
|
+ SysBaseConfigEntity byId = sysBaseConfigRepo.getById(id);
|
|
|
+ sysBaseConfigEntities.add(byId);
|
|
|
+ }
|
|
|
+ SysBaseConfigVo sysBaseConfigVo = convertSysBaseConfigVo(sysBaseConfigEntities);
|
|
|
+ return new Result(ResultCode.SUCCESS,sysBaseConfigVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysBaseConfigVo convertSysBaseConfigVo(List<SysBaseConfigEntity> list){
|
|
|
+ Map<String, String> map = list.stream().collect(Collectors.toMap(SysBaseConfigEntity::getConfigKey, SysBaseConfigEntity::getConfigValue));
|
|
|
+ SysBaseConfigVo sysBaseConfigVo = new SysBaseConfigVo();
|
|
|
+ sysBaseConfigVo.setId(map.get("id"));
|
|
|
+ sysBaseConfigVo.setFarmCode(map.get("farmId"));
|
|
|
+ sysBaseConfigVo.setFarmName(map.get("configName"));
|
|
|
+ sysBaseConfigVo.setIp(map.get("ip"));
|
|
|
+ sysBaseConfigVo.setPort(map.get("port"));
|
|
|
+ return sysBaseConfigVo;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|