From 7610df9f2155c82f4a5f554b9f4c7f0446be6261 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期四, 14 十二月 2023 15:44:47 +0800
Subject: [PATCH] 1、图形统计用户新增图形保存功能

---
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/vo/StatisticConfigVO.java            |   16 +++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStatisticConfigService.java         |   36 +++++++
 Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/StatisticConfigMapper.xml                            |    7 +
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StatisticConfigController.java    |   58 +++++++++++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StatisticConfigServiceImpl.java |  104 ++++++++++++++++++++
 Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StatisticConfigMapper.java            |   12 ++
 Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/StatisticConfig.java          |   66 +++++++++++++
 7 files changed, 299 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/StatisticConfig.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/StatisticConfig.java
new file mode 100644
index 0000000..f20aa9c
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/entity/StatisticConfig.java
@@ -0,0 +1,66 @@
+package com.vci.ubcs.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 涓绘暟鎹粺璁″璞�
+ * @author yuxc
+ * @date 2023/12/13 11:13
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("PL_SYS_STATISTIC_CONFIG")
+public class StatisticConfig implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 涓婚敭
+	 */
+	@TableId
+	private Long id;
+
+	/**
+	 * 鐢ㄦ埛id
+	 */
+	private Long  userId;
+
+	/**
+	 * 涓氬姟绫诲瀷
+	 */
+	private String btmname;
+
+	/**
+	 * 鍥惧舰ids
+	 */
+	private String chartIds;
+
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	private Date createtime;
+	/**
+	 * 鍒涘缓浜�
+	 */
+	private String creator;
+	/**
+	 * 淇敼鏃堕棿
+	 */
+	private Date lastmodifytime;
+	/**
+	 * 淇敼浜�
+	 */
+	private String lastmodifier;
+	/**
+	 *
+	 */
+	private Date ts;
+}
diff --git a/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/vo/StatisticConfigVO.java b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/vo/StatisticConfigVO.java
new file mode 100644
index 0000000..36ee16b
--- /dev/null
+++ b/Source/UBCS/ubcs-service-api/ubcs-system-api/src/main/java/com/vci/ubcs/system/vo/StatisticConfigVO.java
@@ -0,0 +1,16 @@
+package com.vci.ubcs.system.vo;
+
+import com.vci.ubcs.system.entity.MdmCountConfig;
+import com.vci.ubcs.system.entity.StatisticConfig;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author ludc
+ * @date 2023/10/18 8:56
+ */
+@Data
+public class StatisticConfigVO extends StatisticConfig {
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StatisticConfigController.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StatisticConfigController.java
new file mode 100644
index 0000000..a4d1453
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/controller/StatisticConfigController.java
@@ -0,0 +1,58 @@
+package com.vci.ubcs.system.controller;
+
+import com.vci.ubcs.system.entity.StatisticConfig;
+import com.vci.ubcs.system.service.IMdmCountConfigService;
+import com.vci.ubcs.system.service.IStatisticConfigService;
+import com.vci.ubcs.system.vo.MdmCountConfigVO;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author yuxc
+ * @date 2023/12/13 15:47
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/statisticConfig")
+//@Api(value = "瀛楀吀", tags = "瀛楀吀")
+public class StatisticConfigController {
+
+	private final IStatisticConfigService statisticConfigService;
+
+	/**
+     * 缁熻鍒嗘瀽淇濆瓨
+	 * @param statisticConfigs 鏁版嵁浼犺緭瀵硅薄
+	 * @return 鏁版嵁杩斿洖
+	 */
+	@PostMapping("/saveStatisticAnalysis")
+	public R saveStatisticAnalysis(@RequestBody List<StatisticConfig> statisticConfigs){
+		return statisticConfigService.saveStatisticConfig(statisticConfigs);
+	}
+
+	/**
+	 * 缁熻鍒嗘瀽鍒犻櫎鍥惧舰
+	 * @param btmname 涓氬姟绫诲瀷
+	 * @param chartId 鍥惧舰ID
+	 * @return 鎴愬姛涓庡惁
+	 */
+	@PostMapping("/deleteChartId")
+	public R deleteChartId(String btmname,String chartId){
+		return statisticConfigService.deleteChartId(btmname,chartId);
+	}
+
+	/**
+	 * 鑾峰彇鐢ㄦ埛閰嶇疆鐨勪笟鍔$被鍨嬩笌鐩稿叧鐨勫浘褰�
+	 * @return 鍥惧舰鏁版嵁涓庝笟鍔$被鍨婭D
+	 */
+	@GetMapping("/getBtmAndChartIds")
+	public R getBtmAndChartIds(){
+		return statisticConfigService.getBtmAndChartIds();
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StatisticConfigMapper.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StatisticConfigMapper.java
new file mode 100644
index 0000000..01fdf6c
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/mapper/StatisticConfigMapper.java
@@ -0,0 +1,12 @@
+package com.vci.ubcs.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.vci.ubcs.system.entity.StatisticConfig;
+
+/**
+ * @author ludc
+ * @date 2023/10/17 14:53
+ */
+public interface StatisticConfigMapper extends BaseMapper<StatisticConfig> {
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStatisticConfigService.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStatisticConfigService.java
new file mode 100644
index 0000000..352f766
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/IStatisticConfigService.java
@@ -0,0 +1,36 @@
+package com.vci.ubcs.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.vci.ubcs.system.entity.StatisticConfig;
+import org.springblade.core.tool.api.R;
+
+import java.util.List;
+
+/**
+ * 涓绘暟鎹粺璁¢椤甸厤缃湇鍔�
+ * @author ludc
+ * @date 2023/10/17 14:44
+ */
+public interface IStatisticConfigService extends IService<StatisticConfig> {
+
+	/**
+	 * 缁熻鍒嗘瀽淇濆瓨
+	 * @param statisticConfigs 鏁版嵁浼犺緭瀵硅薄
+	 * @return 鏁版嵁杩斿洖
+	 */
+	R saveStatisticConfig(List<StatisticConfig> statisticConfigs);
+
+	/**
+	 * 缁熻鍒嗘瀽鍒犻櫎鍥惧舰
+	 * @param btmname 涓氬姟绫诲瀷
+	 * @param chartId 鍥惧舰ID
+	 * @return 鎴愬姛涓庡惁
+	 */
+    R deleteChartId(String btmname, String chartId);
+
+	/**
+	 * 鑾峰彇鐢ㄦ埛閰嶇疆鐨勪笟鍔$被鍨嬩笌鐩稿叧鐨勫浘褰�
+	 * @return 鍥惧舰鏁版嵁涓庝笟鍔$被鍨婭D
+	 */
+	R getBtmAndChartIds();
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StatisticConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StatisticConfigServiceImpl.java
new file mode 100644
index 0000000..1168900
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/java/com/vci/ubcs/system/service/impl/StatisticConfigServiceImpl.java
@@ -0,0 +1,104 @@
+package com.vci.ubcs.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.system.entity.MdmCountConfig;
+import com.vci.ubcs.system.entity.StatisticConfig;
+import com.vci.ubcs.system.mapper.MdmCountConfigMapper;
+import com.vci.ubcs.system.mapper.StatisticConfigMapper;
+import com.vci.ubcs.system.service.IMdmCountConfigService;
+import com.vci.ubcs.system.service.IStatisticConfigService;
+import com.vci.ubcs.system.vo.MdmCountConfigVO;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 涓绘暟鎹粺璁¢椤甸厤缃湇鍔�
+ * @author ludc
+ * @date 2023/10/17 14:45
+ */
+@Service
+public class StatisticConfigServiceImpl extends ServiceImpl<StatisticConfigMapper, StatisticConfig> implements IStatisticConfigService {
+	/**
+	 * 缁熻鍒嗘瀽淇濆瓨
+	 * @param statisticConfigs 鏁版嵁浼犺緭瀵硅薄
+	 * @return 鏁版嵁杩斿洖
+	 */
+	@Override
+	public R saveStatisticConfig(List<StatisticConfig> statisticConfigs) {
+
+		QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
+		wrapper.eq("user_id", AuthUtil.getUser().getUserId());
+		wrapper.in("btmname", statisticConfigs.stream().map(StatisticConfig::getBtmname).collect(Collectors.toList()));
+		List<StatisticConfig> list = this.list(wrapper);
+		statisticConfigs.stream().map(e ->{
+			list.stream().filter(lis -> e.getBtmname().equals(lis.getBtmname())).forEach(lis->{
+					e.setId(lis.getId());
+					e.setTs(new Date());
+					e.setCreator(lis.getCreator());
+					e.setCreatetime(lis.getCreatetime());
+					e.setLastmodifier(String.valueOf(AuthUtil.getUser().getUserId()));
+					e.setLastmodifytime(new Date());
+			});
+			if(e.getId() == null){
+				e.setUserId(AuthUtil.getUser().getUserId());
+				e.setTs(new Date());
+				e.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
+				e.setCreatetime(new Date());
+				e.setLastmodifier(String.valueOf(AuthUtil.getUser().getUserId()));
+				e.setLastmodifytime(new Date());
+			}
+			return e;
+		}).collect(Collectors.toList());
+
+		this.saveOrUpdateBatch(statisticConfigs);
+
+		return R.success("鎿嶄綔鎴愬姛锛�");
+	}
+
+	/**
+	 * 缁熻鍒嗘瀽鍒犻櫎鍥惧舰
+	 * @param btmname 涓氬姟绫诲瀷
+	 * @param chartId 鍥惧舰ID
+	 * @return 鎴愬姛涓庡惁
+	 */
+	@Override
+	public R deleteChartId(String btmname, String chartId) {
+
+		QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
+		wrapper.eq("user_id", AuthUtil.getUser().getUserId());
+		wrapper.in("btmname",btmname);
+		StatisticConfig statisticConfig = this.getOne(wrapper);
+		if(StringUtil.isBlank(statisticConfig.getChartIds())){
+			throw new ServiceException("鏈煡鍒板巻鍙茬浉鍏冲浘褰㈡暟鎹紝璇峰厛淇濆瓨锛侊紒");
+		}
+		List<String> chartIds = new ArrayList(Arrays.asList(statisticConfig.getChartIds().split(",")));
+		chartIds.remove(chartId);
+		statisticConfig.setChartIds(chartIds.stream().collect(Collectors.joining(",")));
+		this.updateById(statisticConfig);
+		return R.success("鎿嶄綔鎴愬姛锛侊紒");
+	}
+
+	/**
+	 * 鑾峰彇鐢ㄦ埛閰嶇疆鐨勪笟鍔$被鍨嬩笌鐩稿叧鐨勫浘褰�
+	 * @return 鍥惧舰鏁版嵁涓庝笟鍔$被鍨婭D
+	 */
+	@Override
+	public R getBtmAndChartIds() {
+		QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
+		wrapper.eq("user_id", AuthUtil.getUser().getUserId());
+		List<StatisticConfig> list = this.list(wrapper);
+		Map<String, String> collect = list.stream().collect(Collectors.toMap(StatisticConfig::getBtmname, StatisticConfig::getChartIds));
+		return R.data(collect);
+	}
+
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/StatisticConfigMapper.xml b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/StatisticConfigMapper.xml
new file mode 100644
index 0000000..384de10
--- /dev/null
+++ b/Source/UBCS/ubcs-service/ubcs-system/src/main/resources/mapper/StatisticConfigMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.vci.ubcs.system.mapper.StatisticConfigMapper">
+
+
+
+</mapper>

--
Gitblit v1.9.3