From d5fae6385b7f55cb84986b4b7fa341ad1cd9f75f Mon Sep 17 00:00:00 2001
From: zhangxp <zhangxp@chicecm.com>
Date: 星期四, 01 六月 2023 18:31:04 +0800
Subject: [PATCH] 集成接口联调
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 518 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 364 insertions(+), 154 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 b938916..5f36b78 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
@@ -3,25 +3,32 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+import com.fasterxml.jackson.databind.ObjectMapper;
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.CodeAllCodeMapper;
import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
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.pagemodel.*;
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.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.feign.IEnumClient;
+import com.vci.ubcs.omd.feign.IRevisionRuleClient;
+import com.vci.ubcs.omd.vo.BtmTypeVO;
+import com.vci.ubcs.omd.vo.EnumVO;
+import com.vci.ubcs.omd.vo.RevisionRuleVO;
import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.model.BaseModel;
import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
@@ -31,24 +38,35 @@
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.ubcs.starter.web.pagemodel.*;
import com.vci.ubcs.starter.web.toolmodel.DateConverter;
-import com.vci.ubcs.starter.web.util.VciBaseUtil;
-import com.vci.ubcs.starter.web.util.VciDateUtil;
-import com.vci.ubcs.starter.web.util.VciQueryWrapperForDO;
-import com.vci.ubcs.starter.web.util.WebUtil;
+import com.vci.ubcs.starter.web.util.*;
import com.vci.ubcs.system.entity.DictBiz;
import com.vci.ubcs.system.feign.IDictBizClient;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils;
+import oracle.sql.TIMESTAMP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
-import org.springframework.beans.BeanUtils;
+import org.springblade.core.tool.utils.StringPool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
-import java.io.Serializable;
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.sql.SQLException;
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@@ -64,7 +82,7 @@
* @date 2022-2-22
*/
@Service
-public class MdmEngineServiceImpl extends ServiceImpl<CodeWupinMapper, CodeWupinEntity> implements MdmEngineService {
+public class MdmEngineServiceImpl extends ServiceImpl<CodeWupinMapper, CodeWupin> implements MdmEngineService {
/**
@@ -85,10 +103,15 @@
@Resource
private MdmProductCodeService productCodeService;
/**
- * 瀛楀吀鐨勬湇鍔�
+ * 鍙緭鍙�夌殑鏈嶅姟
*/
@Resource
IDictBizClient iDictBizClient;
+ /**
+ * 瀛楀吀鐨勬湇鍔�
+ */
+ @Resource
+ IEnumClient enumClient;
/**
* 鍏紡鐨勬湇鍔�
*/
@@ -112,6 +135,16 @@
*/
@Autowired
private ICodePhaseAttrService phaseAttrService;
+ /**
+ * 涓氬姟绫诲瀷鐨勬湇鍔�
+ */
+ @Autowired
+ private IBtmTypeClient btmTypeClient;
+ /**
+ * 鐗堟湰瑙勫垯鐨勬湇鍔�
+ */
+ @Resource
+ private IRevisionRuleClient revisionRuleClient;
//
/**
* 閫氱敤鏌ヨ
@@ -149,6 +182,9 @@
*/
@Autowired
private ICodeClassifyTemplateButtonService templateButtonService;
+
+ @Autowired
+ private ICodeClassifyTemplateAttrService codeClassifyTemplateAttrService;
// /**
// * 鐢ㄦ埛鏌ヨ鐨勬湇鍔�,闇�瑕侀棶涓�涓嬫槸鍚﹂渶瑕侀噸鍐欙紝浣跨敤鏌ヨ姝ゅ钩鍙扮殑鐢ㄦ埛琛�
// */
@@ -169,6 +205,14 @@
* 绌烘牸
*/
public static final String SPACE = " ";
+ /**
+ * 缂撳瓨锝嬶絽锝�
+ */
+ public static final String BTM_INIT_CACHE = "ubcs-code:btm";
+ /**
+ *
+ */
+ public static final String BTM_NAME = "btm:name";
/**
* 瀵嗙骇鐨勫瓧娈�
@@ -242,19 +286,19 @@
*/
@Override
public List<KeyValue> listComboboxItems(CodeClassifyTemplateAttrVO attrVO) {
- List<KeyValue> comboboxKVs = null;
+ List<KeyValue> comboboxKVs = new ArrayList<>();
if (StringUtils.isNotBlank(attrVO.getEnumString())) {
comboboxKVs = JSONObject.parseArray(attrVO.getEnumString(), KeyValue.class);
} else {
// comboboxKVs = enumService.getEnum(attrVO.getEnumid());
// Dict dict = new Dict();
// dict.setParentId(Long.valueOf(attrVO.getEnumid()));
- R<List<DictBiz>> list = iDictBizClient.getList(attrVO.getEnumId());
+ R<List<EnumVO>> list = enumClient.getList(attrVO.getEnumId());
if(list.isSuccess()){
- for (DictBiz datum : list.getData()) {
+ for (EnumVO datum : list.getData()) {
KeyValue keyValue = new KeyValue();
- keyValue.setKey(datum.getDictKey());
- keyValue.setValue(datum.getDictValue());
+ keyValue.setKey(datum.getItemValue());
+ keyValue.setValue(datum.getItemName());
comboboxKVs.add(keyValue);
}
}
@@ -305,7 +349,7 @@
* @return 杩斿洖缂栫爜鐨勫唴瀹�
*/
@Override
- public String addSaveCode(CodeOrderDTO orderDTO) {
+ public String addSaveCode(CodeOrderDTO orderDTO) throws Exception {
VciBaseUtil.alertNotNull(orderDTO, "缂栫爜鐢宠鐩稿叧鐨勫睘鎬у拰鐮佹鐨勫唴瀹归兘涓虹┖", orderDTO.getCodeClassifyOid(), "涓婚搴撳垎绫荤殑涓婚敭",
orderDTO.getTemplateOid(), "妯℃澘鐨勪富閿�", orderDTO.getCodeRuleOid(), "缂栫爜瑙勫垯鐨勪富閿�");
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
@@ -329,14 +373,14 @@
switchDateAttrOnOrder(templateVO, orderDTO);
//9.鐢熸垚缂栫爜鐨勪俊鎭�
// ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
- CodeWupinEntity cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
+ BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
// //榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
// //璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
// //TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
// //end -- modify by lihang @20220407
- List<CodeWupinEntity> cboList = new ArrayList<>();
+ List<BaseModel> cboList = new ArrayList<>();
//澶囨敞
cbo.setDescription(orderDTO.getDescription());
@@ -347,8 +391,8 @@
List<String> charList = new ArrayList<>();
- for (CodeWupinEntity wupinEntity : cboList) {
- charList.add(wupinEntity.getId());
+ for (BaseModel baseModel : cboList) {
+ charList.add(baseModel.getId());
}
batchSaveSelectChar(templateVO, charList);
return codeList.size() > 0 ? codeList.get(0) : "";
@@ -561,7 +605,9 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
- final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
+ //琛ㄩ渶瑕佹敼
+// final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
+ final String[] sql = {"select count(*) from pl_code_wupin t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
sql[0] += " and " + key + " = " + value;
});
@@ -696,9 +742,9 @@
* @param templateVO 妯℃澘鐨勬樉绀哄璞�
* @param edit 鏄惁涓轰慨鏀�
*/
- private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, CodeWupinEntity cbo,
+ private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, BaseModel cbo,
CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO,
- boolean edit) {
+ boolean edit) {
String fullPath = "";
if (!CollectionUtils.isEmpty(classifyFullInfo.getParentClassifyVOs())) {
fullPath = classifyFullInfo.getParentClassifyVOs().stream().sorted(((o1, o2) -> o2.getDataLevel().compareTo(o1.getDataLevel())))
@@ -708,8 +754,8 @@
}
// BeanUtils.
- BeanUtils.copyProperties(orderDTO.getData(),cbo);
- cbo.setMaterialtype(Short.valueOf("1001"));
+// 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))) {
@@ -720,18 +766,23 @@
// }
// }
// });
+// BeanMap beanMap = BeanMap.create(cbo);
+// beanMap.putAll(orderDTO.getData());
+
try {
- cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid());
- cbo.setCodetemplateoid(templateVO.getOid());
- cbo.setCodeclsfpath(fullPath);
-// cbo.setMaterialclassify("model_type");
-// cbo.setMaterialname(orderDTO.getData().get("materialname"));
-// cbo.setShifoupihaoguanli("true");
-// cbo.setKucunwl("true");
-// cbo.setXiaoshouwl("false");
+ BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(BaseModel.class,orderDTO.getData()),cbo);
+ Map<String,String> data = new HashMap<>();
+ data.put(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid());
+ data.put(CODE_TEMPLATE_OID_FIELD,templateVO.getOid());
+ data.put(CODE_FULL_PATH_FILED,fullPath);
+ cbo.setData(data);
+// cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid());
+// cbo.setTemplateOid(templateVO.getOid());
+// cbo.setCodeclsfpath(fullPath);
+ cbo.setTs(new Date());
if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) {
- //鎵剧敓鍛藉懆鏈熺殑璧峰鐘舵�侊紝鎻掍釜鐐癸紝鐪嬬敓鍛藉懆鏈熸槸鍚﹂渶瑕佸垱寤�
+ //鍏堝啓鍥哄畾锛屽悗闈㈢敓鍛藉懆鏈熷ソ浜嗗湪缂栧啓
if (StringUtils.isNotBlank(cbo.getLctid())) {
// OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(cbo.getLctid());
// if (lifeCycleVO != null) {
@@ -746,7 +797,7 @@
}
- int secret = VciBaseUtil.getInt(cbo.getSecretGrade().toString());
+ int secret = VciBaseUtil.getInt(String.valueOf(cbo.getSecretGrade()));
//鎻掍釜鐐癸紝鍚庣画鐪嬪瘑绾ф湇鍔℃槸鍚﹀彲鐢�
// if (secret == 0 || !secretService.checkDataSecret(secret)) {
if (secret == 0 ) {
@@ -768,72 +819,65 @@
* @throws VciBaseException 鍒濆鍖栧嚭閿欑殑鏄細鎶涘嚭寮傚父
*/
@Override
- public CodeWupinEntity createCBOByBtmName(String btmName)
+ public BaseModel createCBOByBtmName(String btmName)
throws VciBaseException {
if(btmName!=null){
btmName = btmName.trim().toLowerCase();
}
- String userid = AuthUtil.getUser().getUserName();
-// if(!hasCreatedCbos.containsKey(btmName)){
-// if(StringUtils.isEmpty(userid)){
-// throw new VciBaseException(msgCodePrefix +"noHasUserid");
-// }
-// try {
-// hasCreatedCbos.put(btmName, createBusinessObject(btmName));
-// } catch (Exception e) {
-// logger.error("鍒涘缓涓氬姟绫诲瀷瀵硅薄",e);
-// throw new VciBaseException(msgCodePrefix + "initBoError",new String[]{btmName});
-// }
-// }
-// ClientBusinessObject cbo = cloneClientBusinessObject(hasCreatedCbos.get(btmName));
-
- QueryWrapper<CodeOsbtmtypeEntity> btmWrapper = new QueryWrapper<>();
- btmWrapper.eq("ID",btmName);
- CodeOsbtmtypeEntity btmTypeVO = codeOsbtmtypeMapper.selectOne(btmWrapper);
-// OsBtmTypeVO btmTypeVO = btmService.getBtmById(boName);
- String userName = AuthUtil.getUser().getUserName();
- CodeWupinEntity wupinEntity = new CodeWupinEntity();
- wupinEntity.setOid(null);
-// bo.setRevisionid((new ObjectUtility()).getNewObjectID36());
-// bo.setNameoid((new ObjectUtility()).getNewObjectID36());
- wupinEntity.setBtmname(btmName);
- wupinEntity.setLastR(String.valueOf(1));
- wupinEntity.setFirstR(String.valueOf(1));
- wupinEntity.setFirstV(String.valueOf(1));
- wupinEntity.setLastV(String.valueOf(1));
- wupinEntity.setCreator(userName);
- wupinEntity.setCreateTime(new Date());
- wupinEntity.setLastModifier(userName);
- wupinEntity.setLastModifyTime(new Date());
- wupinEntity.setRevisionRule(btmTypeVO.getRevisionruleid());
- wupinEntity.setVersionRule(String.valueOf(btmTypeVO.getVersionRule()));
- if(StringUtils.isNotBlank(btmTypeVO.getRevisionruleid())){
- //鎻掍釜鐐癸紝闇�瑕侀棶鍕囧摜鐗堟湰闂锛屽睍绀洪粯璁や负1
-// OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionruleid());
- wupinEntity.setRevisionValue("1");
+ try {
+ String keyPrefix = BTM_NAME.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
+ String finalBtmName = btmName;
+ return CacheUtil.get(BTM_INIT_CACHE, keyPrefix, btmName, () -> {
+ BaseModel baseModel = createBaseModel(finalBtmName);
+ return baseModel;
+ });
+ } catch (Exception e) {
+ logger.error("鍒涘缓涓氬姟绫诲瀷瀵硅薄",e);
+ throw new VciBaseException("initBtmError",new String[]{btmName});
}
-
- wupinEntity.setRevisionSeq(1);
- wupinEntity.setVersionSeq(1);
- //鎻掍釜鐐癸紝闇�瑕侀棶鍕囧摜鐗堟湰闂锛屽睍绀洪粯璁や负1
- wupinEntity.setVersionValue("1");
- wupinEntity.setLctid("wupinLC");
- wupinEntity.setLcStatus("Editing");
- wupinEntity.setId("");
- wupinEntity.setName("");
- wupinEntity.setDescription("");
- wupinEntity.setOwner(userName);
- wupinEntity.setCheckinby(userName);
- wupinEntity.setCopyFromVersion("");
- wupinEntity.setMaterialtype((short) 1001);
- wupinEntity.setCaigouwl("true");
- wupinEntity.setShifoupihaoguanli("true");
- wupinEntity.setKucunwl("true");
- wupinEntity.setXiaoshouwl("false");
- wupinEntity.setPassing("true");
+// String userName = AuthUtil.getUser().getUserName();
+// CodeWupin wupinEntity = new CodeWupin();
+// wupinEntity.setOid(VciBaseUtil.getPk());
+//// bo.setRevisionid((new ObjectUtility()).getNewObjectID36());
+//// bo.setNameoid((new ObjectUtility()).getNewObjectID36());
+// wupinEntity.setBtmname(btmName);
+// wupinEntity.setLastR(String.valueOf(1));
+// wupinEntity.setFirstR(String.valueOf(1));
+// wupinEntity.setFirstV(String.valueOf(1));
+// wupinEntity.setLastV(String.valueOf(1));
+// wupinEntity.setCreator(userName);
+// wupinEntity.setCreateTime(new Date());
+// wupinEntity.setLastModifier(userName);
+// wupinEntity.setLastModifyTime(new Date());
+// wupinEntity.setRevisionRule("numberversionrule");
+// wupinEntity.setVersionRule("0");
+//// if(StringUtils.isNotBlank(btmTypeVO.getRevisionruleid())){
+// //
+//// OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionruleid());
+// wupinEntity.setRevisionValue("1");
+//// }
+//
+// wupinEntity.setRevisionSeq(1);
+// wupinEntity.setVersionSeq(1);
+// //鎻掍釜鐐癸紝闇�瑕侀棶鍕囧摜鐗堟湰闂锛屽睍绀洪粯璁や负1
+// wupinEntity.setVersionValue("1");
+// wupinEntity.setLctid("wupinLC");
+// wupinEntity.setLcStatus("Editing");
+// wupinEntity.setId("");
+// wupinEntity.setName("");
+// wupinEntity.setDescription("");
+// wupinEntity.setOwner(userName);
+// wupinEntity.setCheckinby(userName);
+// wupinEntity.setCopyFromVersion("");
+// wupinEntity.setMaterialtype(1001);
+// wupinEntity.setCaigouwl("true");
+// wupinEntity.setShifoupihaoguanli("true");
+// wupinEntity.setKucunwl("true");
+// wupinEntity.setXiaoshouwl("false");
+// wupinEntity.setPassing("true");
// this.initTypeAttributeValue(wupinEntity,btmTypeVO);
- return wupinEntity;
+// return wupinEntity;
// return cbo;
@@ -1222,8 +1266,8 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
Map<String, String> andConditionMap = new HashMap<>();
- andConditionMap.put("islastr", "1");
- andConditionMap.put("islastv", "1");
+ andConditionMap.put("lastr", "1");
+ andConditionMap.put("lastv", "1");
if (StringUtils.isNotBlank(orderDTO.getOid())) {
andConditionMap.put("oid", QueryOptionConstant.NOTEQUAL + orderDTO.getOid());
}
@@ -1339,7 +1383,7 @@
maps.stream().forEach(map -> {
Map<String, String> data = new HashMap<>();
map.forEach((key, value) -> {
- data.put(((String) key).toLowerCase(Locale.ROOT), (String) value);
+ data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
});
dataList.add(data);
});
@@ -1512,8 +1556,9 @@
referVO.setValueField(VciQueryWrapperForDO.OID_FIELD);
referVO.setTextField("name");
}
-
- String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ //琛ㄩ渶瑕佹敼
+// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ String referTable = "pl_code_wupin";
String referTableNick = attrVO.getId() + "0";
String left = " left join " + referTable + " " + referTableNick + " on " + referTableNick + "." + referVO.getValueField() + " = t." + attrVO.getId();
joinTableList.put(attrVO.getId(), left);
@@ -1601,7 +1646,9 @@
}
whereSql += " and ( t.secretGrade <= " + userSecret + ") ";
}
- String tableName = VciBaseUtil.getTableName(btmType);
+ //瑕佹敼锛岃〃鏄庤幏鍙栨湁闂
+// String tableName = VciBaseUtil.getTableName(btmType);
+ String tableName = "pl_code_wupin";
String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(","))
+ " from " + tableName + SPACE + "t" + SPACE
+ joinTableList.values().stream().collect(Collectors.joining(SPACE))
@@ -1842,9 +1889,9 @@
//鎵句笟鍔$被鍨嬶紝鐒跺悗浣跨敤涓婚敭鍘昏幏鍙栨暟鎹簱閲岀殑鏁版嵁
// List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), WebUtil.getOidQuery(orderDTO.getOid()));
- QueryWrapper<CodeWupinEntity> btmWrapper = new QueryWrapper<>();
+ QueryWrapper<CodeWupin> btmWrapper = new QueryWrapper<>();
btmWrapper.eq("OID",orderDTO.getOid());
- CodeWupinEntity cbo = codeWupinMapper.selectOne(btmWrapper);
+ CodeWupin cbo = codeWupinMapper.selectOne(btmWrapper);
// CodeClstemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
// CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid());
@@ -1939,7 +1986,7 @@
oidCollection.addAll(strings);
}
- List<CodeWupinEntity> cboList = codeWupinMapper.selectBatchIds(oidCollection);
+ List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection);
// List<ClientBusinessObject> cboList = new ArrayList<>();
// oidCollection.stream().forEach(oids -> {
// Map<String, String> conditionMap = new HashMap<>();
@@ -1950,15 +1997,15 @@
if (CollectionUtils.isEmpty(cboList)) {
throw new VciBaseException("鏁版嵁鍏ㄩ儴鍦ㄧ郴缁熶腑涓嶅瓨鍦�");
}
- List<CodeWupinEntity> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
+ List<CodeWupin> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(editCBOs)) {
- CodeWupinEntity cbo = editCBOs.get(0);
+ CodeWupin cbo = editCBOs.get(0);
throw new VciBaseException("缂栫爜涓簕0}绛夊叡{1}鏉℃暟鎹殑鐘舵�佷笉鏄痆{2}]锛屼笉鍏佽鍒犻櫎", new String[]{cbo.getId(), String.valueOf(editCBOs.size()), CodeDefaultLC.EDITING.getText()});
}
//鍙兘鍒犻櫎鑷繁鍒涘缓鐨勬暟鎹�
String userId = AuthUtil.getUser().getUserName();
- for (CodeWupinEntity clientBusinessObject:cboList){
+ for (CodeWupin clientBusinessObject:cboList){
String creator = clientBusinessObject.getCreator();
if(!userId.equalsIgnoreCase(creator)){
throw new VciBaseException("缂栫爜涓�"+clientBusinessObject.getId()+"鐨勬暟鎹笉鏄綋鍓嶇敤鎴峰垱寤猴紝涓嶈兘鍒犻櫎锛�");
@@ -2047,12 +2094,13 @@
if (!classifyService.checkHasChild(codeClassifyOid)) {
conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
} else {
- conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
- + " where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
+ //琛ㄩ渶瑕佹敼
+// conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
+ conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
"' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
}
- conditionMap.put("islastr", "1");
- conditionMap.put("islastv", "1");
+ conditionMap.put("lastr", "1");
+ conditionMap.put("lastv", "1");
return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
// List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList());
// //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛�
@@ -2160,17 +2208,21 @@
public R markDataPassing(String oid, String btmName, Boolean pass) {
VciBaseUtil.alertNotNull(oid, "涓氬姟鏁版嵁涓婚敭", btmName, "涓氬姟绫诲瀷", pass, "鏍囪绫诲瀷");
boolean flag = false;
-// try {
-// ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
+ try {
+// QueryWrapper<CodeWupinEntity> wrapper = new QueryWrapper<>();
+// wrapper.eq("oid",oid);
+ CodeWupin data = baseMapper.selectById(oid);
+ // ClientBusinessObjectOperation operation = new ClientBusinessObjectOperation();
// ClientBusinessObject data = operation.readBusinessObjectById(oid, btmName);
-// if (data == null || StringUtils.isBlank(data.getOid())) {
-// return BaseResult.fail(DATA_OID_NOT_EXIST);
-// }
-// data.setAttributeValue("passing", String.valueOf(pass));
+ if (data == null || StringUtils.isBlank(data.getOid())) {
+ return R.fail(DATA_OID_NOT_EXIST);
+ }
+ data.setPassing(String.valueOf(pass));
+ flag = SqlHelper.retBool(baseMapper.updateById(data));
// flag = operation.updateBuinessObject(data);
-// } catch (VCIError e) {
-// e.printStackTrace();
-// }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
if (flag) {
return R.success("鏍囪鎴愬姛锛�");
} else {
@@ -2431,7 +2483,7 @@
executionId = executionId.substring(0, executionId.lastIndexOf("."));
}
String sql = "select wm_concat(distinct (t.codetempattrOidArr)) codetempattroidarr\n" +
- "from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY_PROCESS_TEMPLATE) + " t\n" +
+ "from pl_code_wupin t\n" +
"join PLFLOWINSTANCE plfi on t.ID = plfi.PLTEMPLATEPUID\n" +
"where plfi.PLEXECUTIONID = '" + executionId + "' and t.CLASSIFYTEMPLATEOID = '" + templateOid + "' and t.CODEPROCESSUSE = '" + processUse + "'";
// List<ClientBusinessObject> tempAttrOidArr = boService.queryByOnlySql(sql);
@@ -2464,51 +2516,63 @@
}
List<String> oidList = VciBaseUtil.str2List(conditionMap.get("oid"));
Map<String, String> oidMap = new HashMap<>();
+ QueryWrapper<CodeWupin> wrapper = new QueryWrapper();
if (conditionMap.get("oid").contains(",")) {
- oidMap.put("oid", QueryOptionConstant.IN +"("+ VciBaseUtil.toInSql(oidList.toArray(new String[0])) + ")");
+// oidMap.put("oid", QueryOptionConstant.IN +"("+ VciBaseUtil.toInSql(oidList.toArray(new String[0])) + ")");
+ wrapper.in("oid",oidList);
} else {
- oidMap.put("oid", conditionMap.get("oid"));
+// oidMap.put("oid", conditionMap.get("oid"));
+ wrapper.in("oid",conditionMap.get("oid"));
}
if (CollectionUtils.isEmpty(oidMap)) {
throw new VciBaseException("涓氬姟鏁版嵁涓婚敭涓嶈兘涓虹┖");
}
// List<ClientBusinessObject> cbos = boService.queryCBO(btmType, oidMap);
-// if (CollectionUtils.isEmpty(cbos)) {
-// throw new VciBaseException("鏈壘鍒颁笟鍔℃暟鎹�");
-// }
-// ClientBusinessObject cbo = cbos.get(0);
-// String templateOid = cbo.getAttributeValue("CODETEMPLATEOID");
+ List<CodeWupin> cbos = baseMapper.selectList(wrapper);
+ if (CollectionUtils.isEmpty(cbos)) {
+ throw new VciBaseException("鏈壘鍒颁笟鍔℃暟鎹�");
+ }
+ CodeWupin cbo = cbos.get(0);
+ String templateOid = cbo.getCodetemplateoid();
// Map<String, String> templateOidMap = new HashMap<>();
// templateOidMap.put("oid", templateOid);
+
+ QueryWrapper<CodeClassifyTemplate> codeClassifyTemplateWrapper = new QueryWrapper<>();
+ codeClassifyTemplateWrapper.eq("oid", templateOid);
+ List<CodeClassifyTemplate> templateDOList = templateService.list(codeClassifyTemplateWrapper);
+
// List<CodeClassifyTemplate> templateDOList = boService.queryObject(CodeClassifyTemplate.class, templateOidMap);
+ QueryWrapper<CodeClassifyTemplateAttr> codeClassifyTemplateAttrWrapper = new QueryWrapper<>();
+ codeClassifyTemplateAttrWrapper.eq("CLASSIFYTEMPLATEOID", templateOid);
// templateOidMap.clear();
// templateOidMap.put("CLASSIFYTEMPLATEOID",templateOid);
-// List<CodeClassifyTemplateAttr> attrDOList = boService.queryObject(CodeClassifyTemplateAttr.class, templateOidMap);
-// if (CollectionUtils.isEmpty(templateDOList)) {
-// logger.error("鎵句笉鍒颁笟鍔℃暟鎹叧鑱旂殑妯℃澘锛屾ā鏉夸富閿細" + templateOid);
-// throw new VciBaseException("鎵句笉鍒颁笟鍔℃暟鎹叧鑱旂殑妯℃澘");
-// }
-// CodeClassifyTemplateVO templateVO = templateService.codeClassifyTemplateDO2VO(templateDOList.get(0));
-// templateVO.setAttributes(templateAttrService.codeClassifyTemplateAttrDO2VOs(attrDOList));
-// try {
-// if (oidList.size() > 1){
-// DataGrid<Map<String,String>> allDataGrid = new DataGrid<>();
-// List<Map<String,String>> allData = new ArrayList<>();
-// oidList.forEach(oid -> {
-// Map<String,String> condition = new HashMap<>();
-// condition.put("oid",oid);
-// DataGrid<Map<String, String>> dataGrid = queryGrid(btmType, templateVO, condition, pageHelper);
-// allData.addAll(dataGrid.getData());
-// });
-// allDataGrid.setData(allData);
-// return allDataGrid;
-// }else {
-// return queryGrid(btmType, templateVO, conditionMap, pageHelper);
-// }
-// } catch (Exception e) {
-// System.out.println(e.getMessage());
+ List<CodeClassifyTemplateAttr> attrDOList = codeClassifyTemplateAttrService.list(codeClassifyTemplateAttrWrapper);
+// boService.queryObject(CodeClassifyTemplateAttr.class, templateOidMap);
+ if (CollectionUtils.isEmpty(templateDOList)) {
+ logger.error("鎵句笉鍒颁笟鍔℃暟鎹叧鑱旂殑妯℃澘锛屾ā鏉夸富閿細" + templateOid);
+ throw new VciBaseException("鎵句笉鍒颁笟鍔℃暟鎹叧鑱旂殑妯℃澘");
+ }
+ CodeClassifyTemplateVO templateVO = templateService.codeClassifyTemplateDO2VO(templateDOList.get(0));
+ templateVO.setAttributes(codeClassifyTemplateAttrService.codeClassifyTemplateAttrDO2VOs(attrDOList));
+ try {
+ if (oidList.size() > 1){
+ DataGrid<Map<String,String>> allDataGrid = new DataGrid<>();
+ List<Map<String,String>> allData = new ArrayList<>();
+ oidList.forEach(oid -> {
+ Map<String,String> condition = new HashMap<>();
+ condition.put("oid",oid);
+ DataGrid<Map<String, String>> dataGrid = queryGrid(btmType, templateVO, condition, pageHelper);
+ allData.addAll(dataGrid.getData());
+ });
+ allDataGrid.setData(allData);
+ return allDataGrid;
+ }else {
+ return queryGrid(btmType, templateVO, conditionMap, pageHelper);
+ }
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
return null;
-// }
+ }
}
/**
* 浣跨敤鍒嗙被鐨勪富閿幏鍙栬〃鏍肩殑瀹氫箟
@@ -2752,7 +2816,7 @@
kv.setValue(buttonVO.getClassifyButtonOidName());
kv.setAttributes(VciBaseUtil.objectToMap(buttonVO));
buttons.add(kv);
- optionJsMap.put(buttonVO.getId(), buttonVO.getButtonVO().getExecutejs());
+ optionJsMap.put(buttonVO.getId(), buttonVO.getButtonVO().getExecuteJs());
});
optionFieldVO.setOptionJsMap(optionJsMap);
uiInfoVO.getTableDefineVO().getCols().get(0).add(optionFieldVO);
@@ -2849,4 +2913,150 @@
}
return buttonVOList;
}
+
+ /**
+ * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩稿叧鏁版嵁杩涜鎵归噺鎻掑叆鎿嶄綔
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param baseModels 澶勭悊鏁版嵁
+ * @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟
+ */
+ @Override
+ public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception {
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+ if(listR.getData().size() == 0){
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ //灏哹ean杞负map,mybatis缁熶竴澶勭悊
+ List<Map<String,String>> maps = new ArrayList<>();
+ baseModels.stream().forEach(model-> {
+ try {
+ maps.add(VciBaseUtil.convertBean2Map(model));
+ } catch (Exception e) {
+ throw new VciBaseException("绫诲瀷杞崲閿欒锛�" + e.toString());
+ }
+ });
+ return commonsMapper.insertByBaseModel(listR.getData().get(0).getTableName(), maps.get(0), maps);
+ }
+
+ /**
+ * 浼犲叆涓氬姟绫诲瀷浠ュ強鐩竜id闆嗗悎鏌ヨ鏁版嵁杩涜杩斿洖
+ *
+ * @param btmType 涓氬姟绫诲瀷
+ * @param oids 闇�瑕佹煡璇㈢殑oid闆嗗悎 閫楀彿鍒嗗紑
+ * @return 鏌ヨ鍑虹殑鏁版嵁
+ */
+ @Override
+ public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException {
+
+ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
+ if(listR.getData().size() == 0){
+ throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
+ }
+ //鏌ヨ鏁版嵁
+ List<Map> maps = commonsMapper.selectBySql("select * from " + listR.getData().get(0).getTableName() + " where oid in ("
+ + VciBaseUtil.toInSql(oids.toString()) + ")");
+
+ List<BaseModel> baseModels = new ArrayList<>();
+ //灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑
+ for (Map map : maps) {
+ Object obj = BaseModel.class.newInstance();
+ BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
+ PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+ for (PropertyDescriptor property : propertyDescriptors) {
+ Method setter = property.getWriteMethod();
+ if (setter != null) {
+ //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
+ if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
+ LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
+ ZoneId zoneId = ZoneId.systemDefault();
+ ZonedDateTime zdt = localDateTime.atZone(zoneId);
+ Date date = Date.from(zdt.toInstant());
+ setter.invoke(obj,date);
+ map.remove(property.getName().toUpperCase());
+ } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
+ else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
+ && ("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()));
+ map.remove(property.getName().toUpperCase());
+ }
+ }
+ }
+ for (Object key : map.keySet()) {
+ map.put(key,String.valueOf(map.get(key)));
+ }
+
+ ((BaseModel) obj).setData(map);
+ baseModels.add((BaseModel) obj);
+ }
+ return baseModels;
+ }
+
+
+ /**
+ * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍒涘缓涓氬姟鏁版嵁婧愬璞�
+ * @param boName 涓氬姟绫诲瀷鍚嶇О
+ * @return 涓氬姟鏁版嵁瀵硅薄
+ */
+ public BaseModel createBaseModel(String boName) {
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName));
+ String userName = AuthUtil.getUser().getUserName();
+ BaseModel bo = new BaseModel();
+ bo.setOid(VciBaseUtil.getPk());
+// bo.setRevisionid(VciBaseUtil.getPk());
+// bo.setNameoid(VciBaseUtil.getPk());
+ bo.setBtmname(boName);
+ bo.setLastR("1");
+ bo.setFirstR("1");
+ bo.setFirstV("1");
+ bo.setLastV("1");
+ bo.setCreator(userName);
+ bo.setCreateTime(new Date());
+ bo.setLastModifier(userName);
+ bo.setLastModifyTime(new Date());
+ bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId());
+ bo.setVersionRule(String.valueOf(listR.getData().get(0).getVersionRule()));
+ if(StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())){
+ R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient
+ .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId()));
+ bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
+ }
+ bo.setRevisionSeq(1);
+ bo.setVersionSeq(1);
+ bo.setVersionValue(getVersionValue(WebUtil.getInt(listR.getData().get(0).getVersionRule())));
+ bo.setLctid(listR.getData().get(0).getLifeCycleId());
+// if(StringUtils.isNotBlank(listR.getData().get(0).getLifeCycleId())){
+// OsLifeCycleVO lifeCycleVO = lifeService.getLifeCycleById(listR.getData().get(0).getLifeCycleId());
+ bo.setLcStatus("Editing");
+// }
+ bo.setId("");
+ bo.setName("");
+ bo.setDescription("");
+ bo.setOwner(userName);
+// bo.setCheckinby(userName);
+ bo.setCopyFromVersion("");
+// this.initTypeAttributeValue(bo,btmTypeVO);
+ return bo;
+ }
+
+ /**
+ * 鑾峰彇鐗堟鐨勫��
+ * @param verRuleName 鐗堟鐨勮鍒�
+ * @return 鐗堟鐨勫�硷紝娌℃湁瑙勫垯鍒欎负绌�
+ */
+ private String getVersionValue(int verRuleName) {
+ if (verRuleName == 0) {
+ return "1";
+ } else if (verRuleName == 1) {
+ return "a";
+ } else if (verRuleName == 2) {
+ return "0";
+ }
+ return "";
+ }
}
--
Gitblit v1.9.3