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 |  140 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 132 insertions(+), 8 deletions(-)

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 3b79f45..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
@@ -1,23 +1,25 @@
 package com.vci.ubcs.code.service;
 
 
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.vci.ubcs.code.applyjtcodeservice.vo.BaseModelVO;
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
+import com.vci.ubcs.code.dto.CodeBZApplyDTO;
 import com.vci.ubcs.code.dto.CodeDeleteBatchDTO;
 import com.vci.ubcs.code.dto.CodeOrderDTO;
 import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
-import com.vci.ubcs.code.entity.CodeWupin;
 import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
 import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
 import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.flow.core.dto.FlowStatusDTO;
+import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.web.pagemodel.*;
+import com.vci.ubcs.starter.web.util.VciQueryWrapperForDO;
 import org.springblade.core.tool.api.R;
 
-import java.beans.IntrospectionException;
-import java.lang.reflect.InvocationTargetException;
-import java.sql.SQLException;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -27,7 +29,7 @@
  * @author weidy
  * @date 2022-2-21
  */
-public interface MdmEngineService extends IService<CodeWupin> {
+public interface MdmEngineService {
 	/**
 	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
 	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
@@ -62,6 +64,13 @@
 	 * @return 杩斿洖缂栫爜鐨勫唴瀹�
 	 */
 	String addSaveCode(CodeOrderDTO orderDTO) throws Exception;
+	/**
+	 * 鐢宠鍗曚竴缂栫爜
+	 * @param orderDTO 鐢宠鐨勪俊鎭紝闇�瑕佸寘鍚睘鎬х殑鍐呭鍜岀爜娈电浉鍏崇殑鍐呭
+	 * @param  authUser 鏄惁妯℃嫙鐧诲綍锛宼rue锛屼笉妯℃嫙锛宖alse鏄ā鎷�
+	 * @return 杩斿洖缂栫爜鐨勫唴瀹�
+	 */
+	String addSaveCodeNotauthUser(CodeOrderDTO orderDTO, boolean authUser) throws Exception;
 
 	/**
 	 * 鍒ゆ柇缂栫爜鐨勭爜娈垫槸鍚﹁緭鍏ユ垨鑰呴�夋嫨浜嗙爜鍊�
@@ -101,7 +110,14 @@
 	 * @param cboList    鏁版嵁鐨勫唴瀹�
 	 */
 	void batchSaveSelectChar(CodeClassifyTemplateVO templateVO, /*List<ClientBusinessObject> cboList*/
-							 List<String> cboList);
+							 List<BaseModel> cboList);
+
+	/**
+	 * 灏佽寮�鍏崇殑鍐呭锛屽父鐢ㄤ簬瀵煎嚭
+	 * @param dataMap 鏁版嵁鐨勫唴瀹�
+	 * @param templateVO 妯℃澘鐨勬樉绀�
+	 */
+	void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO);
 
 	/**
 	 * 浣跨敤妯℃澘鐨勪富閿幏鍙栬〃鍗曠殑淇℃伅
@@ -151,6 +167,7 @@
 	 * @param conditionMap   鏌ヨ鏉′欢
 	 */
 	void wrapperResembleConditionMap(String value, CodeResembleRuleVO resembleRuleVO, String attrId, Map<String, String> conditionMap);
+
 	/**
 	 * 鑾峰彇浣跨敤鐨勭浉浼兼煡璇㈣鍒�
 	 *
@@ -371,6 +388,15 @@
 	MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid, String functionId);
 
 	/**
+	 * 浣跨敤鍒嗙被涓婚敭锛屾ā鏉夸富閿紝闃舵鏍囪瘑锛屾祦绋嬫ā鏉縦ek鑾峰彇娴佺▼瀹℃壒涓〉闈㈢殑鍐呭锛屽寘鍚寜閽�
+	 *
+	 * @param codeClassifyOid 涓婚搴撳垎绫讳富閿�
+	 * @param functionId      鍔熻兘鐨勭紪鍙�,榛樿5
+	 * @return UI鐩稿叧鐨勫唴瀹�
+	 */
+	MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid, String functionId,String templateId,String taskId,String modelKey);
+
+	/**
 	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鎻掑叆鎿嶄綔
 	 *
 	 * @param btmType 涓氬姟绫诲瀷
@@ -378,6 +404,26 @@
 	 * @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟
 	 */
 	Integer insertBatchByType(String btmType, List<BaseModel> baseModels);
+
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強ID鏌ヨ涓氬姟琛ㄦ暟鎹槸鍚﹂噸澶�
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param ids      澶勭悊鏁版嵁
+	 * @return 鏌ヨ鍒版暟鎹殑鎬绘暟
+	 */
+	Integer selectIdsCounts(String btmType, List<String> ids);
+
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強ID銆丱ID鏌ヨ涓氬姟琛ㄦ暟鎹槸鍚﹂噸澶�
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param id      澶勭悊鏁版嵁id
+	 * @param oid      澶勭悊鏁版嵁oid
+	 * @return 鏌ヨ鍒版暟鎹殑鎬绘暟
+	 */
+	Integer selectIdAndOidCounts(String btmType, String id, String oid);
+
 	/**
 	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖
 	 *
@@ -385,7 +431,8 @@
 	 * @param oids      闇�瑕佹煡璇㈢殑oid闆嗗悎 閫楀彿鍒嗗紑
 	 * @return 鏌ヨ鍑虹殑鏁版嵁
 	 */
-	List<BaseModel> selectByTypeAndOid(String btmType, String oids) ;
+	List<BaseModel> selectByTypeAndOid(String btmType, String oids);
+
 	/**
 	 * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鏇存柊鎿嶄綔
 	 *
@@ -395,4 +442,81 @@
 	 */
 	R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels);
 
+	/**
+	 * 鏇存柊涓氬姟鏁版嵁鍚屾椂瀵圭爜鍊艰〃鏁版嵁鎿嶄綔鎺ュ彛
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param baseModels      澶勭悊鏁版嵁
+	 * @return 澶勭悊鐘舵��
+	 */
+	public R<Integer>updateBatchBtypeDatas(String btmType, List<BaseModel> baseModels);
+
+	/**
+	 * 榛樿鍒楄〃
+	 * @param referConfigVO
+	 * @return
+	 */
+	IPage<BaseModelVO> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) throws VciBaseException;
+
+	/**
+	 * 鑾峰彇鏍戝舰鐨勫弬鐓�
+	 * @param referConfigVO 鍙傜収鐨勯厤缃�
+	 * @return 鏍戝舰鐨勬暟鎹�
+	 */
+	List<Tree> referTree(UIFormReferVO referConfigVO, TreeQueryObject queryObject);
+
+	/**
+	 * 鏄惁涓轰慨鏀瑰拷鐣ョ殑灞炴��
+	 * @param attrName 灞炴�х殑鍚嶅瓧
+	 * @return true 琛ㄧず搴旇蹇界暐
+	 */
+	default boolean checkUnAttrUnEdit(String attrName){
+		return  (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName)
+			||"ts".equalsIgnoreCase(attrName)
+			|| "lastmodifier".equalsIgnoreCase(attrName)
+			|| "lastmodifytime".equalsIgnoreCase(attrName)
+			|| "createtime".equalsIgnoreCase(attrName)
+			|| "checkintime".equalsIgnoreCase(attrName)
+			||"checkouttime".equalsIgnoreCase(attrName));
+	}
+
+	/**
+	 * 娴佺▼涓彉鏇寸姸鎬佸��
+	 * @param flowDTO
+	 * @return
+	 */
+    R processChangeStatus(FlowStatusDTO flowDTO);
+
+	/**
+	 * 鏍¢獙鍏抽敭灞炴��
+	 * @param orderDTO         缂栫爜鐢宠鐨勭浉鍏崇殑淇℃伅
+	 */
+	public List<Map>  checkKeyAttrOnOrderFordatas(CodeOrderDTO orderDTO) ;
+
+	/**
+	 * 鏍规嵁褰撳墠鐢宠缂栫爜鐨勫垎绫伙紝閫愬眰寰�涓婃牎楠屾槸鍚︾鍚堝睘浜庨厤缃殑涓殑鍒嗙被瀛愯妭鐐圭殑鍒�
+	 * 绫伙紝濡傛灉绗﹀悎锛屽垯璇ュ垎绫荤敵璇风殑缂栫爜涓洪泦鍥㈢爜杩斿洖true锛屽弽涔嬪垯涓轰紒涓氱紪鐮佽繑鍥瀎alse
+	 * @param parameter 浼犲叆鏁版嵁,classifyGroupCode:閰嶇疆鐨勪腑鐨勫垎绫婚《鑺傜偣锛宱id锛氶�夋嫨鑺傜偣鐨刼id
+	 */
+	R checkGroupCode(Map<String, String> parameter);
+
+	/**
+	 * 鏍囧噯鐢宠鍜屼慨璁㈢敤
+	 * @param codeBZApplyDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝闇�瑕佹湁灞炴�у拰鐮佹鐩稿叧鐨勪俊鎭�
+	 * @return 鎵ц缁撴灉
+	 */
+	String addSaveBZ(CodeBZApplyDTO codeBZApplyDTO) throws Exception;
+	/**
+	 * 鏍囧噯鐢宠鍜屼慨璁㈢敤
+	 * @param codeBZApplyDTO 缂栫爜鐢宠鐩稿叧鐨勪俊鎭紝闇�瑕佹湁灞炴�у拰鐮佹鐩稿叧鐨勪俊鎭�
+	 * @param authUser 鏄惁妯℃嫙鐧诲綍锛宼rue锛屼笉妯℃嫙锛宖alse鏄ā鎷�
+	 * @return 鎵ц缁撴灉
+	 */
+	String addSaveBZCodeNotauthUser(CodeBZApplyDTO codeBZApplyDTO, boolean authUser) throws Exception;
+	/**
+	 * 鑾峰彇缁熻鍒嗘瀽鏁版嵁
+	 * @param btmNames 涓氬姟绫诲瀷
+	 * @return 鏁版嵁闆�
+	 */
+	R getStatisticAnalysis(String btmNames);
 }

--
Gitblit v1.9.3