From 885d8364166b6e952e0af2eb4cf4e44c59544b96 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 31 十月 2023 16:36:25 +0800
Subject: [PATCH] 新增用户界面去掉岗位

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |  138 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 105 insertions(+), 33 deletions(-)

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 0a3fb50..68a43ff 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
@@ -16,7 +16,6 @@
 import com.vci.ubcs.code.enumpack.*;
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.*;
-import com.vci.ubcs.code.util.ClientBusinessObject;
 import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
 import com.vci.ubcs.code.vo.CodeReferConfigVO;
 import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
@@ -57,7 +56,6 @@
 import com.vci.ubcs.system.user.feign.IUserClient;
 import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
 import oracle.sql.TIMESTAMP;
-import org.aspectj.apache.bcel.classfile.Code;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.core.cache.utils.CacheUtil;
@@ -385,14 +383,35 @@
         codeAllCodeService.updateBatchById(codeCbos);
     }
 
+	/**
+	 * 鐢宠鍗曚竴缂栫爜
+	 *
+	 * @param orderDTO 鐢宠鐨勪俊鎭紝闇�瑕佸寘鍚睘鎬х殑鍐呭鍜岀爜娈电浉鍏崇殑鍐呭
+	 * @return 杩斿洖缂栫爜鐨勫唴瀹�
+	 */
+	@Override
+	public String addSaveCode(CodeOrderDTO orderDTO) throws Exception {
+		return addSaveCode(orderDTO,true);
+	}
+
+	/***
+	 * 闆嗘垚鍙彉鐮佹鐢宠鎺ュ彛
+	 * @param orderDTO 鐢宠鐨勪俊鎭紝闇�瑕佸寘鍚睘鎬х殑鍐呭鍜岀爜娈电浉鍏崇殑鍐呭
+	 * @return
+	 * @throws Exception
+	 */
+	@Override
+	public String addSaveCodeNotauthUser(CodeOrderDTO orderDTO, boolean authUser) throws Exception {
+		return	addSaveCode(orderDTO,authUser);
+	}
+
     /**
      * 鐢宠鍗曚竴缂栫爜
      *
      * @param orderDTO 鐢宠鐨勪俊鎭紝闇�瑕佸寘鍚睘鎬х殑鍐呭鍜岀爜娈电浉鍏崇殑鍐呭
      * @return 杩斿洖缂栫爜鐨勫唴瀹�
      */
-    @Override
-    public String addSaveCode(CodeOrderDTO orderDTO) throws Exception {
+    private String addSaveCode(CodeOrderDTO orderDTO,boolean authUser) throws Exception {
         VciBaseUtil.alertNotNull(orderDTO, "缂栫爜鐢宠鐩稿叧鐨勫睘鎬у拰鐮佹鐨勫唴瀹归兘涓虹┖", orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭",
                 orderDTO.getTemplateOid(), "妯℃澘鐨勪富閿�", orderDTO.getCodeRuleOid(), "缂栫爜瑙勫垯鐨勪富閿�");
         CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
@@ -417,23 +436,30 @@
         //9.鐢熸垚缂栫爜鐨勪俊鎭�
 //		ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
         BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmTypeId());
-//		//榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
-//		//璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
+		//榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
+		//璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
         copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
 		cbo.setOid(VciBaseUtil.getPk());
 		cbo.setRevisionOid(VciBaseUtil.getPk());
 		cbo.setNameOid(VciBaseUtil.getPk());
 		cbo.setCreateTime(new Date());
 		cbo.setLastModifyTime(new Date());
-		cbo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
-		cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		//cbo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));銆�
+		if(authUser) {
+			// 瑕佹眰鏄剧ず璐﹀彿锛屾墍浠ュ仛浜嗘洿鏀�
+			cbo.setCreator(String.valueOf(AuthUtil.getUser().getAccount()));
+			cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
+		}else{
+			cbo.setCreator(orderDTO.getCreator());
+			cbo.setLastModifier(orderDTO.getLastModifier());
+		}
 		cbo.setTenantId(AuthUtil.getTenantId());
 		if(StringUtils.isNotBlank(orderDTO.getLcStatus())||StringUtils.isNotBlank(orderDTO.getData().get("lcStatus"))){
 			cbo.setLcStatus(StringUtils.isNotBlank(orderDTO.getLcStatus())?orderDTO.getLcStatus():orderDTO.getData().get("lcStatus"));
 		}
-//		//TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
+		//TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
         cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
-//		//end -- modify by lihang @20220407
+		//end -- modify by lihang @20220407
         List<BaseModel> cboList = new ArrayList<>();
 
         //澶囨敞
@@ -489,7 +515,6 @@
             });
         }
     }
-
 
     /**
      * 鍒ゆ柇缂栫爜鐨勭爜娈垫槸鍚﹁緭鍏ユ垨鑰呴�夋嫨浜嗙爜鍊�
@@ -727,7 +752,11 @@
 			}
 			final String[] sql = {"select * from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "};
 			conditionMap.forEach((key, value) -> {
-				sql[0] += " and " + key + " = " + value;
+				if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)) {
+					sql[0] += " and " + key + " is null";
+				}else{
+					sql[0] += " and " + key + " = " + value;
+				}
 			});
 			if (StringUtils.isNotBlank(orderDTO.getOid())) {
 				//淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸�
@@ -916,7 +945,8 @@
             data.put(cbo.getData().containsKey(CODE_FULL_PATH_FILED.toUpperCase())?CODE_FULL_PATH_FILED.toUpperCase():CODE_FULL_PATH_FILED, fullPath);
             cbo.getData().putAll(data);
             cbo.setLastModifyTime(new Date());
-            cbo.setLastModifier(AuthUtil.getUser().getUserName());
+            //cbo.setLastModifier(AuthUtil.getUser().getUserName());
+			cbo.setLastModifier(AuthUtil.getUser().getAccount());
             cbo.setTs(new Date());
             if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) {
                 //TODO 鍏堝啓鍥哄畾锛屽悗闈㈢敓鍛藉懆鏈熷ソ浜嗗湪缂栧啓
@@ -989,22 +1019,22 @@
             List<CodeClassifyTemplateAttrVO> selectAttrVOs = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getLibraryIdentification())).collect(Collectors.toList());
 
             if (!CollectionUtils.isEmpty(selectAttrVOs)) {
-//				SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
+				//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
                 selectAttrVOs.parallelStream().forEach(attrVO -> {
                     List<String> valuesList = new ArrayList<>();
                     cboList.parallelStream().forEach(cbo -> {
-//						String value = cbo.get.getAttributeValue(attrVO.getId());
+						//String value = cbo.get.getAttributeValue(attrVO.getId());
 
                         //灏哹ean杞负map,mybatis缁熶竴澶勭悊
                         Map<String, String> map = null;
 
-//						baseModels.stream().forEach(model-> {
+						//baseModels.stream().forEach(model-> {
                         try {
                             map = VciBaseUtil.convertBean2Map(cbo,null);
                         } catch (Exception e) {
                             throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.getMessage());
                         }
-//						});
+						//});
 
                         String value = map.get(attrVO.getId());
                         if (StringUtils.isNotBlank(value)) {
@@ -1390,7 +1420,8 @@
 		//set缁欒〃鏍奸厤缃睘鎬�
 		uiFormReferVO.setTableConfig(uiTableConfigVO);
 		//瀛楁鍚嶄笉涓�鑷达紝闇�瑕佹墜鍔╯et
-		uiFormReferVO.setMuti(Func.toBoolean(codeReferConfig.getIsMuti()));
+
+		uiFormReferVO.setMuti(StringUtils.isBlank(codeReferConfig.getIsMuti())?false:true);
 		uiFormReferVO.setInitSort(new UIFieldSortVO(codeReferConfig.getSortField(),codeReferConfig.getSortType()));
 		// 绛涢�夋潯浠�
 		HashMap<String, String> whereMap = new HashMap<>();
@@ -1939,7 +1970,7 @@
                     //璇存槑杩樻槸鍙傜収閲岄潰鐨勶紝鎴戜滑榛樿杩欑鎯呭喌涓嬮兘鏄瓧绗︿覆鍚э紝鍥犱负鍙傜収鐨勫睘鎬т笉涓�瀹氱敤鐨勫钩鍙扮殑灞炴�ф睜閲岀殑锛屾墍浠ュぇ閮ㄥ垎鎯呭喌涓嬶紝鏄剧ず鐨勫睘鎬ч兘鏄瓧绗︿覆鍚�
                     return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE;
                 } else {
-                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "'%" + getStringValueInWhere(field, value, attrVOMap) + "%'" + SPACE;
+                    return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "'%" + value + "%'" + SPACE;
                 }
             } else if (key.endsWith("_notequal")) {
                 String field = UBCSSqlKeyword.getColumn(key, "_notequal");
@@ -1974,7 +2005,7 @@
                 if (referFieldMap.containsKey(field)) {
                     return referFieldMap.get(field) + SPACE + " >= " + value + SPACE;
                 } else {
-                    return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap) + SPACE;
+                    return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
                 }
             } else if (key.endsWith("_le")) {
                 //璇存槑鏄�<=鐨勩�傛垜浠渶瑕佸厛鑾峰彇涓�涓�
@@ -2059,7 +2090,7 @@
                 if (referFieldMap.containsKey(field)) {
                     return referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE;
                 } else {
-                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
+                    return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE;
                 }
             } else {
 //                if (referFieldMap.containsKey(key)) {
@@ -2355,9 +2386,12 @@
         }
 //		cbo.getData().putAll(orderDTO.getData());
         cbo.setLastModifyTime(new Date());
-        cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
-        updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), Collections.singletonList(cbo));
-        batchSaveSelectChar(templateVO, Collections.singletonList(cbo));
+        cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
+		R r = updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), Collections.singletonList(cbo));
+		if(!r.isSuccess()){
+			throw new ServiceException(r.getMsg());
+		}
+		batchSaveSelectChar(templateVO, Collections.singletonList(cbo));
     }
 
     /**
@@ -2395,7 +2429,7 @@
         }
 
         //鍙兘鍒犻櫎鑷繁鍒涘缓鐨勬暟鎹�
-        String userId = String.valueOf(AuthUtil.getUser().getUserId());
+        String userId = String.valueOf(AuthUtil.getUser().getAccount());
         for (BaseModel clientBusinessObject : cboList) {
             String creator = clientBusinessObject.getCreator();
             if (!userId.equalsIgnoreCase(creator)) {
@@ -2407,10 +2441,10 @@
 //		batchCBO.getDeleteCbos().addAll(cboList);
 //		WebUtil.setPersistence(false);
 //		batchCBO.copyFromOther(
-        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
+        productCodeService.recycleCode(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
 //		baseMapper.deleteBatchIds(cboList);
         //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
-        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId()));
+        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId()));
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
@@ -2724,7 +2758,7 @@
         cbo.setLastModifyTime(cbo.getLastModifyTime());
 		cbo.setTenantId(AuthUtil.getTenantId());
 		oldCbo.setLastV("0");
-		oldCbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		oldCbo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
 		oldCbo.setLastModifyTime(new Date());
         try {
 			updateBatchByBaseModel(oldCbo.getBtmname(), Collections.singletonList(oldCbo));
@@ -2876,7 +2910,7 @@
             }
             List<CodeClassifyVO> parentClassifyVOList = fullInfoBO.getParentClassifyVOs().stream().sorted((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel())).collect(Collectors.toList());
             //浠庢渶楂樼殑level寮�濮嬭幏鍙�
-            for (int i = 0; i < parentClassifyVOList.size(); i++) {
+            for (int i = parentClassifyVOList.size()-1; i >= 0; i--) {
                 CodeClassifyVO record = parentClassifyVOList.get(i);
                 if (StringUtils.isNotBlank(record.getCodeRuleOid())) {
                     codeRuleOid = record.getCodeRuleOid();
@@ -3515,6 +3549,42 @@
         });
         return commonsMapper.insertByBaseModel(listR.getData().get(0).getTableName(), maps.get(0), maps);
     }
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強ID鏌ヨ涓氬姟琛ㄦ暟鎹槸鍚﹂噸澶�
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param ids      澶勭悊鏁版嵁
+	 * @return 鏌ヨ鍒版暟鎹殑鎬绘暟
+	 */
+    @Override
+    public Integer selectIdsCounts(String btmType, List<String> ids) {
+        //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+        if (!listR.isSuccess() || listR.getData().size() == 0) {
+            throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+        }
+		return commonsMapper.queryCountBySql("select count(*) from " +
+			listR.getData().get(0).getTableName() + " where id in ("+ ids.stream().map(s -> "'" + s + "'").collect(Collectors.joining(",")) +")");
+    }
+
+	/**
+	 * 浼犲叆涓氬姟绫诲瀷浠ュ強ID銆丱ID鏌ヨ涓氬姟琛ㄦ暟鎹槸鍚﹂噸澶�
+	 *
+	 * @param btmType 涓氬姟绫诲瀷
+	 * @param id      澶勭悊鏁版嵁id
+	 * @param oid      澶勭悊鏁版嵁oid
+	 * @return 鏌ヨ鍒版暟鎹殑鎬绘暟
+	 */
+	@Override
+	public Integer selectIdAndOidCounts(String btmType, String id, String oid) {
+		//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+		R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+		if (!listR.isSuccess() || listR.getData().size() == 0) {
+			throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+		}
+		return commonsMapper.queryCountBySql("select count(*) from " +
+			listR.getData().get(0).getTableName() + " where id ='" + id + "' and oid <> '" + oid + "'");
+	}
 
     /**
      * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖
@@ -3733,7 +3803,8 @@
 					if(cboMap.containsKey(oid)){
 						CodeAllCode codeAllCode=	cboMap.get(oid);
 						codeAllCode.setId(baseModel.getId());
-						codeAllCode.setLastModifier(AuthUtil.getUser().getUserName());
+						// codeAllCode.setLastModifier(AuthUtil.getUser().getUserName());
+						codeAllCode.setLastModifier(AuthUtil.getUser().getAccount());
 						codeAllCode.setLastModifyTime(new Date());
 						codeAllCode.setLcStatus(baseModel.getLcStatus());
 						newCodeAllCodeList.add(codeAllCode);
@@ -4034,9 +4105,11 @@
         toBo.setFirstR(String.valueOf(0));
         toBo.setFirstV(String.valueOf(1));
         toBo.setLastV(String.valueOf(1));
-        toBo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
+		// 鏁版嵁鍗囩増涓嶉渶瑕侀噸鏂拌缃垱寤轰汉锛屽彧瀵规渶鍚庝慨鏀逛汉鍋氭洿鏂板氨鍙互浜�
+        //toBo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
         toBo.setCreateTime(new Date());
-        toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+        // toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
+		toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
         toBo.setLastModifyTime(new Date());
         toBo.setRevisionRule(fromBo.getRevisionRule());
         toBo.setVersionRule(fromBo.getVersionRule());R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname()));
@@ -4058,7 +4131,6 @@
         toBo.getData().putAll(fromBo.getData());
         toBo.getData().put("CHECKINBY", String.valueOf(AuthUtil.getUser().getUserId()));
         return toBo;
-
     }
 
 	/**

--
Gitblit v1.9.3