From 27614920e2f36407f0635d73e931e6cea852298f Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期二, 05 十二月 2023 10:27:41 +0800
Subject: [PATCH] 1、增加数据统计接口与相关实现类方法

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java          |    6 +++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java     |   11 ++---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |   70 +++++++++++++++++++++++++++++++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java    |   11 +++++
 4 files changed, 92 insertions(+), 6 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
index e82445c..5d63bd4 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/MdmEngineController.java
@@ -857,4 +857,15 @@
 			ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null);
 		}
 	}
+
+	/**
+	 * 鑾峰彇缁熻鍒嗘瀽鏁版嵁
+	 * @param btmNames 涓氬姟绫诲瀷
+	 * @return
+	 */
+	@GetMapping("/getStatisticAnalysis")
+	@VciBusinessLog(operateName = "鑾峰彇缁熻鍒嗘瀽鏁版嵁")
+	public R getStatisticAnalysis(String btmNames) {
+		return engineService.getStatisticAnalysis(btmNames);
+	}
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
index 6e6f7a5..418809c 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -513,4 +513,10 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception;
+	/**
+	 * 鑾峰彇缁熻鍒嗘瀽鏁版嵁
+	 * @param btmNames 涓氬姟绫诲瀷
+	 * @return 鏁版嵁闆�
+	 */
+	R getStatisticAnalysis(String btmNames);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 7d06620..9bfb0fe 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -60,6 +60,7 @@
 import com.vci.ubcs.system.feign.ISysClient;
 import com.vci.ubcs.system.user.entity.User;
 import com.vci.ubcs.system.user.feign.IUserClient;
+import io.swagger.models.auth.In;
 import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
 import oracle.sql.TIMESTAMP;
 import org.slf4j.Logger;
@@ -1143,6 +1144,75 @@
 	}
 
 	/**
+	 * 鑾峰彇缁熻鍒嗘瀽鏁版嵁
+	 * @param btmNames 涓氬姟绫诲瀷
+	 * @return 鏁版嵁闆�
+	 */
+	@Override
+	public R getStatisticAnalysis(String btmNames) {
+		//鏌ヨ涓氬姟绫诲瀷瀵瑰簲鐨勬暟鎹簱琛�
+		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Arrays.asList(btmNames.split(",")));
+		if (!listR.isSuccess() || listR.getData().size() == 0) {
+			throw new ServiceException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+		}
+		List tableData = new ArrayList();
+		for (BtmTypeVO datum : listR.getData()) {
+			String sql = "select count(*) countNum, to_char(CREATETIME, 'mm') countDate\n" +
+							"from "+ datum.getTableName() +"\n" +
+							"where CREATETIME >= to_date(EXTRACT(YEAR FROM SYSDATE) || '-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND LASTV = '1'\n" +
+							"group by to_char(CREATETIME, 'mm')\n" +
+							"order by to_char(CREATETIME, 'mm')";
+			//鏌ヨ鍑洪渶瑕佸鐞嗙殑鏁版嵁
+			List<Map> maps = commonsMapper.selectBySql(sql);
+			if(maps.size() == 0){
+				throw new ServiceException("浼犲叆绫诲瀷["+ datum.getName() + ":" +
+					datum.getId() +"]鏈煡鍒扮浉鍏崇粺璁℃暟鎹紝璇风‘璁�!!!!");
+			}
+			//褰撳勾姣忔湀鏈堜唤涔嬪墠涔嬪拰
+			List<Integer> monthCount = new ArrayList<>(12);
+			//褰撳勾姣忔湀鐨勬湀浠芥暟鎹�
+			List<Integer> month = new ArrayList<>();
+			//鑾峰彇褰撳墠鏈堢殑鏁板瓧
+			Calendar instance = Calendar.getInstance();
+			int nowmonth = instance.get(Calendar.MONTH) + 1;
+			//浠�1鍒�12鏈堣繘琛屽鐞�
+			for (Integer i = 1; i <= 12; i++) {
+				//褰撳墠鏈堝悗鎵�鏈夋暟鎹缃负0
+				if(i>nowmonth){
+					monthCount.add(0);
+					month.add(0);
+				}
+				//褰撳墠鏈堜唤涔嬪墠涔嬪拰
+				Integer count = 0;
+				//褰撳墠鏈堜唤鏁版嵁
+				Integer sameMonth = 0;
+				//瀵规暟鎹簱鏌ョ殑鏁版嵁杩涜澶勭悊锛屽褰撳墠鏈堜唤杩涜绱姞
+				for (Map map : maps) {
+					Integer mounDate = Integer.parseInt(String.valueOf(map.get("COUNTDATE")));
+					if(mounDate <= i){
+						count += Integer.parseInt(String.valueOf(map.get("COUNTNUM")));
+					}
+					if (mounDate == i) {
+						sameMonth = Integer.parseInt(String.valueOf(map.get("COUNTNUM")));
+					}
+				}
+				monthCount.add(count);
+				month.add(sameMonth);
+			}
+			//瀵规暟鎹繘琛屾暣鍚�
+			HashMap<String,Object> menuData = new HashMap<>();
+			menuData.put("menuName",datum.getName());
+			menuData.put("codeType",null);
+			ArrayList monthData = new ArrayList();
+			monthData.add(monthCount);
+			monthData.add(month);
+			menuData.put("menuData",monthData);
+			tableData.add(menuData);
+		}
+		return R.data(tableData);
+	}
+
+	/**
      * 灏佽鍏抽敭灞炴�х殑鏌ヨ璇彞
      *
      * @param value        褰撳墠鐨勫��
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index e5dcdbd..28765c9 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -1288,8 +1288,11 @@
 		ReadExcelOption reo = new ReadExcelOption();
 		reo.setReadAllSheet(true);
 		List<SheetDataSet> sheetDataSetList = ExcelUtil.readDataObjectFromExcel(file,null,reo);
-		if (sheetDataSetList.size() > LIMIT + 1) {
-			throw new VciBaseException("涓轰簡淇濊瘉绯荤粺鐨勭ǔ瀹氭�э紝璇蜂竴娆′笉瑕佸鍏ヨ秴杩�1涓囨潯鐨勬暟鎹�");
+		if (sheetDataSetList.get(0).getRowData().size() > LIMIT + 1) {
+			throw new ServiceException("涓轰簡淇濊瘉绯荤粺鐨勭ǔ瀹氭�э紝璇蜂竴娆′笉瑕佸鍏ヨ秴杩�1涓囨潯鐨勬暟鎹�");
+		}
+		if (sheetDataSetList.get(0).getRowData().size() == 0) {
+			throw new ServiceException("鏈鍙栧埌excle鐩稿叧鏁版嵁锛岃纭锛侊紒锛�");
 		}
 		boolean isExport=false;
 		Map<String,List<WriteExcelData>> shetNameMap=new HashMap<>();
@@ -1371,13 +1374,9 @@
 					codeAllCodeService.updateBatchById(codeAllCodes);
 				} catch (Throwable e) {
 					log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e);
-//				thisCbos.stream().forEach(cbo -> {
-//					String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
 					errorMap.put(sheetRowData.getRowIndex(), ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡:"+e.getMessage());
-//				});
 				}
 			}
-
 			if (errorMap.size() > 0) {
 				isExport = true;
 			}

--
Gitblit v1.9.3