From 2fa7336da9fa78ed24a4285198f0bcbccfd4109f Mon Sep 17 00:00:00 2001
From: dangsn <dangsn@chicecm.com>
Date: 星期五, 04 八月 2023 17:24:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |  125 ++++++++++++++++++++++++++---------------
 1 files changed, 80 insertions(+), 45 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 42a8545..dd05221 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
@@ -5,24 +5,21 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
 import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
-import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
 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.*;
 import com.vci.ubcs.code.enumpack.*;
-import com.vci.ubcs.code.mapper.CodeWupinMapper;
 import com.vci.ubcs.code.mapper.CommonsMapper;
 import com.vci.ubcs.code.service.*;
 import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO;
+import com.vci.ubcs.code.vo.CodeReferConfigVO;
 import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
 import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
 import com.vci.ubcs.code.vo.pagemodel.*;
-import com.vci.ubcs.flow.core.entity.ProcessStageAttr;
 import com.vci.ubcs.flow.core.feign.IMDMIFlowAttrClient;
 import com.vci.ubcs.flow.core.vo.ProcessStageAttrVO;
 import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
@@ -41,7 +38,6 @@
 import com.vci.ubcs.starter.util.UBCSSqlKeyword;
 import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
 import com.vci.ubcs.starter.web.constant.RegExpConstant;
-import com.vci.ubcs.starter.web.constant.VciSystemVarConstants;
 import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
 import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
 import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
@@ -70,7 +66,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.Resource;
 import java.beans.BeanInfo;
@@ -96,7 +91,7 @@
  * @date 2022-2-22
  */
 @Service
-public class MdmEngineServiceImpl extends ServiceImpl<CodeWupinMapper, CodeWupin> implements MdmEngineService {
+public class MdmEngineServiceImpl implements MdmEngineService {
 
 
     /**
@@ -104,7 +99,6 @@
      */
     @Resource
     private CodeClstemplateServiceImpl templateService;
-
 
     /**
      * 鐢熸垚缂栫爜鐨勬湇鍔�
@@ -186,8 +180,6 @@
     @Resource
     CommonsMapper commonsMapper;
 
-    @Resource
-    CodeWupinMapper codeWupinMapper;
     /**
      * 缂栫爜瑙勫垯鐨勬湇鍔�
      */
@@ -360,15 +352,10 @@
             throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�");
         }
         //杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
-//		Map<String, String> conditionMap = new HashMap<>();
         QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
         allCodeWrapper.eq("createcodebtm", baseModelDTO.getBtmname());
         allCodeWrapper.in("createcodeoid", oids);
-//		conditionMap.put("createcodeoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
-//		conditionMap.put("createcodebtm", baseModelDTO.getBtmname());
-        List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);
-//		List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
-        // 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
+        List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);// 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
         if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
             R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
             if (!listR.isSuccess() || listR.getData().size() == 0) {
@@ -381,8 +368,11 @@
             for (BaseModel baseModel : baseModels) {
                 baseModel.setLcStatus(baseModelDTO.getLcStatus());
             }
-            updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
-        }
+			R r = updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
+			if(!r.isSuccess()){
+				throw new VciBaseException("鏇存柊鏁版嵁鍑洪敊锛岄噸璇曪紒"+r.getMsg());
+			}
+		}
         for (CodeAllCode codeCbo : codeCbos) {
             codeCbo.setLcStatus(baseModelDTO.getLcStatus());
         }
@@ -429,8 +419,8 @@
 		cbo.setNameOid(VciBaseUtil.getPk());
 		cbo.setCreateTime(new Date());
 		cbo.setLastModifyTime(new Date());
-		cbo.setCreator(AuthUtil.getUser().getUserName());
-		cbo.setLastModifier(AuthUtil.getUser().getUserName());
+		cbo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));
+		cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
 		cbo.setTenantId(AuthUtil.getTenantId());
 //		//TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
         cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
@@ -658,8 +648,8 @@
         });
 
         //娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
-
         if (!CollectionUtils.isEmpty(conditionMap)) {
+			conditionMap.put("CODETEMPLATEOID","'" + orderDTO.getTemplateOid() + "'");
 //			final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
             R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmTypeId()));
 //				String referTable = VciBaseUtil.getTableName(referVO.getReferType());
@@ -811,10 +801,6 @@
         } else {
             fullPath = classifyFullInfo.getCurrentClassifyVO().getOid();
         }
-
-//		BeanUtils.
-//		BeanUtils.copyProperties(orderDTO.getData(),cbo);
-//		cbo.setMaterialtype(Short.valueOf("1001"));
 		orderDTO.getData().forEach((key, value) -> {
 			if (!edit || (!checkUnAttrUnEdit(key) &&
 				!VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) {
@@ -825,9 +811,6 @@
 				}
 			}
 		});
-//		BeanMap beanMap = BeanMap.create(cbo);
-//		beanMap.putAll(orderDTO.getData());
-
         try {
 			Map<String, String> data = new HashMap<>();
             data.put(cbo.getData().containsKey(CODE_CLASSIFY_OID_FIELD.toUpperCase())?CODE_CLASSIFY_OID_FIELD.toUpperCase():CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid());
@@ -1016,7 +999,11 @@
                 lineVO.setField(attrVO.getId() + "_line");
                 lineVO.setType("line");
                 lineVO.setText(key);
-                //鎵句綅缃�
+				List<CodeClassifyTemplateAttrVO> collect = value.stream().filter(s -> "true".equals(s.getFormDisplayFlag())).collect(Collectors.toList());
+				if(collect.size() == 0){
+					continue;
+				}
+				//鎵句綅缃�
                 for (int i = 0; i < itemVOS.size(); i++) {
                     UIFormItemVO record = itemVOS.get(i);
                     if (record.getField().equalsIgnoreCase(attrVO.getId())) {
@@ -1118,8 +1105,9 @@
             itemVO.setType("refer");
             itemVO.setShowField(itemVO.getField() + "name");
             if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
-                //閰嶇疆鐨勫唴瀹�
-                itemVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+                // 閰嶇疆鐨勫唴瀹�
+                // itemVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+				itemVO.setReferConfig(referConfigToUIUiTable(attrVO.getReferConfig()));
             } else {
                 UIFormReferVO formReferVO = new UIFormReferVO();
                 formReferVO.setType("default");
@@ -1233,7 +1221,8 @@
             fieldVO.setShowField(fieldVO.getField());
             if (StringUtils.isNotBlank(attrVO.getReferConfig())) {
                 //閰嶇疆鐨勫唴瀹�
-                fieldVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+                // fieldVO.setReferConfig(JSONObject.parseObject(attrVO.getReferConfig(), UIFormReferVO.class));
+				fieldVO.setReferConfig(referConfigToUIUiTable(attrVO.getReferConfig()));
             } else {
                 UIFormReferVO formReferVO = new UIFormReferVO();
                 formReferVO.setType("default");
@@ -1266,6 +1255,51 @@
         return fieldVO;
     }
 
+	/**
+	 * 灏唕eferconfig杞崲涓篔SON鏍煎紡鐨刄IFormReferVO
+	 * @param codeReferConfigVO
+	 * @return
+	 */
+	private UIFormReferVO referConfigToUIUiTable(String codeReferConfigVO){
+		CodeReferConfigVO codeReferConfig = JSONObject.parseObject(codeReferConfigVO, CodeReferConfigVO.class);
+		// 鎷疯礉涓轰互鍓嶇殑鑰佸璞�
+		UIFormReferVO uiFormReferVO = new UIFormReferVO();
+		org.springblade.core.tool.utils.BeanUtil.copy(codeReferConfig,uiFormReferVO);
+
+		// 琛ㄦ牸鐨勮嚜瀹氫箟瀹氫箟
+		UITableCustomDefineVO uiTableConfigVO = new UITableCustomDefineVO();
+		uiTableConfigVO.setPage(new UITablePageVO(codeReferConfig.getLimit(),1));
+		// 鍒楄〃鐨勫垪鐨勪俊鎭浆鎹�
+		List<UITableFieldVO> uiTableFieldVOs = new ArrayList<>();
+		// 蹇�熸煡璇㈠垪
+		List<UITableFieldVO> queryColumns = new ArrayList<>();
+		if(!CollectionUtils.isEmpty(codeReferConfig.getCodeShowFieldConfigVOS())){
+			codeReferConfig.getCodeShowFieldConfigVOS().stream().forEach(showField ->{
+				UITableFieldVO tableColVO = new UITableFieldVO();
+				org.springblade.core.tool.utils.BeanUtil.copy(showField,tableColVO);
+				tableColVO.setSortField(showField.getAttrSortField());
+				uiTableFieldVOs.add(tableColVO);
+				if(showField.getIsQuery().equals("true")){
+					queryColumns.add(tableColVO);
+				}
+			});
+		}
+		// 鏄剧ず鐨勫垪
+		uiTableConfigVO.setCols(uiTableFieldVOs);
+		// 蹇�熸煡璇㈠垪
+		uiTableConfigVO.setQueryColumns(queryColumns);
+		//set缁欒〃鏍奸厤缃睘鎬�
+		uiFormReferVO.setTableConfig(uiTableConfigVO);
+		// 绛涢�夋潯浠�
+		HashMap<String, String> whereMap = new HashMap<>();
+		if(!codeReferConfig.getCodeSrchCondConfigVOS().isEmpty()){
+			codeReferConfig.getCodeSrchCondConfigVOS().stream().forEach(srch->{
+				whereMap.put(srch.getFilterField()+srch.getFilterType(),srch.getFilterValue());
+			});
+		}
+		uiFormReferVO.setWhere(whereMap);
+		return uiFormReferVO;
+	}
 
     /**
      * 鐩镐技椤规煡璇�
@@ -3354,14 +3388,18 @@
                                 && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())) {
                             setter.invoke(obj, ((BigDecimal) map.get(property.getName().toUpperCase())).intValue());
                             map.remove(property.getName().toUpperCase());
-                        } else if (map.get(property.getName().toUpperCase()) != null) {
-                            setter.invoke(obj, map.get(property.getName().toUpperCase()));
+                        } else if (map.containsKey(property.getName().toUpperCase())) {
+							if(setter.getParameterTypes()[0].getSimpleName().equals("String")){
+								setter.invoke(obj, map.get(property.getName().toUpperCase()) == null ? null:String.valueOf(map.get(property.getName().toUpperCase())));
+							}else{
+								setter.invoke(obj, map.get(property.getName().toUpperCase()));
+							}
                             map.remove(property.getName().toUpperCase());
                         }
                     }
                 }
                 for (Object key : map.keySet()) {
-                    map.put(key, String.valueOf(map.get(key)));
+                    map.put(key, map.get(key) == null ? null : String.valueOf(map.get(key)));
                 }
 
                 ((BaseModel) obj).setData(map);
@@ -3520,7 +3558,7 @@
             throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�");
         }
         if (listR.getData().isEmpty()) {
-            throw new VciBaseException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+            throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
         String namesql = "";
         if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("name"))) {
@@ -3578,7 +3616,11 @@
                             setter.invoke(obj, ((BigDecimal) map.get(property.getName().toUpperCase())).intValue());
                             map.remove(property.getName().toUpperCase());
                         } else if (map.get(property.getName().toUpperCase()) != null) {
-                            setter.invoke(obj, map.get(property.getName().toUpperCase()));
+							if(setter.getParameterTypes()[0].getSimpleName().equals("String")){
+								setter.invoke(obj, map.get(property.getName().toUpperCase()) == null ? null:String.valueOf(map.get(property.getName().toUpperCase())));
+							}else{
+								setter.invoke(obj, map.get(property.getName().toUpperCase()));
+							}
                             map.remove(property.getName().toUpperCase());
                         }
                     }
@@ -3755,8 +3797,6 @@
 
     public BaseModel reviseBusinessObject(BaseModel fromBo) {
         BaseModel toBo = new BaseModel();
-//		Map<String,String> data = new HashMap<>();
-//		toBo.getData().put(data);
         toBo.setOid(VciBaseUtil.getPk());
         toBo.setRevisionOid(VciBaseUtil.getPk());
         toBo.setNameOid(fromBo.getNameOid());
@@ -3770,16 +3810,13 @@
         toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
         toBo.setLastModifyTime(new Date());
         toBo.setRevisionRule(fromBo.getRevisionRule());
-        toBo.setVersionRule(fromBo.getVersionRule());
-//		RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal);
-        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname()));
+        toBo.setVersionRule(fromBo.getVersionRule());R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname()));
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
         Map<String, Object> nextRevision = commonsMapper.getNextRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid());
         toBo.setRevisionSeq(Integer.parseInt(nextRevision.get("REVISIONSEQ").toString()));
         toBo.setRevisionValue(nextRevision.get("REVISIONVAL").toString());
-//		VersionValueObject versionObj = this.getVersionValue(item.verRuleName);
         toBo.setVersionSeq(Integer.valueOf(nextRevision.get("VERSIONSEQ").toString()));
         toBo.setVersionValue(nextRevision.get("VERSIONVAL").toString());
         toBo.setLctid(fromBo.getLctid());
@@ -3788,11 +3825,9 @@
         toBo.setName(fromBo.getName());
         toBo.setDescription(fromBo.getDescription());
         toBo.setOwner(String.valueOf(AuthUtil.getUser().getUserId()));
-//		toBo.setCheckinBy(String.valueOf(AuthUtil.getUser().getUserId()));
         toBo.setCopyFromVersion(fromBo.getOid());
         toBo.getData().putAll(fromBo.getData());
         toBo.getData().put("CHECKINBY", String.valueOf(AuthUtil.getUser().getUserId()));
-//		this.initRevisionTypeAttributeValue(fromBo, toBo);
         return toBo;
 
     }

--
Gitblit v1.9.3