From f02c15e434ffbc248b55d9d14e104c7d8556062b Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期五, 28 四月 2023 11:42:42 +0800 Subject: [PATCH] 1、主要完成主题库定义的模板分类的接口移植。 2、主要对界面字数多了换行问题进行了修改。 --- Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js | 1 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java | 6 Source/UBCS-WEB/src/views/omd/dict.vue | 2 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java | 14 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstempattrService.java | 79 + Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtil.java | 174 ++++ Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/PatternUtil.java | 50 + Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml | 72 - Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml | 5 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java | 6 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java | 68 + Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstempattrController.java | 151 +++ Source/UBCS-WEB/src/const/omd/dict.js | 1 Source/UBCS-WEB/src/const/code/codebutton.js | 6 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java | 618 +++++++++++++-- Source/UBCS-WEB/src/const/code/codeSynonym.js | 1 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java | 2 Source/UBCS/ubcs-service/ubcs-code/pom.xml | 6 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java | 11 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml | 2 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java | 20 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml | 8 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java | 44 + Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BooleanEnum.java | 16 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstempattrMapper.java | 1 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml | 79 + Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java | 50 + Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java | 3 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java | 691 +++++++++++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java | 29 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java | 11 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java | 7 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java | 14 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java | 36 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml | 54 + Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java | 11 Source/UBCS-WEB/src/views/code/codebutton.vue | 2 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java | 3 38 files changed, 2,150 insertions(+), 204 deletions(-) diff --git a/Source/UBCS-WEB/src/const/code/codeSynonym.js b/Source/UBCS-WEB/src/const/code/codeSynonym.js index fc8a7c8..038020a 100644 --- a/Source/UBCS-WEB/src/const/code/codeSynonym.js +++ b/Source/UBCS-WEB/src/const/code/codeSynonym.js @@ -4,6 +4,7 @@ tip: false, searchShow: true, searchMenuSpan: 6, + searchLabelWidth:120, border: true, index: true, viewBtn: true, diff --git a/Source/UBCS-WEB/src/const/code/codebutton.js b/Source/UBCS-WEB/src/const/code/codebutton.js index df3fc5b..75d3028 100644 --- a/Source/UBCS-WEB/src/const/code/codebutton.js +++ b/Source/UBCS-WEB/src/const/code/codebutton.js @@ -2,8 +2,10 @@ height:'auto', calcHeight: 30, tip: false, + searchLabelWidth:120, searchShow: true, searchMenuSpan: 6, + // searchSpan:8, border: true, index: true, viewBtn: true, @@ -241,7 +243,7 @@ { label: "鐘舵��", type: "select", - dicUrl: "/api/ubcs-omd/dict-biz/dictionary?code=codeLcstatus", + dicUrl: "/api/ubcs-omd/dict/dictionary?code=codeLcstatus", props: { label: "dictValue", value: "dictKey" @@ -294,7 +296,7 @@ label: "鎸夐挳鐨勪綅缃�", type: "select", weight :'140px', - dicUrl: "/api/ubcs-omd/dict-biz/dictionary?code=codeButtonPosition", + dicUrl: "/api/ubcs-omd/dict/dictionary?code=codeButtonPosition", props: { label: "dictValue", value: "dictKey" diff --git a/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js b/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js index fb5da2d..819f401 100644 --- a/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js +++ b/Source/UBCS-WEB/src/const/code/plCodeKeyattrrepeat.js @@ -4,6 +4,7 @@ tip: false, searchShow: true, searchMenuSpan: 6, + searchLabelWidth:120, border: true, index: true, viewBtn: true, diff --git a/Source/UBCS-WEB/src/const/omd/dict.js b/Source/UBCS-WEB/src/const/omd/dict.js index e4ef858..d6c8c32 100644 --- a/Source/UBCS-WEB/src/const/omd/dict.js +++ b/Source/UBCS-WEB/src/const/omd/dict.js @@ -112,6 +112,7 @@ editDisabled: true, search: true, span: 24, + hide: true, rules: [ { required: true, diff --git a/Source/UBCS-WEB/src/views/code/codebutton.vue b/Source/UBCS-WEB/src/views/code/codebutton.vue index fb5dd5e..4dd6593 100644 --- a/Source/UBCS-WEB/src/views/code/codebutton.vue +++ b/Source/UBCS-WEB/src/views/code/codebutton.vue @@ -25,7 +25,7 @@ plain @click="enableOrgDuty(true)">鍚� 鐢� </el-button> - <el-button type="primary" + <el-button type="warning" size="small" icon="el-icon-star-off" plain diff --git a/Source/UBCS-WEB/src/views/omd/dict.vue b/Source/UBCS-WEB/src/views/omd/dict.vue index b17df8b..9476deb 100644 --- a/Source/UBCS-WEB/src/views/omd/dict.vue +++ b/Source/UBCS-WEB/src/views/omd/dict.vue @@ -49,7 +49,7 @@ <el-tag>{{ row.isSealed === 0 ? '鍚�' : '鏄�' }}</el-tag> </template> </avue-crud> - <el-dialog :title="`[${dictValue}]鏋氫妇閰嶇疆`" + <el-dialog :title="`[${dictValue}]鏋氫妇椤归厤缃甡" append-to-body :visible.sync="box" width="1000px"> diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml b/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml index c341358..a1095d2 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/pom.xml @@ -12,6 +12,11 @@ <name>${project.artifactId}</name> <version>${bladex.project.version}</version> <dependencies> + <dependency> + <groupId>com.github.jsqlparser</groupId> + <artifactId>jsqlparser</artifactId> + <version>4.2</version> + </dependency> <!-- <dependency>--> <!-- <groupId>com.thoughtworks.xstream</groupId>--> diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java index 1675e12..acf3e5c 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClsflowtempEntity.java @@ -16,6 +16,7 @@ */ package com.vci.ubcs.code.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.vci.ubcs.starter.revision.model.BaseModel; @@ -37,11 +38,6 @@ public class CodeClsflowtempEntity extends BaseModel { - /** - * - */ - @ApiModelProperty(value = "") - private String islastr; /** * */ diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java index 057e533..27ca9c7 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstempattrEntity.java @@ -16,6 +16,7 @@ */ package com.vci.ubcs.code.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.vci.ubcs.starter.revision.model.BaseModel; import lombok.Data; @@ -201,12 +202,12 @@ * */ @ApiModelProperty(value = "") - private Short precisionlength; + private Integer precisionlength; /** * */ @ApiModelProperty(value = "") - private Short scalelength; + private Integer scalelength; /** * */ @@ -271,6 +272,7 @@ * */ @ApiModelProperty(value = "") + @TableField("\"EXPLAIN\"") private String explain; /** * diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java index 882d72d..e6e5c35 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeClstemplateEntity.java @@ -16,6 +16,7 @@ */ package com.vci.ubcs.code.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.vci.ubcs.starter.annotation.Transient; import com.vci.ubcs.starter.revision.model.BaseModel; @@ -56,6 +57,7 @@ /** * 涓婚搴撳垎绫讳富閿樉绀烘枃鏈� */ + @TableField(exist = false) @Transient(referColumn = "codeClassifyOid.name") private String codeClassifyOidName; diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java index 1182bea..4c0a4df 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/entity/CodeOsbtmtypeattributeEntity.java @@ -16,7 +16,11 @@ */ package com.vci.ubcs.code.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -41,6 +45,13 @@ */ private static final long serialVersionUID = -4431848943790920077L; + + @JsonSerialize( + using = ToStringSerializer.class + ) + @ApiModelProperty("涓婚敭id") + @TableId(value = "OID",type = IdType.ASSIGN_UUID) + private String oid; /** * 鎵�灞炰笟鍔$被鍨� */ diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java index 05b1140..54018df 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java +++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/CodeOsbtmtypeattributeVO.java @@ -32,4 +32,11 @@ public class CodeOsbtmtypeattributeVO extends CodeOsbtmtypeattributeEntity { private static final long serialVersionUID = 1L; + public String id; + public String name; + public String attrDataType; + public String attributeLength; + public String referBtmTypeId; + public String referBtmTypeName; + } diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/PatternUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/PatternUtil.java new file mode 100644 index 0000000..b40a46a --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/PatternUtil.java @@ -0,0 +1,50 @@ +package com.vci.ubcs.starter.util; + + +import com.baomidou.mybatisplus.core.toolkit.StringUtils; + +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class PatternUtil { + + //*${xxx}* + public static Pattern dynamic = Pattern.compile(".*\\$\\{([a-z]+)\\}.*"); + public static Pattern dynamicLimitCount = Pattern.compile("\\$\\{([a-z]+)\\}"); + /** + * 鍒ゆ柇鍐呭涓槸鍚﹀寘鍚姩鎬佸弬鏁�(${key}褰㈠紡鐨�) + * + * @param content 瑕佸垽鏂殑鍐呭 + * @return + */ + public static boolean isContainsDynamicParameter(String content) { + if(StringUtils.isBlank(content)){ + return false; + } + return dynamic.matcher(content).matches(); + } + + /** + * 鎸夌収鍔ㄦ�佸唴瀹圭殑鍙傛暟鍑虹幇椤哄簭,灏嗗弬鏁版斁鍒癓ist涓� + * + * @param content + * @return + */ + public static List<String> getKeyListByContent(String content) { + if(StringUtils.isBlank(content)){ + return new ArrayList<>(); + } + Set<String> paramSet = new LinkedHashSet<>(); + Matcher m = dynamicLimitCount.matcher(content); + while (m.find()) { + paramSet.add(m.group(1)); + } + return new ArrayList<>(paramSet); + } + + +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BooleanEnum.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BooleanEnum.java new file mode 100644 index 0000000..3e5837e --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/BooleanEnum.java @@ -0,0 +1,16 @@ +package com.vci.ubcs.starter.web.enumpck; + +public enum BooleanEnum { + TRUE("true"), + FASLE("false"); + + private final String value; + + private BooleanEnum(String value) { + this.value = value; + } + + public String getValue() { + return this.value; + } +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtil.java new file mode 100644 index 0000000..9df9508 --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/BeanUtil.java @@ -0,0 +1,174 @@ +package com.vci.ubcs.starter.web.util; + + +import com.vci.ubcs.starter.web.toolmodel.DateConverter; +import org.springframework.cglib.beans.BeanCopier; +import org.springframework.cglib.core.Converter; + +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +public class BeanUtil { + private static final ConcurrentMap<String, BeanCopier> beanCopierMap = new ConcurrentHashMap(); + + public BeanUtil() { + } + + public static BeanCopier getBeanCopier(Class<?> source, Class<?> target, boolean useConverter) { + String beanCopierKey = generateBeanKey(source, target); + if (beanCopierMap.containsKey(beanCopierKey)) { + return (BeanCopier)beanCopierMap.get(beanCopierKey); + } else { + BeanCopier beanCopier = BeanCopier.create(source, target, useConverter); + beanCopierMap.putIfAbsent(beanCopierKey, beanCopier); + return (BeanCopier)beanCopierMap.get(beanCopierKey); + } + } + + public static String generateBeanKey(Class<?> source, Class<?> target) { + return source.getName() + "@" + target.getName(); + } + + public static void convert(Object source, Object target, boolean useConvert) { + if (source != null && target != null) { + BeanCopier beanCopier = getBeanCopier(source.getClass(), target.getClass(), useConvert); + beanCopier.copy(source, target, useConvert ? new DeepCopyConverter(target) : null); + } + + } + + public static void convert(Object source, Object target) { + convert(source, target, true); + } + + public static class DeepCopyConverter implements Converter { + private Object target; + + public DeepCopyConverter(Object target) { + this.target = target; + } + + public Object convert(Object value, Class targetClazz, Object methodName) { + if (value instanceof List) { + List values = (List)value; + List retList = new ArrayList(values.size()); + this.copyForCollection(values, retList, methodName); + return retList; + } else { + if (value instanceof Set) { + Set values = (Set)value; + Set retSet = new HashSet(); + this.copyForCollection(values, retSet, methodName); + } else if (value instanceof Vector) { + Vector values = (Vector)value; + Vector retVector = new Vector(); + this.copyForCollection(values, retVector, methodName); + } else if (value instanceof Map) { + Map values = (Map)value; + Map retMap = new HashMap(); + Iterator var6 = values.keySet().iterator(); + + while(var6.hasNext()) { + Object key = var6.next(); + Object mapValue = values.get(key); + String tempFieldName = methodName.toString().replace("set", ""); + String fieldName = tempFieldName.substring(0, 1).toLowerCase() + tempFieldName.substring(1); + Class clazz = ClassUtil.getElementType(this.target.getClass(), fieldName); + Object targetAttr = null; + + try { + targetAttr = clazz.newInstance(); + } catch (Throwable var15) { + } + + BeanUtil.convert(mapValue, targetAttr); + retMap.put(key, targetAttr); + } + } else if (!ClassUtil.isPrimitive(targetClazz)) { + Object targetAttr = null; + + try { + targetAttr = targetClazz.newInstance(); + } catch (Throwable var14) { + } + + BeanUtil.convert(value, targetAttr); + return targetAttr; + } + + if (value instanceof Boolean && targetClazz.equals(String.class)) { + return String.valueOf(value); + } else if (!(value instanceof String) || !targetClazz.equals(Boolean.class) && !targetClazz.equals(Boolean.TYPE)) { + if (value instanceof Date && targetClazz.equals(String.class)) { + return VciDateUtil.date2Str((Date)value, "yyyy-MM-dd HH:mm:ss.SSS"); + } else if (value instanceof String && targetClazz.equals(Date.class)) { + DateConverter dateConverter = new DateConverter(); + dateConverter.setAsText((String)value); + return dateConverter.getValue(); + } else { + return value; + } + } else { + return "true".equalsIgnoreCase((String)value) ? true : false; + } + } + } + + private void copyForCollection(Collection<?> sourceCollection, Collection targetCollection, Object methodName) { + Iterator var4 = sourceCollection.iterator(); + + while(true) { + while(var4.hasNext()) { + Object source = var4.next(); + if (source instanceof Collection) { + List<Object> targetValues = new ArrayList(); + this.copyForCollection((Collection)source, targetValues, methodName); + targetCollection.add(targetValues); + } else { + String tempFieldName; + String fieldName; + Class clazz; + Object targetAttr; + if (!(source instanceof Map)) { + tempFieldName = methodName.toString().replace("set", ""); + fieldName = tempFieldName.substring(0, 1).toLowerCase() + tempFieldName.substring(1); + clazz = ClassUtil.getElementType(this.target.getClass(), fieldName); + targetAttr = null; + + try { + targetAttr = clazz.newInstance(); + } catch (Throwable var13) { + } + + BeanUtil.convert(source, targetAttr); + targetCollection.add(targetAttr); + } else { + tempFieldName = methodName.toString().replace("set", ""); + fieldName = tempFieldName.substring(0, 1).toLowerCase() + tempFieldName.substring(1); + clazz = ClassUtil.getElementType(this.target.getClass(), fieldName); + targetAttr = null; + + try { + targetAttr = clazz.newInstance(); + } catch (Throwable var14) { + } + + Map map = (Map)source; + Iterator var11 = map.keySet().iterator(); + + while(var11.hasNext()) { + Object key = var11.next(); + VciBaseUtil.setValueForField(key.toString(), targetAttr, VciBaseUtil.getStringValueFromObject(map.get(key))); + } + + targetCollection.add(targetAttr); + } + } + } + + return; + } + } + } +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java new file mode 100644 index 0000000..353cace --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ClassUtil.java @@ -0,0 +1,50 @@ +package com.vci.ubcs.starter.web.util; + + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class ClassUtil { + private static final Map<Class<?>, Class<?>> primitiveMap = new HashMap(9); + + public ClassUtil() { + } + + public static boolean isPrimitive(Class<?> clazz) { + return primitiveMap.containsKey(clazz) ? true : clazz.isPrimitive(); + } + + public static Class<?> getElementType(Class<?> tartget, String fieldName) { + Class<?> elementTypeClass = null; + + try { + Type type = VciBaseUtil.getFieldForObject(fieldName, tartget).getGenericType(); + ParameterizedType t = (ParameterizedType)type; + String classStr = t.getActualTypeArguments()[0].toString().replace("class ", ""); + if (classStr.contains("<")) { + classStr = classStr.substring(classStr.lastIndexOf("<") + 1, classStr.indexOf(">")); + } + + elementTypeClass = Thread.currentThread().getContextClassLoader().loadClass(classStr); + return elementTypeClass; + } catch (SecurityException | ClassNotFoundException var6) { + throw new RuntimeException("get fieldName[" + fieldName + "] error", var6); + } + } + + static { + primitiveMap.put(String.class, String.class); + primitiveMap.put(Boolean.class, Boolean.TYPE); + primitiveMap.put(Byte.class, Byte.TYPE); + primitiveMap.put(Character.class, Character.TYPE); + primitiveMap.put(Double.class, Double.TYPE); + primitiveMap.put(Float.class, Float.TYPE); + primitiveMap.put(Integer.class, Integer.TYPE); + primitiveMap.put(Long.class, Long.TYPE); + primitiveMap.put(Short.class, Short.TYPE); + primitiveMap.put(Date.class, Date.class); + } +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java index 4cc6e8d..6f45676 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java @@ -9,6 +9,7 @@ import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.pagemodel.SessionInfo; import com.vci.ubcs.starter.web.toolmodel.DateConverter; import org.slf4j.Logger; @@ -135,6 +136,11 @@ return 0.0D; } } + } + + + public static boolean getBoolean(String s) { + return BooleanEnum.TRUE.getValue().equals(s); } public static String removeComma(String s) { @@ -1199,5 +1205,19 @@ } + public static void setValueForField(String fieldName, Object obj, String value) { + try { + Field field = getFieldForObject(fieldName, obj); + if (field != null) { + setValueForField(field, obj, value); + } + } catch (Exception var4) { + if (log.isErrorEnabled()) { + log.error("璁剧疆灞炴�х殑鍊煎嚭閿欎簡閿欒", var4); + } + } + + } + } diff --git a/Source/UBCS/ubcs-service/ubcs-code/pom.xml b/Source/UBCS/ubcs-service/ubcs-code/pom.xml index 457db9e..a4f1521 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/pom.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/pom.xml @@ -62,6 +62,12 @@ <artifactId>orai18n</artifactId> <version>${orai18n.version}</version> </dependency> + <dependency> + <groupId>com.vci.ubcs</groupId> + <artifactId>ubcs-dict-api</artifactId> + <version>3.0.1.RELEASE</version> + <scope>compile</scope> + </dependency> </dependencies> diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstempattrController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstempattrController.java index 2ac1921..533194c 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstempattrController.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstempattrController.java @@ -18,10 +18,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.vci.ubcs.code.dto.CodeClstempattrDTO; import com.vci.ubcs.code.entity.CodeClstempattrEntity; import com.vci.ubcs.code.service.ICodeClstempattrService; import com.vci.ubcs.code.vo.CodeClstempattrVO; +import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO; import com.vci.ubcs.code.wrapper.CodeClstempattrWrapper; +import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -31,9 +36,12 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 缂栫爜搴撳畾涔�-妯℃澘灞炴�� 鎺у埗鍣� @@ -43,11 +51,11 @@ */ @RestController @AllArgsConstructor -@RequestMapping("/CodeClstempattr") +@RequestMapping("/codeClassifyTempAttrController") @Api(value = "缂栫爜搴撳畾涔�-妯℃澘灞炴��", tags = "缂栫爜搴撳畾涔�-妯℃澘灞炴�ф帴鍙�") public class CodeClstempattrController extends BladeController { - private final ICodeClstempattrService CodeClstempattrService; + private final ICodeClstempattrService codeClstempattrService; /** * 缂栫爜搴撳畾涔�-妯℃澘灞炴�� 璇︽儏 @@ -56,7 +64,7 @@ @ApiOperationSupport(order = 1) @ApiOperation(value = "璇︽儏", notes = "浼犲叆CodeClstempattr") public R<CodeClstempattrVO> detail(CodeClstempattrEntity CodeClstempattr) { - CodeClstempattrEntity detail = CodeClstempattrService.getOne(Condition.getQueryWrapper(CodeClstempattr)); + CodeClstempattrEntity detail = codeClstempattrService.getOne(Condition.getQueryWrapper(CodeClstempattr)); return R.data(CodeClstempattrWrapper.build().entityVO(detail)); } /** @@ -66,7 +74,7 @@ @ApiOperationSupport(order = 2) @ApiOperation(value = "鍒嗛〉", notes = "浼犲叆CodeClstempattr") public R<IPage<CodeClstempattrVO>> list(CodeClstempattrEntity CodeClstempattr, Query query) { - IPage<CodeClstempattrEntity> pages = CodeClstempattrService.page(Condition.getPage(query), Condition.getQueryWrapper(CodeClstempattr)); + IPage<CodeClstempattrEntity> pages = codeClstempattrService.page(Condition.getPage(query), Condition.getQueryWrapper(CodeClstempattr)); return R.data(CodeClstempattrWrapper.build().pageVO(pages)); } @@ -77,7 +85,7 @@ @ApiOperationSupport(order = 3) @ApiOperation(value = "鍒嗛〉", notes = "浼犲叆CodeClstempattr") public R<IPage<CodeClstempattrVO>> page(CodeClstempattrVO CodeClstempattr, Query query) { - IPage<CodeClstempattrVO> pages = CodeClstempattrService.selectCodeClstempattrPage(Condition.getPage(query), CodeClstempattr); + IPage<CodeClstempattrVO> pages = codeClstempattrService.selectCodeClstempattrPage(Condition.getPage(query), CodeClstempattr); return R.data(pages); } @@ -88,7 +96,7 @@ @ApiOperationSupport(order = 4) @ApiOperation(value = "鏂板", notes = "浼犲叆CodeClstempattr") public R save(@Valid @RequestBody CodeClstempattrEntity CodeClstempattr) { - return R.status(CodeClstempattrService.save(CodeClstempattr)); + return R.status(codeClstempattrService.save(CodeClstempattr)); } /** @@ -98,7 +106,7 @@ @ApiOperationSupport(order = 5) @ApiOperation(value = "淇敼", notes = "浼犲叆CodeClstempattr") public R update(@Valid @RequestBody CodeClstempattrEntity CodeClstempattr) { - return R.status(CodeClstempattrService.updateById(CodeClstempattr)); + return R.status(codeClstempattrService.updateById(CodeClstempattr)); } /** @@ -108,7 +116,7 @@ @ApiOperationSupport(order = 6) @ApiOperation(value = "鏂板鎴栦慨鏀�", notes = "浼犲叆CodeClstempattr") public R submit(@Valid @RequestBody CodeClstempattrEntity CodeClstempattr) { - return R.status(CodeClstempattrService.saveOrUpdate(CodeClstempattr)); + return R.status(codeClstempattrService.saveOrUpdate(CodeClstempattr)); } /** @@ -118,8 +126,133 @@ @ApiOperationSupport(order = 7) @ApiOperation(value = "閫昏緫鍒犻櫎", notes = "浼犲叆ids") public R remove(@ApiParam(value = "涓婚敭闆嗗悎", required = true) @RequestParam String ids) { - return R.status(CodeClstempattrService.removeBatchByIds(Func.toLongList(ids))); + return R.status(codeClstempattrService.removeBatchByIds(Func.toLongList(ids))); } + /** + * 涓婚搴撳垎绫荤殑妯℃澘灞炴�у垪琛� + * @param baseQueryObject 鍩虹鏌ヨ瀵硅薄锛屽寘鍚煡璇㈡潯浠讹紝鍒嗛〉锛屾帓搴忕瓑 + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞″垪琛� + */ + @GetMapping("/gridCodeClassifyTemplateAttr") + public DataGrid<CodeClstempattrVO> gridCodeClassifyTemplateAttr(BaseQueryObject baseQueryObject){ + if(baseQueryObject == null){ + baseQueryObject = new BaseQueryObject(); + } + return codeClstempattrService.gridCodeClassifyTemplateAttr(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); + } + + /** + * 澧炲姞 涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞� + */ + @PostMapping( "/addSave") + public R<CodeClstempattrVO> addSave(@RequestBody CodeClstempattrDTO codeClassifyTemplateAttrDTO){ + CodeClstempattrVO codeClassifyTemplateAttrVO = codeClstempattrService.addSave(codeClassifyTemplateAttrDTO); + return R.data(codeClassifyTemplateAttrVO); + } + + /** + * 鎵归噺淇濆瓨鍒楄〃鏁版嵁 + * @param list + * @return + */ + @PostMapping( "/batchAddSave") + public R<List<CodeClstempattrVO>> batchAddSaves(@RequestBody List<CodeClstempattrDTO> list){ + if(CollectionUtils.isEmpty(list)){ + return R.fail("鍒楄〃涓嶈兘涓虹┖!"); + } + List<CodeClstempattrVO> codeClassifyTemplateAttrVOs = codeClstempattrService.batchAddSave(list); + return R.data(codeClassifyTemplateAttrVOs); + } + + /** + * 淇敼 涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞� + */ + @PutMapping("/editSave") + public R<CodeClstempattrVO> editSave(@RequestBody CodeClstempattrDTO codeClassifyTemplateAttrDTO){ + return codeClstempattrService.editSave(codeClassifyTemplateAttrDTO); + } + + /** + * 鍒犻櫎涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + */ + @DeleteMapping( "/deleteData") + public R delCodeClassifyTemplateAttr(@RequestBody CodeClstempattrDTO codeClassifyTemplateAttrDTO) { + return codeClstempattrService.deleteCodeClassifyTemplateAttr(codeClassifyTemplateAttrDTO); + } + + /** + * 涓婚敭鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oid 涓婚敭 + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + */ + @GetMapping("/getObjectByOid") + public R<CodeClstempattrVO> getObjectByOid(String oid){ + CodeClstempattrVO codeClassifyTemplateAttrVO = codeClstempattrService.getObjectByOid(oid); + return R.data(codeClassifyTemplateAttrVO); + } + + + /** + * 涓婚敭鎵归噺鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oids 涓婚敭锛屽涓互閫楀彿鍒嗛殧锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + */ + @GetMapping("/listDataByOids") + public R listCodeClassifyTemplateAttrByOids(String oids){ + Collection<CodeClstempattrVO> voCollection = codeClstempattrService.listCodeClassifyTemplateAttrByOids(VciBaseUtil.str2List(oids)); +// BaseResult baseResult = BaseResult.success(); +// baseResult.setData(voCollection); + return R.data(voCollection); + } + + /** + * 鍙傜収涓婚搴撳垎绫荤殑妯℃澘灞炴�у垪琛� + * @param baseQueryObject 鍩虹鏌ヨ瀵硅薄锛屽寘鍚煡璇㈡潯浠讹紝鍒嗛〉锛屾帓搴忕瓑 + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹� + */ + @GetMapping("/refDataGrid") + public DataGrid<CodeClstempattrVO> refDataGridCodeClassifyTemplateAttr(BaseQueryObject baseQueryObject){ + if(baseQueryObject == null){ + baseQueryObject = new BaseQueryObject(); + } + return codeClstempattrService.refDataGridCodeClassifyTemplateAttr(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); + } + + /** + * 鏌ヨ杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬�,鎺掗櫎鎺夎繖涓ā鏉垮凡缁忓瓨鍦ㄧ殑灞炴�� + * @param baseQueryObject + * @return + */ + @GetMapping("/codeClassifyTemplateAttrByBtm") + public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){ + return codeClstempattrService.codeClassifyTemplateAttrByBtm(baseQueryObject); + } + + /** + * 鏌ヨ杩欎釜涓氬姟绫诲瀷涓嬨�佽繖涓ā鏉垮凡缁忓瓨鍦ㄧ殑灞炴�� + * @param baseQueryObject + * @return + */ + @GetMapping("/codeClassifyTemplateAttrByBtmHave") + public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){ + return codeClstempattrService.codeClassifyTemplateAttrByBtmHave(baseQueryObject); + } + + /** + * 鍚屾鍒板叾浠栨ā鏉� + * @param codeClassifyAttrDTO id 鑻辨枃鍚嶇О + * @return 鎵ц缁撴灉 + */ + @PostMapping( "/copyto") + public R copyto(@RequestBody CodeClstempattrDTO codeClassifyAttrDTO) { + return codeClstempattrService.copyto(codeClassifyAttrDTO); + } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java index 4f61b25..db94cd2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeClstemplateController.java @@ -25,8 +25,9 @@ import com.vci.ubcs.code.mapper.CodeClstemplateMapper; import com.vci.ubcs.code.service.ICodeClstemplateService; import com.vci.ubcs.code.vo.CodeClstemplateVO; -import com.vci.ubcs.starter.revision.model.TreeQueryObject; import com.vci.ubcs.code.wrapper.PlCodeClstemplateWrapper; +import com.vci.ubcs.starter.revision.model.TreeQueryObject; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; import com.vci.ubcs.starter.web.pagemodel.Tree; import com.vci.ubcs.starter.web.util.VciBaseUtil; import io.swagger.annotations.Api; @@ -142,16 +143,37 @@ return plCodeClstemplateService.treeCodeClassifyTemplate(treeQueryObject); } -// /** -// * 鍒嗙被妯℃澘鍒楄〃 -// * @param baseQueryObject 鍩虹鏌ヨ瀵硅薄 -// * @return 鏄剧ず瀵硅薄 -// */ -// @GetMapping("/gridCodeClassifyTemplate") -// public DataGrid<CodeClstemplateVO> gridCodeClassifyTemplate(BaseQueryObject baseQueryObject){ -// -// return plCodeClstemplateService.gridCodeClassifyTemplate(baseQueryObject.getConditionMap(),baseQueryObject.getPageHelper()); -// } + /** + * 鍒嗙被妯℃澘鍒楄〃 + * @param plCodeClstemplate 鍩虹鏌ヨ瀵硅薄 + * @return 鏄剧ず瀵硅薄 + */ + @GetMapping("/gridCodeClassifyTemplate") + public DataGrid<CodeClstemplateVO> gridCodeClassifyTemplate(CodeClstemplateVO plCodeClstemplate, Query query){ + + return plCodeClstemplateService.gridCodeClassifyTemplate(plCodeClstemplate,query); + + } + + /** + * 澧炲姞 鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞� + */ + @PostMapping( "/addSave") + public R<CodeClstemplateVO> addSave(@RequestBody CodeClstemplateDTO codeClassifyTemplateDTO){ + return plCodeClstemplateService.addSave(codeClassifyTemplateDTO); + } + + /** + * 淇敼 鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞� + */ + @PutMapping("/editSave") + public R<CodeClstemplateVO> editSave(@RequestBody CodeClstemplateDTO codeClassifyTemplateDTO){ + return plCodeClstemplateService.editSave(codeClassifyTemplateDTO); + } /** @@ -234,7 +256,7 @@ * @return */ @PostMapping( "/editDate") - public R editDate( CodeClstemplateDTO codeClassifyDTO) { + public R editDate(@RequestBody CodeClstemplateDTO codeClassifyDTO) { return plCodeClstemplateService.updateLcStatus(codeClassifyDTO.getOid(),CodeClassifyTemplateLC.EDITING.getValue()); } @@ -248,4 +270,26 @@ return plCodeClstemplateService.Upgrade(codeClassifyDTO); } + + @GetMapping( "/upgrade1") + public R upgrade1(@RequestBody CodeClstemplateDTO codeClassifyDTO) { + return Upgrade(codeClassifyDTO); + } + + /** + * 鍏嬮殕 + * @param codeClassifyDTO + * @return oid妯℃澘oid + */ + @PostMapping( "/copy") + public R copyTemplate(@RequestBody CodeClstemplateDTO codeClassifyDTO) { + + return plCodeClstemplateService.copyTemplate(codeClassifyDTO); + } + + @GetMapping( "/copyTemplate1") + public R copyTemplate1(@RequestBody CodeClstemplateDTO codeClassifyDTO) { + + return copyTemplate(codeClassifyDTO); + } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java index a363528..ce03874 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java @@ -81,6 +81,9 @@ @MapKey("oid") List<Map<String,Object>> selectAllLevelParentByOid(@Param("oid") String oid); + @MapKey("oid") + List<Map<String,Object>> selectAllLevelParents(@Param("oid") String oid); + @MapKey("oid") List<Map<String,Object>> selectByFieldPath(@Param("fieldPath") String fieldPath); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstempattrMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstempattrMapper.java index 4b111c0..38fb156 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstempattrMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstempattrMapper.java @@ -39,6 +39,7 @@ */ List<CodeClstempattrVO> selectCodeClstempattrPage(IPage page, CodeClstempattrVO CodeClstempattr); + /** * 鏉′欢鏌ヨ鎺掑簭 * diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java index 5e87d10..7d2b7d2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClstemplateMapper.java @@ -20,9 +20,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.vci.ubcs.code.entity.CodeClstemplateEntity; import com.vci.ubcs.code.vo.CodeClstemplateVO; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 缂栫爜搴撳畾涔�-妯℃澘绠$悊 Mapper 鎺ュ彛 @@ -57,5 +59,17 @@ */ int countAllLevelChildOid(@Param("oid") String oid); + /** + * 鏍¢獙鏄惁鏈変笅绾ц妭鐐癸紝涓嶆牎楠屾槸鍚﹀叧鑱斾簡鏁版嵁 + * + * @param nameoid + * @return + */ +// @MapKey("REVISIONSEQ") + Map<String,Object> getNextRevision(@Param("nameoid") String nameoid); + + + List<CodeClstemplateEntity> selectCodeClassifyTemplateDOByTree(@Param("codeclassifyoid") String codeclassifyoid, + @Param("lcstatus") String lcstatus); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java index 7765694..b6c6d1b 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodePhaseattrMapper.java @@ -41,4 +41,7 @@ List<CodePhaseattrEntity> selectByPhasea(String oid); + + List<CodePhaseattrEntity> selectByPhaseaIds(String oids); + List<CodePhaseattrEntity> listLinkAttrDOByTemplateAttrDOS(String id,String codeClassifyTemplateOid); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java index a9fc3a5..1e46c34 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java @@ -198,4 +198,18 @@ * @return 涓婚搴撴樉绀烘爲 */ List<Tree> treeTopCodeClassify(TreeQueryObject treeQueryObject); + + /** + * 鑾峰彇杩欎釜鍒嗙被涓嬬殑涓氬姟绫诲瀷锛屽綋鍓嶆病鏈夊氨鑾峰彇涓婄骇鐨勭涓�涓笟鍔$被鍨� + * @param oid 褰撳墠鍒嗙被鐨刼id + * @return oid,id,name,btmtypeid,btmtypename + */ + CodeClassify selectBtmOrParentBtm(String oid); + + /** + * 鑾峰彇鎵�鏈変笅绾ф暟鎹� + * @param oid 鏁版嵁涓婚敭 + * @return 鏌ヨ缁撴灉 + */ + List<CodeClassify> selectAllLevelParents(String oid); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstempattrService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstempattrService.java index 27c01d0..42150b7 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstempattrService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstempattrService.java @@ -18,11 +18,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.vci.ubcs.code.dto.CodeClstempattrDTO; import com.vci.ubcs.code.entity.CodeClstempattrEntity; import com.vci.ubcs.code.vo.CodeClstempattrVO; +import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO; +import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; +import com.vci.ubcs.starter.web.pagemodel.PageHelper; +import org.springblade.core.tool.api.R; import java.util.Collection; import java.util.List; +import java.util.Map; /** * 缂栫爜搴撳畾涔�-妯℃澘灞炴�� 鏈嶅姟绫� @@ -61,5 +68,77 @@ * @return 鏄剧ず瀵硅薄 */ CodeClstempattrVO codeClassifyTemplateAttrDO2VO(CodeClstempattrEntity codeClassifyTemplateAttrDO); + /** + * 鏌ヨ鎵�鏈夌殑涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 鎵ц缁撴灉 + */ + DataGrid<CodeClstempattrVO> gridCodeClassifyTemplateAttr(Map<String, String> conditionMap, PageHelper pageHelper); + + /** + * 澧炲姞涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + */ + CodeClstempattrVO addSave(CodeClstempattrDTO codeClassifyTemplateAttrDTO); + + List<CodeClstempattrVO> batchAddSave(List<CodeClstempattrDTO> list); + + /** + * 淇敼涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + */ + R<CodeClstempattrVO> editSave(CodeClstempattrDTO codeClassifyTemplateAttrDTO); + + /** + * 鍒犻櫎涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + */ + R deleteCodeClassifyTemplateAttr(CodeClstempattrDTO codeClassifyTemplateAttrDTO); + + /** + * 涓婚敭鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oid 涓婚敭 + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + */ + CodeClstempattrVO getObjectByOid(String oid); + + /** + * 涓婚敭鎵归噺鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + */ + Collection<CodeClstempattrVO> listCodeClassifyTemplateAttrByOids(Collection<String> oidCollections); + + /** + * 鍙傜収涓婚搴撳垎绫荤殑妯℃澘灞炴�у垪琛� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹� + */ + DataGrid<CodeClstempattrVO> refDataGridCodeClassifyTemplateAttr(Map<String, String> conditionMap, PageHelper pageHelper); + + /** + * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅鐨勬墍鏈夋湭閫夋嫨鐨勫睘鎬� + * @param baseQueryObject + * @return + */ + DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject); + /** + * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅宸查�夋嫨鐨勫睘鎬� + * @param baseQueryObject + * @return + */ + DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject); + + /** + * 鍚屾鍒板叾浠栨ā鏉� + * @param codeClassifyAttrDTO oid + * @return + */ + R copyto(CodeClstempattrDTO codeClassifyAttrDTO); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java index 71898f2..6ab44e2 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClstemplateService.java @@ -22,11 +22,14 @@ import com.vci.ubcs.code.entity.CodeClstemplateEntity; import com.vci.ubcs.code.vo.CodeClstemplateVO; import com.vci.ubcs.starter.revision.model.TreeQueryObject; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; import com.vci.ubcs.starter.web.pagemodel.Tree; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import java.util.Collection; import java.util.List; +import java.util.Map; /** * 缂栫爜搴撳畾涔�-妯℃澘绠$悊 鏈嶅姟绫� @@ -154,4 +157,30 @@ * 鍗囩増 */ R Upgrade(CodeClstemplateDTO codeClassifyDTO); + /** + * 妯℃澘鍏嬮殕 + */ + R copyTemplate(CodeClstemplateDTO codeClassifyDTO); + + /** + * 鍒嗙被妯℃澘鍒楄〃 + * @param plCodeClstemplate 鏌ヨ鏉′欢 + * @param query 鍒嗛〉瀵硅薄 + * @return 鏄剧ず瀵硅薄 + */ + DataGrid<CodeClstemplateVO> gridCodeClassifyTemplate(CodeClstemplateVO plCodeClstemplate, Query query); + + /** + * 澧炲姞鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + */ + R<CodeClstemplateVO> addSave(CodeClstemplateDTO codeClassifyTemplateDTO); + + /** + * 淇敼鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + */ + R<CodeClstemplateVO> editSave(CodeClstemplateDTO codeClassifyTemplateDTO); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java index 2ee891a..549ab9d 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeTempphaseService.java @@ -18,8 +18,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.vci.ubcs.code.entity.CodeClstempattrEntity; import com.vci.ubcs.code.entity.CodeTempphaseEntity; +import com.vci.ubcs.code.vo.CodePhaseattrVO; import com.vci.ubcs.code.vo.CodeTempphaseVO; + +import java.util.List; /** * 缂栫爜搴撳畾涔�-妯℃澘闃舵 鏈嶅姟绫� @@ -45,4 +49,11 @@ * @return 鍙楀奖鍝嶇殑鏁版嵁 */ int codeTemplateDeleteTrigger(String classifyTemplateOid); + + /** + * 妯℃澘淇敼瑙﹀彂鍔熻兘 + * @param codeClassifyTemplateAttrDOInsert 灞炴�х殑鏁版嵁瀵硅薄 + * @return 鍙楀奖鍝嶇殑鏁版嵁 + */ + List<CodeClstempattrEntity> codeTemplateAttrModifyTrigger(List<CodeClstempattrEntity> codeClassifyTemplateAttrDOInsert); } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java index 6547785..3481b1b 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java @@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; -import com.vci.ubcs.starter.revision.model.TreeQueryObject; -import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; import com.vci.ubcs.code.entity.CodeClassify; import com.vci.ubcs.code.entity.CodeClstemplateEntity; import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity; @@ -25,13 +23,15 @@ import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO; import com.vci.ubcs.code.vo.pagemodel.CodeKeyAttrRepeatRuleVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; -import com.vci.ubcs.starter.revision.model.TreeQueryObject; +import com.vci.ubcs.core.log.exception.ServiceException; import com.vci.ubcs.starter.bo.WriteExcelData; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.poi.bo.ReadExcelOption; import com.vci.ubcs.starter.poi.bo.WriteExcelOption; import com.vci.ubcs.starter.poi.constant.ExcelLangCodeConstant; import com.vci.ubcs.starter.poi.util.ExcelUtil; +import com.vci.ubcs.starter.revision.model.TreeQueryObject; +import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; import com.vci.ubcs.starter.revision.service.RevisionModelUtil; import com.vci.ubcs.starter.util.LocalFileUtil; import com.vci.ubcs.starter.web.pagemodel.BaseQueryObject; @@ -40,7 +40,6 @@ import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.LangBaseUtil; import com.vci.ubcs.starter.web.util.VciBaseUtil; -import org.springblade.core.log.exception.ServiceException; import org.apache.poi.hssf.util.HSSFColor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -985,4 +984,41 @@ return treeCodeClassify(treeQueryObject); } + /** + * 鑾峰彇杩欎釜鍒嗙被涓嬬殑涓氬姟绫诲瀷锛屽綋鍓嶆病鏈夊氨鑾峰彇涓婄骇鐨勭涓�涓笟鍔$被鍨� + * @param oid 褰撳墠鍒嗙被鐨刼id + * @return oid,id,name,btmtypeid,btmtypename锛屾病鏈夊氨杩斿洖null + */ + @Override + public CodeClassify selectBtmOrParentBtm(String oid){ + List<CodeClassify> oidList = selectAllLevelParents(oid); + return oidList.size()==0?null:oidList.get(0); + } + + /** + * 鑾峰彇鎵�鏈夊眰绾т笂绾у叧鑱斾笟鍔$被鍨嬫暟鎹� + * @param oid 褰撳墠鍒嗙被鐨刼id + * @return oid,id,name,btmtypeid,btmtypename + */ + @Override + public List<CodeClassify> selectAllLevelParents(String oid){ +// String sql = "select oid,id,name,btmtypeid,btmtypename from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) + " where btmtypeid is not null start with oid= :oid connect by prior PARENTCODECLASSIFYOID=oid "; +// Map< String,String> conditionMap = new HashMap< String,String>(); +// conditionMap.put("oid",oid); +// List<Map> dataList = boService.queryBySqlForMap(sql,conditionMap); + List<Map<String, Object>> dataList = codeClassifyMapper.selectAllLevelParents(oid); + List<CodeClassify> oidList = new ArrayList<CodeClassify>(); + if(!CollectionUtils.isEmpty(dataList)){ + for(Map data:dataList){ + CodeClassify codeClassifyDO = new CodeClassify(); + codeClassifyDO.setOid(VciBaseUtil.getStringValueFromObject(data.get("OID"))); + codeClassifyDO.setId(VciBaseUtil.getStringValueFromObject(data.get("ID"))); + codeClassifyDO.setName(VciBaseUtil.getStringValueFromObject(data.get("NAME"))); + codeClassifyDO.setBtmTypeId(VciBaseUtil.getStringValueFromObject(data.get("BTMTYPEID"))); + codeClassifyDO.setBtmTypeName(VciBaseUtil.getStringValueFromObject(data.get("BTMTYPENAME"))); + oidList.add(codeClassifyDO); + } + } + return oidList; + } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java index 404f4d4..ccc9518 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstempattrServiceImpl.java @@ -16,23 +16,47 @@ */ package com.vci.ubcs.code.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.nacos.common.utils.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.vci.ubcs.code.constant.MdmBtmTypeConstant; +import com.vci.ubcs.code.dto.CodeClstempattrDTO; import com.vci.ubcs.code.entity.CodeClstempattrEntity; +import com.vci.ubcs.code.entity.CodeClstemplateEntity; +import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum; import com.vci.ubcs.code.mapper.CodeClstempattrMapper; +import com.vci.ubcs.code.mapper.CodeClstemplateMapper; +import com.vci.ubcs.code.mapper.CodeOsbtmtypeattributeMapper; import com.vci.ubcs.code.service.ICodeClstempattrService; +import com.vci.ubcs.code.service.ICodeTempphaseService; import com.vci.ubcs.code.vo.CodeClstempattrVO; - +import com.vci.ubcs.code.vo.CodeOsbtmtypeattributeVO; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.revision.service.RevisionModelUtil; +import com.vci.ubcs.starter.util.PatternUtil; import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; +import com.vci.ubcs.starter.web.pagemodel.*; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; +import com.vci.ubcs.starter.web.util.VciDateUtil; +import com.vci.ubcs.system.entity.DictBiz; +import com.vci.ubcs.system.feign.IDictBizClient; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cglib.beans.BeanMap; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*; /** * 缂栫爜搴撳畾涔�-妯℃澘灞炴�� 鏈嶅姟瀹炵幇绫� @@ -45,6 +69,22 @@ @Resource CodeClstempattrMapper codeClstempattrMapper; +// @Resource +// ICodeTempphaseService codeTempphaseService; + @Resource + IDictBizClient iDictBizClient; + @Resource + CodeClstemplateMapper codeClstemplateMapper; + @Resource + CodeOsbtmtypeattributeMapper codeOsbtmtypeattributeMapper; + @Resource + ICodeTempphaseService codeTempphaseService; + + /** + * 瀵硅薄鐨勬搷浣� + */ + @Autowired(required = false) + private RevisionModelUtil revisionModelUtil; @Override public IPage<CodeClstempattrVO> selectCodeClstempattrPage(IPage<CodeClstempattrVO> page, CodeClstempattrVO CodeClstempattr) { @@ -112,4 +152,647 @@ } return vo; } + + /** + * 鏌ヨ鎵�鏈夌殑涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 鎵ц缁撴灉 + */ + @Override + public DataGrid<CodeClstempattrVO> gridCodeClassifyTemplateAttr(Map<String, String> conditionMap, PageHelper pageHelper) { + DataGrid<CodeClstempattrVO> dataGrid=new DataGrid<CodeClstempattrVO>(); + //娌℃湁浼犻�掑弬鏁帮紝灏变笉鎵ц鏌ヨ閫昏緫 + if(conditionMap.size()==0){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + + if (pageHelper == null) { + pageHelper = new PageHelper(-1); + } + pageHelper.addDefaultAsc("ordernum"); +// IPage iPage = new IPage(); + Query query = new Query(); + query.setAscs("ordernum"); +// query.setSize(100); + if(pageHelper.getLimit() != -1){ + query.setSize(pageHelper.getLimit()); + query.setCurrent(pageHelper.getPage()); + } +// Condition.getPage(query) + CodeClstempattrVO codeClstempattrVO = new CodeClstempattrVO(); +// BeanUtil.toBean(map,codeClstempattrVO); +// BeanUtil + BeanMap beanMap = BeanMap.create(codeClstempattrVO); + + beanMap.putAll(conditionMap); +// Condition.getQueryWrapper( + IPage<CodeClstempattrEntity> doList = baseMapper. + selectPage(Condition.getPage(query), Condition.getQueryWrapper(codeClstempattrVO)); + + + if (!CollectionUtils.isEmpty(doList.getRecords())) { +// CodeClstempattrEntity codeClstempattrEntity = new CodeClstempattrEntity(); +// BeanUtils.copyProperties(conditionMap, codeClstempattrEntity); +// List<CodeClstempattrEntity> codeClstempattrEntities = new ArrayList<>(); +// BeanUtils.copyProperties(doList,codeClstempattrEntities); +// codeClstempattrEntities.addAll(doList); + dataGrid.setData(codeClassifyTemplateAttrDO2VOs(doList.getRecords())); + dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(baseMapper.selectCount(Condition.getQueryWrapper(codeClstempattrVO))))); + } + return dataGrid; + } + + /** + * 澧炲姞涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + */ + @Override + public CodeClstempattrVO addSave(CodeClstempattrDTO codeClassifyTemplateAttrDTO){ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeClstempattrEntity codeClassifyTemplateAttrDO = new CodeClstempattrEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + baseMapper.insert(codeClassifyTemplateAttrDO); + return codeClassifyTemplateAttrDO2VO(codeClassifyTemplateAttrDO); + } + + + /** + * 鎵归噺娣诲姞 + * @param codeClassifyTemplateAttrDTOs 鏁版嵁浼犺緭瀵硅薄 + * @return 淇濆瓨鍚庣殑鏄剧ず瀵硅薄 + */ + @Override + @Transactional + public List<CodeClstempattrVO> batchAddSave(List<CodeClstempattrDTO> codeClassifyTemplateAttrDTOs) { + if(CollectionUtils.isEmpty(codeClassifyTemplateAttrDTOs)){ + return new ArrayList<>(); + } + + //鍙栨墍鏈夊睘鎬х殑鑻辨枃鍚嶇О锛岀涓変釜楠岃瘉闇�瑕佺敤鍒� + Map<String,CodeClstempattrDTO> attrDTOMap =codeClassifyTemplateAttrDTOs.stream().collect(Collectors.toMap(s->s.getId().toLowerCase(Locale.ROOT), t->t)); + + //鎵惧睘鎬т腑鏂囧悕瀛楅噸澶� + Map<String, Long> nameCountMap = codeClassifyTemplateAttrDTOs.stream().collect(Collectors.groupingBy(s -> s.getName(), Collectors.counting())); + List<String> repeatNameList = nameCountMap.keySet().stream().filter(s -> nameCountMap.get(s) > 1).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(repeatNameList)){ + throw new VciBaseException("妯℃澘灞炴�т腑鏂囧悕绉般�恵0}銆戦噸澶�",new String[]{ repeatNameList.stream().collect(Collectors.joining(","))}); + } + //鎵惧睘鎬ц嫳鏂囧悕瀛楅噸澶� + Map<String, Long> idCountMap = codeClassifyTemplateAttrDTOs.stream().collect(Collectors.groupingBy(s -> s.getId().toLowerCase(Locale.ROOT), Collectors.counting())); + List<String> repeatIdList = idCountMap.keySet().stream().filter(s -> idCountMap.get(s) > 1).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(repeatIdList)){ + throw new VciBaseException("妯℃澘灞炴�ц嫳鏂囧悕绉般�恵0}銆戦噸澶�",new String[]{ repeatIdList.stream().collect(Collectors.joining(","))}); + } + + //妯℃澘oid + String CLASSIFYTEMPLATEOID = null; + //杞崲 + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOInsert = new ArrayList<CodeClstempattrEntity>(); + List<String> prefix = new ArrayList<>(); + List<String> suffix = new ArrayList<>(); + List<String> dateFormates = new ArrayList<>(); + for (CodeClstempattrEntity codeClassifyTemplateAttrDTO:codeClassifyTemplateAttrDTOs){ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeClstempattrEntity codeClassifyTemplateAttrDO = new CodeClstempattrEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + codeClassifyTemplateAttrDOInsert.add(codeClassifyTemplateAttrDO); + + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getPrefixvalue())){ + prefix.add(codeClassifyTemplateAttrDO.getPrefixvalue()); + } + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getSuffixvalue())){ + suffix.add(codeClassifyTemplateAttrDO.getSuffixvalue()); + } + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getCodedateformat())){ + dateFormates.add(codeClassifyTemplateAttrDO.getCodedateformat()); + } + //鍒ゆ柇浼犺繃鏉ョ殑鏋氫妇娉ㄥ叆鏄惁鏄痡sonArr鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getEnumstring())&&!checkKVArr(codeClassifyTemplateAttrDO.getEnumstring())){ + throw new VciBaseException("{0}{1}灞炴�х殑鏋氫妇娉ㄥ叆鏁版嵁鏍煎紡閿欒!",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + //鍒嗙被娉ㄥ叆 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getClassifyinvokeattr()) + && !CodeLevelTypeEnum.MIN.getValue().equalsIgnoreCase(codeClassifyTemplateAttrDO.getClassifyinvokelevel()) + && VciBaseUtil.getInt(codeClassifyTemplateAttrDO.getClassifyinvokelevel()) < 0){ + throw new VciBaseException("{0}{1}灞炴�х殑鏄垎绫绘敞鍏ワ紝浣嗘槸娉ㄥ叆灞傜骇涓嶈兘灏忎簬0!",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + + //鍒ゆ柇浼犺繃鏉ョ殑鍙傜収閰嶇疆鏄惁鏄痡son鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getReferconfig())&&!checkKVObj(codeClassifyTemplateAttrDO.getReferconfig())){ + throw new VciBaseException("{0}{1}灞炴�х殑鍙傜収閰嶇疆鏁版嵁鏍煎紡閿欒!",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDO.getCodedateformat()) && !checkDateFormat(codeClassifyTemplateAttrDO.getCodedateformat())){ + throw new VciBaseException("{0}{1}灞炴�х殑鏃堕棿鏍煎紡涓嶇鍚堣姹�",new String[]{codeClassifyTemplateAttrDO.getId(),codeClassifyTemplateAttrDO.getName()}); + } + //濡傛灉鏄粍鍚堣鍒欙紝閲岄潰浣跨敤鐨勫睘鎬т笉鑳界己澶憋紝涔熼兘寰楁樉绀� + String componentrule = codeClassifyTemplateAttrDTO.getComponentrule(); + boolean isContainsDynamicParameter = PatternUtil.isContainsDynamicParameter(componentrule); + if(isContainsDynamicParameter){ + List<String> userdAttrList = PatternUtil.getKeyListByContent(componentrule);//鍖呭惈鐨勬墍鏈�${xxx}涓殑xxx + if(!CollectionUtils.isEmpty(userdAttrList)){ + String unExistAttr = userdAttrList.stream().filter(s -> !attrDTOMap.containsKey(s.toLowerCase(Locale.ROOT))).collect(Collectors.joining(",")); + if(StringUtils.isNotBlank(unExistAttr)){ + throw new VciBaseException("{0}灞炴�ф槸缁勫悎瑙勫垯锛屼絾鏄鍒欓噷鍖呭惈鐨勫睘鎬{1}]鍦ㄥ綋鍓嶆ā鏉夸腑涓嶅瓨鍦�!",new String[]{codeClassifyTemplateAttrDO.getName(), unExistAttr}); + } + //瑕佺湅鐪嬭〃鍗曟槸鍚︽樉绀� + String unFormDisplayAttr = userdAttrList.stream().filter(s -> !VciBaseUtil.getBoolean(attrDTOMap.getOrDefault(s.toLowerCase(Locale.ROOT), + new CodeClstempattrDTO()).getFormdisplayflag())).collect(Collectors.joining(",")); + if(StringUtils.isNotBlank(unFormDisplayAttr)){ + throw new VciBaseException("{0}灞炴�ф槸缁勫悎瑙勫垯锛屼絾鏄鍒欓噷鍖呭惈鐨勫睘鎬{1}]鍦ㄥ綋鍓嶆ā鏉夸腑娌℃湁璁剧疆 琛ㄥ崟鏄剧ず ",new String[]{codeClassifyTemplateAttrDO.getName(),unFormDisplayAttr}); + } + } + } + + if(CLASSIFYTEMPLATEOID==null){ + CLASSIFYTEMPLATEOID = codeClassifyTemplateAttrDTO.getClassifytemplateoid(); + } + + } + + //鎵ц鏁版嵁淇濆瓨鎿嶄綔 +// WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� + + //鍏堥兘鍒犱簡 +// VciQueryWrapperForDO deleteAttrWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); +// deleteAttrWrapper.addQueryMap("CLASSIFYTEMPLATEOID",CLASSIFYTEMPLATEOID); + Map<String,Object> condition = new HashMap<>(); + condition.put("CLASSIFYTEMPLATEOID",CLASSIFYTEMPLATEOID); + List<CodeClstempattrEntity> codeClassifyTemplateAttrDODelete = baseMapper.selectByMap(condition); + + //oids + List<String> oids = new ArrayList<String>(); + for (CodeClstempattrEntity codeClassifyTemplateAttrDO:codeClassifyTemplateAttrDODelete){ + oids.add(codeClassifyTemplateAttrDO.getOid()); + } +// BatchCBO batchCBOTemplateDelete = new BatchCBO(); + if(!CollectionUtils.isEmpty(oids)){ + baseMapper.deleteBatchIds(oids); + } + + //鍐嶆柊澧� + if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOInsert)){ + this.saveBatch(codeClassifyTemplateAttrDOInsert); + } + + //璋冪敤闃舵 + if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOInsert)){ + codeTempphaseService.codeTemplateAttrModifyTrigger(codeClassifyTemplateAttrDOInsert); + + } + + +// SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); + //澶勭悊鍙緭鍙�夌殑瀛楃 + if(!CollectionUtils.isEmpty(prefix)){ + for (String s : prefix) { + DictBiz dictBiz = new DictBiz(); + dictBiz.setCode(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR); + dictBiz.setDictKey(s); + dictBiz.setDictValue("prefix"); + iDictBizClient.getCheck(dictBiz) ; + } +// .saveBySameNamespaceAndFlag(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR,"prefix",prefix,sessionInfo); + } + if(!CollectionUtils.isEmpty(suffix)){ + for (String s : suffix) { + DictBiz dictBiz = new DictBiz(); + dictBiz.setCode(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR); + dictBiz.setDictKey(s); + dictBiz.setDictValue("suffix"); + iDictBizClient.getCheck(dictBiz) ; + } +// charService.saveBySameNamespaceAndFlag(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR,"suffix",suffix,sessionInfo); + } + if(!CollectionUtils.isEmpty(dateFormates)){ + for (String s : dateFormates) { + DictBiz dictBiz = new DictBiz(); + dictBiz.setCode(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR); + dictBiz.setDictKey(s); + dictBiz.setDictValue("dateFormates"); + iDictBizClient.getCheck(dictBiz) ; + } +// charService.saveBySameNamespaceAndFlag(MdmBtmTypeConstant.CODE_CLASSIFY_TEMPLATE_ATTR,"dateFormates",dateFormates,sessionInfo); + } + +// WebUtil.setPersistence(true);//鎵ц淇濆瓨 +// boService.persistenceBatch(batchCBOTemplateDelete);//涓�璧锋墽琛屼繚瀛� + return codeClassifyTemplateAttrDO2VOs(codeClassifyTemplateAttrDOInsert); + } + + public boolean checkKVArr(String kvString){ + boolean isKV = true; + try { + JSONObject.parseArray(kvString, KeyValue.class); + }catch (Exception e){ + isKV=false; + } + return isKV; + } + public boolean checkKVObj(String kvString){ + boolean isKV = true; + try { + JSONObject.parseObject(kvString, UIFormReferVO.class); + }catch (Exception e){ + isKV=false; + } + return isKV; + } + + /** + * 鏍¢獙鏃堕棿鏍煎紡 + * @param dateFormat 鏃堕棿鏍煎紡 + * @return true琛ㄧず鏍¢獙閫氳繃 + */ + public boolean checkDateFormat(String dateFormat){ + try{ + VciDateUtil.date2Str(new Date(),dateFormat); + return true; + }catch (Throwable e){ + return false; + } + } + + + /** + * 淇敼涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞� + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public R editSave(CodeClstempattrDTO codeClassifyTemplateAttrDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"鏁版嵁瀵硅薄",codeClassifyTemplateAttrDTO.getOid(),"涓婚搴撳垎绫荤殑妯℃澘灞炴�т富閿�"); + + //鍒ゆ柇浼犺繃鏉ョ殑鏋氫妇娉ㄥ叆鏄惁鏄痡sonArr鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDTO.getEnumstring())&&!checkKVArr(codeClassifyTemplateAttrDTO.getEnumstring())){ + throw new VciBaseException("鏋氫妇娉ㄥ叆鏁版嵁鏍煎紡閿欒!"); + } + + //鍒ゆ柇浼犺繃鏉ョ殑鍙傜収閰嶇疆鏄惁鏄痡son鏍煎紡 + if(StringUtils.isNotBlank(codeClassifyTemplateAttrDTO.getReferbtmid())&&!checkKVObj(codeClassifyTemplateAttrDTO.getReferbtmid())){ + throw new VciBaseException("鏋氫妇娉ㄥ叆鏁版嵁鏍煎紡閿欒!"); + } + + + //妫�鏌s + CodeClstempattrEntity codeClassifyTemplateAttrDOCopyFromDTO = new CodeClstempattrEntity(); +// BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDOCopyFromDTO); +// boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOCopyFromDTO); + + //妫�鏌s +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClassifyTemplateAttrDTO.getOid()); +// condition.put("ts",codeClassifyTemplateAttrDTO.getTs()); + CodeClstempattrEntity detail = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); + if(!detail.getTs().toString().equals(codeClassifyTemplateAttrDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + + //灏咲TO杞崲涓篋O + CodeClstempattrEntity codeClassifyTemplateAttrDO = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); + revisionModelUtil.copyFromDTOIgnore(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + baseMapper.updateById(codeClassifyTemplateAttrDO); + return R.data(codeClassifyTemplateAttrDO2VO(codeClassifyTemplateAttrDO)); + } + + /** + * 鍒犻櫎涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param codeClassifyTemplateAttrDTO 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹紶杈撳璞★紝oid鍜宼s闇�瑕佷紶杈� + * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� + * @throws VciBaseException 鍙傛暟涓虹┖锛岃寮曠敤鏃舵姏鍑哄紓甯� + */ + @Override + public R deleteCodeClassifyTemplateAttr(CodeClstempattrDTO codeClassifyTemplateAttrDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateAttrDTO,"涓婚搴撳垎绫荤殑妯℃澘灞炴�ф暟鎹璞�",codeClassifyTemplateAttrDTO.getOid(),"涓婚搴撳垎绫荤殑妯℃澘灞炴�х殑涓婚敭"); + CodeClstempattrEntity codeClassifyTemplateAttrDO = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); + R baseResult = checkIsCanDeleteForDO(codeClassifyTemplateAttrDTO,codeClassifyTemplateAttrDO); + if(baseResult.isSuccess()) { + }else{ + return baseResult; + } + //鎵ц鍒犻櫎鎿嶄綔 + int deleteNum = baseMapper.deleteById(codeClassifyTemplateAttrDO.getOid()); + return deleteNum>0?R.success(DELETE_SUCCESS):R.fail(DELETE_FAIL); + } + + /** + * 鏍¢獙鏄惁鍙互鍒犻櫎锛屽鏋滃瓨鍦ㄤ笅绾э紝骞朵笖涓嬬骇鏈夋暟鎹紩鐢ㄥ垯涓嶈兘鍒犻櫎 + * @param codeClassifyTemplateAttrDTO 鏁版嵁浼犺緭瀵硅薄 + * @param codeClassifyTemplateAttrDO 鏁版嵁搴撲腑鐨勬暟鎹璞� + * @return success涓簍rue涓哄彲浠ュ垹闄わ紝false琛ㄧず鏈夋暟鎹紩鐢紝obj涓簍rue琛ㄧず鏈変笅绾� + */ + private R checkIsCanDeleteForDO(CodeClstempattrDTO codeClassifyTemplateAttrDTO, CodeClstempattrEntity codeClassifyTemplateAttrDO) { +// boService.checkTs(codeClassifyTemplateAttrDO); +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClassifyTemplateAttrDTO.getOid()); +// condition.put("ts",codeClassifyTemplateAttrDTO.getTs()); + CodeClstempattrEntity detail = baseMapper.selectById(codeClassifyTemplateAttrDTO.getOid()); +// .selectOne(Condition.getQueryWrapper(condition,CodeClstempattrEntity.class)); + + if(!detail.getTs().toString().equals(codeClassifyTemplateAttrDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + if(!checkIsLinked(codeClassifyTemplateAttrDO.getOid())) { + return R.success("鍙互鍒犻櫎锛�"); + }else{ + return R.fail(DATA_LINKED_NOT_DELETE); + } + } + + /** + * 鏍¢獙鏄惁琚紩鐢� + * @param oid 涓婚敭 + * @throws VciBaseException 琚紩鐢ㄧ殑鏃跺�欎細鎶涘嚭寮傚父 + */ + private boolean checkIsLinked(String oid) throws VciBaseException{ + //TODO 娣诲姞闇�瑕佹牎楠屽紩鐢ㄧ殑鍦版柟 + return false; + } + + /** + * 涓婚敭鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oid 涓婚敭 + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + * @throws VciBaseException 鍙傛暟涓虹┖锛屾暟鎹笉瀛樺湪鏃朵細鎶涘嚭寮傚父 + */ + @Override + public CodeClstempattrVO getObjectByOid(String oid) throws VciBaseException{ + return codeClassifyTemplateAttrDO2VO(selectByOid(oid)); + } + /** + * 涓婚敭鏌ヨ鏁版嵁瀵硅薄 + * @param oid 涓婚敭 + * @return 鏁版嵁瀵硅薄 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽苟涓旀暟鎹笉瀛樺湪鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + private CodeClstempattrEntity selectByOid(String oid) throws VciBaseException{ + VciBaseUtil.alertNotNull(oid,"涓婚敭"); + CodeClstempattrEntity codeClassifyTemplateAttrDO = baseMapper.selectById(oid.trim()); + if(codeClassifyTemplateAttrDO == null || StringUtils.isBlank(codeClassifyTemplateAttrDO.getOid())){ + throw new VciBaseException(DATA_OID_NOT_EXIST); + } + return codeClassifyTemplateAttrDO; + } + + /** + * 涓婚敭鎵归噺鑾峰彇涓婚搴撳垎绫荤殑妯℃澘灞炴�� + * @param oidCollections 涓婚敭闆嗗悎锛屼絾鏄彈鎬ц兘褰卞搷锛屽缓璁竴娆℃煡璇笉瓒呰繃10000涓� + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞� + * @throws VciBaseException 鏌ヨ鍑虹幇寮傚父鏃朵細鎶涘嚭 + */ + @Override + public Collection<CodeClstempattrVO> listCodeClassifyTemplateAttrByOids(Collection<String> oidCollections) { + VciBaseUtil.alertNotNull(oidCollections,"鏁版嵁瀵硅薄涓婚敭闆嗗悎"); + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = listCodeClassifyTemplateAttrDOByOidCollections(oidCollections); + return codeClassifyTemplateAttrDO2VOs(codeClassifyTemplateAttrDOList); + } + + /** + * 浣跨敤涓婚敭闆嗗悎鏌ヨ鏁版嵁瀵硅薄 + * @param oidCollections 涓婚敭鐨勯泦鍚� + * @return 鏁版嵁瀵硅薄鍒楄〃 + */ + private List<CodeClstempattrEntity> listCodeClassifyTemplateAttrDOByOidCollections(Collection<String> oidCollections){ + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = new ArrayList<CodeClstempattrEntity>(); + if(!CollectionUtils.isEmpty(oidCollections)){ + Collection<Collection<String>> oidCollectionsList = VciBaseUtil.switchCollectionForOracleIn(oidCollections); + for(Collection<String> oids: oidCollectionsList){ + List<CodeClstempattrEntity> tempDOList = baseMapper.selectBatchIds(oids); + if(!CollectionUtils.isEmpty(tempDOList)){ + codeClassifyTemplateAttrDOList.addAll(tempDOList); + } + } + } + return codeClassifyTemplateAttrDOList; + } + + /** + * 鍙傜収涓婚搴撳垎绫荤殑妯℃澘灞炴�у垪琛� + * @param conditionMap 鏌ヨ鏉′欢 + * @param pageHelper 鍒嗛〉鍜屾帓搴� + * @return 涓婚搴撳垎绫荤殑妯℃澘灞炴�ф樉绀哄璞″垪琛紝鐢熸晥鐨勫唴瀹� + * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 + */ + @Override + public DataGrid<CodeClstempattrVO> refDataGridCodeClassifyTemplateAttr(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{ + if(conditionMap == null){ + conditionMap = new HashMap<String, String>(); + } + return gridCodeClassifyTemplateAttr(conditionMap,pageHelper); + } + + /** + * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅鐨勬墍鏈夋湭閫夋嫨鐨勫睘鎬� + * @param baseQueryObject + * @return + */ + @Override + public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtm(BaseQueryObject baseQueryObject){ + if(baseQueryObject.getConditionMap() == null){ + baseQueryObject.setConditionMap(new HashMap<>()); + } + DataGrid<CodeOsbtmtypeattributeVO> dataGrid=new DataGrid<CodeOsbtmtypeattributeVO>(); + //妯℃澘oid + String templateAttrOid = baseQueryObject.getConditionMap().get("oid"); + String name = baseQueryObject.getConditionMap().getOrDefault("name",""); + String id = baseQueryObject.getConditionMap().getOrDefault("id",""); + + //娌℃湁oid涓嶆墽琛岄�昏緫 + if(StringUtils.isBlank(templateAttrOid)){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + + //鏌ヨ妯℃澘瀵硅薄 + CodeClstemplateEntity codeClassifyTemplateDO = codeClstemplateMapper.selectById(templateAttrOid); + + //杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬� + List<CodeOsbtmtypeattributeVO> boAttrs = (List<CodeOsbtmtypeattributeVO>) codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());// this.btmService.listAttributeByBtmId(codeClassifyTemplateDO.getBtmTypeId()); +// codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()); +// BeanUtils.copyProperties(codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()),boAttrs); + //鎶婇粯璁ょ殑灞炴�т篃娣诲姞鍒癰oAttrs + if(boAttrs == null){ + boAttrs = new ArrayList<>(); + } + if(!false){ +// List<CodeOsbtmtypeattributeVO> finalBoAttrs = boAttrs; +// attributeService.getDefaultAttributeVOs().stream().forEach(attr-> { +// CodeOsbtmtypeattributeVO attributeVO = new CodeOsbtmtypeattributeVO(); +// BeanUtil.convert(attr, attributeVO); +// if ("id".equalsIgnoreCase(attributeVO.getId())) { +// attributeVO.setName("浼佷笟缂栫爜"); +// } +// if ("name".equalsIgnoreCase(attributeVO.getId())) { +// attributeVO.setName("闆嗗洟鐮�"); +// } +// attributeVO.setAttrDataType(attr.getAttributeDataType()); +// attributeVO.setAttributeLength(attr.getAttrLength()); +// attributeVO.setReferBtmTypeId(attr.getBtmTypeId()); +// attributeVO.setReferBtmTypeName(attr.getBtmTypeName()); +// finalBoAttrs.add(attributeVO); +// }); +// boAttrs = finalBoAttrs; + Object o = null; + } + + //杩欎釜妯℃澘涓嬪凡缁忔湁鐨勫睘鎬� +// VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); +// queryWrapper.addQueryMap("CLASSIFYTEMPLATEOID",templateAttrOid); + Map<String,Object> condition = new HashMap<>(1); + condition.put("CLASSIFYTEMPLATEOID",templateAttrOid); + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = codeClstempattrMapper.selectByMap(condition); + + List<String> btmOids = new ArrayList<String>(); + for (CodeClstempattrEntity codeClassifyTemplateAttrDO:codeClassifyTemplateAttrDOList){ + btmOids.add(codeClassifyTemplateAttrDO.getId()); + } + + //杩囨护鎺夊凡缁忓瓨鍦ㄧ殑灞炴�� + List<CodeOsbtmtypeattributeVO> boAttrss = new ArrayList<CodeOsbtmtypeattributeVO>(); + + for (CodeOsbtmtypeattributeVO osBtmTypeAttributeVO:boAttrs){ + if(!btmOids.contains(osBtmTypeAttributeVO.getId())){ + //鐪嬬湅鏄笉鏄湁妯$硦鏌ヨ + boolean inSearch = true; + if(StringUtils.isNotBlank(name) && !osBtmTypeAttributeVO.getName().contains(name.replace("*",""))){ + inSearch = false; + } + if(StringUtils.isNotBlank(id) && !osBtmTypeAttributeVO.getId().contains(id.replace("*",""))){ + inSearch = false; + } + if(inSearch) { + boAttrss.add(osBtmTypeAttributeVO); + } + } + } + dataGrid.setData(boAttrss); + dataGrid.setTotal(boAttrss.size()); + return dataGrid; + } + + + + /** + * 鏌ヨ杩欎釜妯℃澘锛屼笟鍔$被鍨嬩笅宸查�夋嫨鐨勫睘鎬� + * @param baseQueryObject + * @return + */ + @Override + public DataGrid<CodeOsbtmtypeattributeVO> codeClassifyTemplateAttrByBtmHave(BaseQueryObject baseQueryObject){ + DataGrid<CodeOsbtmtypeattributeVO> dataGrid=new DataGrid<CodeOsbtmtypeattributeVO>(); + //妯℃澘oid + String templateAttrOid = baseQueryObject.getConditionMap().get("oid"); + + //娌℃湁oid涓嶆墽琛岄�昏緫 + if(StringUtils.isBlank(templateAttrOid)){ + dataGrid.setData(new ArrayList<>()); + dataGrid.setTotal(0); + return dataGrid; + } + + //鏌ヨ妯℃澘瀵硅薄 + CodeClstemplateEntity codeClassifyTemplateDO = codeClstemplateMapper.selectById(templateAttrOid); + + //杩欎釜涓氬姟绫诲瀷涓嬬殑鎵�鏈夊睘鎬� + List<CodeOsbtmtypeattributeVO> boAttrs = (List<CodeOsbtmtypeattributeVO>) codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId());//this.btmService.listAttributeByBtmIdHasDefault(codeClassifyTemplateDO.getBtmTypeId()); +// codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()); +// BeanUtils.copyProperties(codeOsbtmtypeattributeMapper.selectById(codeClassifyTemplateDO.getBtmTypeId()),boAttrs); + //杩欎釜妯℃澘涓嬪凡缁忔湁鐨勫睘鎬� + //鎶婇粯璁ょ殑灞炴�т篃娣诲姞鍒癰oAttrs + if(boAttrs == null){ + boAttrs = new ArrayList<>(); + } +// VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); +// queryWrapper.addQueryMap("CLASSIFYTEMPLATEOID",templateAttrOid); + +// Map<String,Object> condition = new HashMap<>(1); +// condition.put("CLASSIFYTEMPLATEOID",templateAttrOid); + + QueryWrapper<CodeClstempattrEntity> wrapper=new QueryWrapper<>(); + wrapper.eq("CLASSIFYTEMPLATEOID",templateAttrOid); + + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = codeClstempattrMapper.selectList(wrapper); + List<String> btmOids = new ArrayList<String>(); + for (CodeClstempattrEntity codeClassifyTemplateAttrDO:codeClassifyTemplateAttrDOList){ + btmOids.add(codeClassifyTemplateAttrDO.getId()); + } + + //杩囨护鎺夐櫎浜嗚嚜韬殑鍒殑灞炴�� + List<CodeOsbtmtypeattributeVO> boAttrss = new ArrayList<CodeOsbtmtypeattributeVO>(); + + for (CodeOsbtmtypeattributeVO osBtmTypeAttributeVO:boAttrs){ + if(btmOids.contains(osBtmTypeAttributeVO.getId())){ + boAttrss.add(osBtmTypeAttributeVO); + } + } + dataGrid.setData(boAttrss); + dataGrid.setTotal(boAttrss.size()); + return dataGrid; + } + + + /** + * 鍚屾鍒板叾浠栨ā鏉� + * @param codeClassifyTemplateAttrDTO oid + * @return + */ + @Override + public R copyto(CodeClstempattrDTO codeClassifyTemplateAttrDTO) throws VciBaseException{ + + String templateAttrOid = codeClassifyTemplateAttrDTO.getOid(); + + //鏌ヨ鍑烘潵瑕佸鍒剁殑瀵硅薄 + CodeClstempattrEntity codeClassifyTemplateAttrDO = selectByOid(templateAttrOid); + String id = codeClassifyTemplateAttrDO.getId();//鑻辨枃鍚嶇О + String classfyTemplateOid = codeClassifyTemplateAttrDO.getClassifytemplateoid(); + + //鏌ヨ鍏朵粬id=id鐨勬ā鏉垮睘鎬� +// VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); +// queryWrapper.addQueryMap("id",id); +// Map<String,Object> condition = new HashMap<>(1); +// condition.put("id",id); + QueryWrapper<CodeClstempattrEntity> wrapper=new QueryWrapper<>(); + wrapper.eq("id",id); + //鎵�鏈塱d=id鐨勬ā鏉垮睘鎬� + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList =codeClstempattrMapper.selectList(wrapper); + + //瑕佸垹闄ょ殑妯℃澘灞炴�х殑oids + List<String> deleteOids = new ArrayList<String>(); + //瑕佷慨鏀圭殑妯℃澘灞炴�у璞� + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOListInsert = new ArrayList<CodeClstempattrEntity>(); + for (CodeClstempattrEntity codeClassifyTemplateAttrDOi:codeClassifyTemplateAttrDOList){ + String oid = codeClassifyTemplateAttrDOi.getOid(); + String templateOldOid = codeClassifyTemplateAttrDOi.getClassifytemplateoid(); + + CodeClstempattrEntity codeClassifyTemplateAttrDOInsert = new CodeClstempattrEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateAttrDO,codeClassifyTemplateAttrDOInsert); + codeClassifyTemplateAttrDOInsert.setOid(oid); + codeClassifyTemplateAttrDOInsert.setClassifytemplateoid(templateOldOid); + codeClassifyTemplateAttrDOListInsert.add(codeClassifyTemplateAttrDOInsert); + + deleteOids.add(codeClassifyTemplateAttrDOi.getOid()); + } + +// WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� + + //鍒犻櫎 +// BatchCBO batchCBOTemplateAttrDelete = codeClassifyTemplateAttrDOissifyTemplateAttrMapper.batchDeleteByOids(deleteOids); + codeClstempattrMapper.deleteBatchIds(deleteOids); + //鍐嶆柊澧� +// BatchCBO batchCBOTemplateAttrInsert = codeClassifyTemplateAttrMapper.batchInsert(codeClassifyTemplateAttrDOListInsert); +// batchCBOTemplateAttrDelete.copyFromOther(batchCBOTemplateAttrInsert); + this.saveBatch(codeClassifyTemplateAttrDOListInsert); + +// WebUtil.setPersistence(true);//鎵ц淇濆瓨 +// boService.persistenceBatch(batchCBOTemplateAttrDelete);//涓�璧锋墽琛屼繚瀛� + + return R.success("鎿嶄綔鎴愬姛锛�"); + } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java index c2f8b5e..1271459 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClstemplateServiceImpl.java @@ -20,36 +20,37 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vci.ubcs.code.dto.CodeClstemplateDTO; -import com.vci.ubcs.code.entity.CodeClstempattrEntity; -import com.vci.ubcs.code.entity.CodeClstemplateEntity; +import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.enumpack.CodeClassifyTemplateLC; import com.vci.ubcs.code.enumpack.FrameworkDataLCStatus; -import com.vci.ubcs.code.mapper.CodeClstempattrMapper; -import com.vci.ubcs.code.mapper.CodeClstemplateMapper; +import com.vci.ubcs.code.mapper.*; +import com.vci.ubcs.code.service.ICodeClassifyService; import com.vci.ubcs.code.service.ICodeClstemplateService; import com.vci.ubcs.code.vo.CodeClstempattrVO; import com.vci.ubcs.code.vo.CodeClstemplateVO; import com.vci.ubcs.starter.exception.VciBaseException; import com.vci.ubcs.starter.revision.model.TreeQueryObject; - - import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; import com.vci.ubcs.starter.revision.service.RevisionModelUtil; +import com.vci.ubcs.starter.web.pagemodel.DataGrid; import com.vci.ubcs.starter.web.pagemodel.Tree; import com.vci.ubcs.starter.web.util.BeanUtilForVCI; import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; -import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_RELEASED; -import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.LC_STATUS; +import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.*; import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.*; import static com.vci.ubcs.code.service.impl.CodeClassifyServiceImpl.PARENT_FIELD_NAME; @@ -83,6 +84,23 @@ private CodeTempbuttonServiceImpl codeTempbuttonServiceImpl; @Autowired(required = false) private CodeClsflowtempServiceImpl codeClsflowtempServiceImpl; + @Autowired(required = false) + private CodeClsflowtempMapper codeClsflowtempMapper; + @Autowired(required = false) + private CodeTempphaseMapper codeTempphaseMapper; + @Autowired(required = false) + private CodeTempbuttonMapper codeTempbuttonMapper; + @Autowired(required = false) + private CodePhaseattrMapper codePhaseattrMapper; + @Autowired(required = false) + private ICodeClassifyService codeClassifyService; + @Autowired(required = false) + private CodeClstemplateMapper codeClstemplateMapper; + @Autowired(required = false) + private CodePhaseattrServiceImpl codePhaseattrServiceImpl; + + + @Override public IPage<CodeClstemplateVO> selectPlCodeClstemplatePage(IPage<CodeClstemplateVO> page, CodeClstemplateVO plCodeClstemplate) { return page.setRecords(baseMapper.selectPlCodeClstemplatePage(page, plCodeClstemplate)); @@ -119,8 +137,12 @@ // VciParentQueryOption parentQueryOption = new VciParentQueryOption(); // parentQueryOption.setParentFieldName(PARENT_FIELD_NAME); // queryWrapperForDO.parentQueryChild(treeQueryObject,parentQueryOption); - CodeClstemplateEntity codeClstemplateEntity = new CodeClstemplateEntity(); - return baseMapper.selectList(Condition.getQueryWrapper(codeClstemplateEntity)); +// CodeClstemplateEntity codeClstemplateEntity = new CodeClstemplateEntity(); +// codeClstemplateEntity.set + return baseMapper.selectCodeClassifyTemplateDOByTree( + treeQueryObject.getConditionMap().get("codeclassifyoid"), + treeQueryObject.getConditionMap().get("lcStatus")); +// return baseMapper.selectList(Condition.getQueryWrapper(codeClstemplateEntity)); // return codeClassifyTemplateMapper.selectByWrapper(queryWrapperForDO); } @@ -210,19 +232,20 @@ BeanUtilForVCI.copyPropertiesIgnoreCase(codeClstemplateDTO,codeClassifyTemplateDOCopyFromDTO); //妫�鏌s - Map<String,Object> condition = new HashMap<>(2); - condition.put("oid",codeClstemplateDTO.getOid()); - condition.put("ts",codeClstemplateDTO.getTs()); +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClstemplateDTO.getOid()); +// condition.put("ts",codeClstemplateDTO.getTs()); CodeClstemplateEntity detail = baseMapper - .selectOne(Condition.getQueryWrapper(condition,CodeClstemplateEntity.class)); - if(detail == null){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + .selectById(codeClstemplateDTO.getOid()); + + if(!detail.getTs().toString().equals(codeClstemplateDTO.getTs().toString())){//涓嶆槸鏈�鏂扮殑涓嶈鏀� return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); } //鏍¢獙涓嬬骇鏄惁鏈夊紩鐢� if(checkChildIsLinked(codeClstemplateEntity.getOid())){ return R.fail(DATA_CASCADE_LINKED_NOT_DELETE); } - return R.status(checkHasChild(codeClstemplateEntity.getOid())); + return R.success(String.valueOf(checkHasChild(codeClstemplateEntity.getOid()))); } /** @@ -273,6 +296,7 @@ * @param codeClstemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄锛宱id鍜宼s闇�瑕佷紶杈� * @return 鍒犻櫎缁撴灉鍙嶉锛氾細success锛氭垚鍔燂紝fail锛氬け璐� */ + @Transactional @Override public R deleteCodeClassifyTemplate(CodeClstemplateDTO codeClstemplateDTO) { checkIsCanDelete(codeClstemplateDTO); @@ -362,8 +386,8 @@ * 鍙傜収鏍� 鍒嗙被妯℃澘瀵硅薄 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄 * @return 鍒嗙被妯℃澘瀵硅薄鏄剧ず鏍� - * @throws VciBaseException 鏌ヨ鏉′欢鍜屽垎椤靛嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父 */ + @Transactional @Override public List<Tree> referTree(TreeQueryObject treeQueryObject) { if(treeQueryObject == null){ @@ -418,6 +442,7 @@ * @param lcStatus * @return */ + @Transactional @Override public R updateLcStatus( String oid, String lcStatus){ CodeClstemplateEntity codeClassifyTemplateDO = baseMapper.selectById(oid); @@ -440,6 +465,7 @@ * 鍗囩増 * @param codeClassifyDTO */ + @Transactional @Override public R Upgrade(CodeClstemplateDTO codeClassifyDTO) { @@ -454,93 +480,95 @@ //闇�瑕佹柊澧炵殑鍗囩骇妯℃澘 // ClientBusinessObject clientBusinessObject_template = boService.selectCBOByOid(codeClassifyDTO.getOid(), "codeclstemplate"); CodeClstemplateEntity codeCls_template = baseMapper.selectById(templateOldOid); - CodeClstemplateEntity codeCls_template_insert = null; + CodeClstemplateEntity codeCls_template_insert = new CodeClstemplateEntity(); // ClientBusinessObject clientBusinessObject_template_insert = null; // try { -//// clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, ""); -//// codeCls_template_insert.setOid((new ObjectUtility()).getNewObjectID36()); -//// toBo.setRevisionid((new ObjectUtility()).getNewObjectID36()); -// codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); -// codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); -//// codeCls_template_insert.setIsLast(1); -//// codeCls_template_insert.setIsFirstr(0); -//// codeCls_template_insert.setIsFirstv(1); -//// codeCls_template_insert.setIsLastV(1); -// codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName()); -// codeCls_template_insert.setCreateTime(new Date()); -// codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); -// codeCls_template_insert.setLastModifyTime(new Date()); -// codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); -// codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); -// RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal); -// codeCls_template_insert.setRevisionSeq(rvObj.getRevisionSeq()); -// codeCls_template_insert.setRevisionValue(rvObj.getRevisionVal()); +// clientBusinessObject_template_insert = clientBusinessObjectOperation.reviseBusinessObject(clientBusinessObject_template, ""); + codeCls_template_insert.setOid(VciBaseUtil.getPk()); + codeCls_template_insert.setRevisionOid(VciBaseUtil.getPk()); + codeCls_template_insert.setNameOid(codeCls_template.getNameOid()); + codeCls_template_insert.setBtmname(codeCls_template.getBtmname()); + codeCls_template_insert.setLastR(String.valueOf(1)); + codeCls_template_insert.setFirstR(String.valueOf(0)); + codeCls_template_insert.setFirstV(String.valueOf(1)); + codeCls_template_insert.setLastV(String.valueOf(1)); + codeCls_template_insert.setCreator(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setCreateTime(new Date()); + codeCls_template_insert.setLastModifier(AuthUtil.getUser().getUserName()); + codeCls_template_insert.setLastModifyTime(new Date()); + codeCls_template_insert.setRevisionRule(codeCls_template.getRevisionRule()); + codeCls_template_insert.setVersionRule(codeCls_template.getVersionRule()); + Map rvObj = baseMapper.getNextRevision(codeCls_template.getNameOid()); + codeCls_template_insert.setRevisionSeq(Integer.parseInt(rvObj.get("REVISIONSEQ").toString())); + codeCls_template_insert.setRevisionValue(rvObj.get("REVISIONVAL").toString()); // VersionValueObject versionObj = this.getVersionValue(item.verRuleName); -// codeCls_template_insert.setVersionSeq(versionObj.getVersionSeq()); -// codeCls_template_insert.setVersionValue(versionObj.getVersionVal()); -// codeCls_template_insert.setLctId(codeCls_template.getLctId()); -// codeCls_template_insert.setLcStatus(this.getLcFirstStatus(item.lifeCycle)); -// codeCls_template_insert.setId(codeCls_template.getId()); -// codeCls_template_insert.setName(codeCls_template.getName()); -// codeCls_template_insert.setDescription(codeCls_template.getDescription()); -// codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName()); -//// codeCls_template_insert.setCheckinBy(userName); -// codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); + codeCls_template_insert.setVersionSeq(Integer.parseInt(rvObj.get("VERSIONSEQ").toString())); + codeCls_template_insert.setVersionValue(rvObj.get("VERSIONVAL").toString()); + codeCls_template_insert.setLctid(codeCls_template.getLctid()); + codeCls_template_insert.setLcStatus("Editing"); + codeCls_template_insert.setId(codeCls_template.getId()); + codeCls_template_insert.setName(codeCls_template.getName()); + codeCls_template_insert.setDescription(codeCls_template.getDescription()); + codeCls_template_insert.setOwner(AuthUtil.getUser().getUserName()); +// codeCls_template_insert.setCheckinBy(userName); + codeCls_template_insert.setCopyFromVersion(codeCls_template.getOid()); // }catch (VCIError e){ // e.printStackTrace(); // logger.error("===============>鍒嗙被妯℃澘-鍗囩増澶嶅埗鍑洪敊oid锛� "+templateOldOid+",mes"+e.error_message); // return BaseResult.error("鍗囩増鍑洪敊"); // } -// -// -// CodeClassifyTemplateDO codeClassifyTemplateDO = new CodeClassifyTemplateDO(); + int insertCount = baseMapper.insert(codeCls_template_insert); +// CodeClstemplateEntity codeClassifyTemplateDO = new CodeClstemplateEntity(); // BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyDTO,codeClassifyTemplateDO); // WebUtil.copyValueToObjectFromCbos(clientBusinessObject_template_insert,codeClassifyTemplateDO); -// //modify by weidy@2022-2-27 -// //鍗囩増鍚庝笉鑳戒娇鐢╥nsert鏂规硶锛屽洜涓洪偅涓案杩滄槸鏂板涓�鏉℃暟鎹紝 -// //涓婃柟鍏堜粠dto杞粰do锛岀劧鍚庢妸鍗囩増鐨勫垵濮嬪寲鐨勫睘鎬ф嫹璐濈粰do锛屾渶鍚庡啀浠巇o鎷疯礉鍒癱bo涓� + //modify by weidy@2022-2-27 + //鍗囩増鍚庝笉鑳戒娇鐢╥nsert鏂规硶锛屽洜涓洪偅涓案杩滄槸鏂板涓�鏉℃暟鎹紝 + //涓婃柟鍏堜粠dto杞粰do锛岀劧鍚庢妸鍗囩増鐨勫垵濮嬪寲鐨勫睘鎬ф嫹璐濈粰do锛屾渶鍚庡啀浠巇o鎷疯礉鍒癱bo涓� // WebUtil.copyValueToCboFromObj(clientBusinessObject_template_insert,codeClassifyTemplateDO); -// //鍗囩増杩囧悗鐨勬ā鏉縪id -// String templateNewOid = codeClassifyTemplateDO.getOid(); -// -// //闇�瑕佸鍒剁殑妯℃澘灞炴�� -// //鏌ヨ鑰佹ā鏉夸笅杈圭殑鎵�鏈夊睘鎬э紝璧嬪�兼柊妯℃澘oid + //鍗囩増杩囧悗鐨勬ā鏉縪id + String templateNewOid = codeCls_template_insert.getOid(); + + //闇�瑕佸鍒剁殑妯℃澘灞炴�� + //鏌ヨ鑰佹ā鏉夸笅杈圭殑鎵�鏈夊睘鎬э紝璧嬪�兼柊妯℃澘oid // VciQueryWrapperForDO codeClassifyTemplateAttrQuery = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); // codeClassifyTemplateAttrQuery.addQueryMap("classifyTemplateOid",templateOldOid); + Map<String,Object> condition = new HashMap<>(1); + condition.put("classifyTemplateOid",templateOldOid); + List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); // List<CodeClassifyTemplateAttrDO> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); -// for (CodeClassifyTemplateAttrDO codeClassifyTemplateAttrDO :codeClassifyTemplateAttrDOList){ + for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ // String attrOid = VciBaseUtil.getPk(); -// codeClassifyTemplateAttrDO.setOid(attrOid); -// codeClassifyTemplateAttrDO.setClassifyTemplateOid(templateNewOid); -// } -// -// //澶嶅埗妯℃澘娴佺▼ -// List<CodeClassifyProcessTempDO> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); -// -// //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� -// Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); -// -// List<CodeTemplatePhaseDO> codeClassifyPhaseDOList = (ArrayList<CodeTemplatePhaseDO>)phase_attrMap.get("phase");//妯℃澘闃舵 -// List<CodePhaseAttrDO> codePhaseAttrDOList = (ArrayList<CodePhaseAttrDO>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� -// -// //澶嶅埗妯℃澘鎸夐挳 -// List<CodeClassifyTemplateButtonDO> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); -// -// //涓�璧蜂繚瀛樻暟鎹� + codeClassifyTemplateAttrDO.setOid(null); + codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid); + codeClstempattrMapper.insert(codeClassifyTemplateAttrDO); + } + + //澶嶅埗妯℃澘娴佺▼ + List<CodeClsflowtempEntity> codeClassifyProcessTempDOList = copyTemplateProcess(templateOldOid,templateNewOid); + //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� + Map phase_attrMap = copyTemplatePhase_attr(templateOldOid,templateNewOid); + + List<CodeTempphaseEntity> codeClassifyPhaseDOList = (ArrayList<CodeTempphaseEntity>)phase_attrMap.get("phase");//妯℃澘闃舵 + List<CodePhaseattrEntity> codePhaseAttrDOList = (ArrayList<CodePhaseattrEntity>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� + + //澶嶅埗妯℃澘鎸夐挳 + List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(templateOldOid,templateNewOid); + + //涓�璧蜂繚瀛樻暟鎹� // WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� -// //淇濆瓨妯℃澘 + //淇濆瓨妯℃澘 // BatchCBO batchCBOTemplate = new BatchCBO(); -// //batchCBO淇濆瓨鐨勬椂鍊欐病鏈夎兘澶熻嚜鍔╱pdate婧愭暟鎹殑isLastR -// //batchCBOTemplate.getCreateCbos().add(clientBusinessObject_template_insert); -// //浣跨敤saveRevisionBuisnessObject鍙互瑙e喅杩欎釜闂锛岃繖閲屽厛鏆傛椂鎵ц涓ゆ淇濆瓨 + //batchCBO淇濆瓨鐨勬椂鍊欐病鏈夎兘澶熻嚜鍔╱pdate婧愭暟鎹殑isLastR + //batchCBOTemplate.getCreateCbos().add(clientBusinessObject_template_insert); + //浣跨敤saveRevisionBuisnessObject鍙互瑙e喅杩欎釜闂锛岃繖閲屽厛鏆傛椂鎵ц涓ゆ淇濆瓨 // try { // clientBusinessObjectOperation.saveRevisionBuinessObject(clientBusinessObject_template_insert); // } catch (VCIError vciError) { // throw new VciBaseException("鍗囩増淇濆瓨鍑洪敊浜�",new String[0],vciError); // } -// // end --modify by lihang @20220408 -// //codeClassifyTemplateMapper.insert(codeClassifyTemplateDO); -// //淇濆瓨妯℃澘灞炴�� + // end --modify by lihang @20220408 + //codeClassifyTemplateMapper.insert(codeClassifyTemplateDO); + //淇濆瓨妯℃澘灞炴�� // if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOList)){ // BatchCBO batchCBOTemplateAttr = codeClassifyTemplateAttrDaoI.batchInsert(codeClassifyTemplateAttrDOList); // batchCBOTemplate.copyFromOther(batchCBOTemplateAttr); @@ -572,8 +600,432 @@ // WebUtil.setPersistence(true);//鎵ц淇濆瓨 // // boService.persistenceBatch(batchCBOTemplate);//涓�璧锋墽琛屼繚瀛� -// + // return BaseResult.success("鍗囩増鎴愬姛锛�"); return R.success("鍗囩増鎴愬姛锛�"); } + + @Override + @Transactional + public R copyTemplate(CodeClstemplateDTO codeClassifyDTO) { + //鏃х殑妯℃澘oid + String oldOid = codeClassifyDTO.getOid(); + //鏂扮殑妯℃澘oid + String newOid = VciBaseUtil.getPk(); + //鍒嗙被oid,澶嶅埗杩囨潵鐨勬柊鐨勫垎绫籵id + String codeClassifyOid = codeClassifyDTO.getCodeClassifyOid(); + + //澶嶅埗妯℃澘 + CodeClstemplateEntity codeClassifyTemplateDO_old = baseMapper.selectById(oldOid);//鏃фā鏉� + + //楠岃瘉锛屼笟鍔$被鍨嬫槸涓嶆槸涓�鑷� + CodeClassify codeClassifyDO_old = codeClassifyService.selectBtmOrParentBtm(codeClassifyTemplateDO_old.getCodeClassifyOid()); + if(codeClassifyDO_old==null){ + return R.fail("澶嶅埗鐨勬ā鏉挎墍灞炲垎绫讳互鍙婁笂绾ф病鏈変笟鍔$被鍨嬶紝璇烽噸鏂伴�夋嫨!"); + } + + //鎵惧綋鍓嶅垎绫讳笅鐨勪笟鍔$被鍨� + CodeClassify codeClassifyDO_new = codeClassifyService.selectBtmOrParentBtm(codeClassifyOid); + if(codeClassifyDO_new==null){ + return R.fail("褰撳墠鍒嗙被娌℃湁涓氬姟绫诲瀷锛岃閲嶆柊閫夋嫨!"); + } + + if(!codeClassifyDO_old.getBtmTypeId().equals(codeClassifyDO_new.getBtmTypeId())){ + return R.fail("閫夋嫨鐨勫垎绫诲拰褰撳墠鍒嗙被涓氬姟绫诲瀷涓嶄竴鑷达紝璇烽噸鏂伴�夋嫨!"); + } + + codeClassifyTemplateDO_old.setId(codeClassifyDTO.getId());//鑻辨枃鍚嶇О + codeClassifyTemplateDO_old.setName(codeClassifyDTO.getName());//涓枃鍚嶇О + codeClassifyTemplateDO_old.setDescription(codeClassifyDTO.getDescription());//鎻忚堪 + codeClassifyTemplateDO_old.setCodeClassifyOid(codeClassifyOid);//鍒嗙被oid + codeClassifyTemplateDO_old.setOid(newOid); + List<CodeClstemplateEntity> codeClassifyTemplateDOList = new ArrayList<CodeClstemplateEntity>(); + codeClassifyTemplateDOList.add(codeClassifyTemplateDO_old); + + //澶嶅埗妯℃澘灞炴�� + List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = copyTemplateAttr(oldOid,newOid); + + //澶嶅埗妯℃澘娴佺▼ + List<CodeClsflowtempEntity> codeClassifyProcessTempDOList = copyTemplateProcess(oldOid,newOid); + + //澶嶅埗妯℃澘闃舵锛岄樁娈靛睘鎬� + Map phase_attrMap = copyTemplatePhase_attr(oldOid,newOid); + + List<CodeTempphaseEntity> codeClassifyPhaseDOList = (ArrayList<CodeTempphaseEntity>)phase_attrMap.get("phase");//妯℃澘闃舵 + List<CodePhaseattrEntity> codePhaseAttrDOList = (ArrayList<CodePhaseattrEntity>)phase_attrMap.get("phaseAttr");//闃舵灞炴�� + + //澶嶅埗妯℃澘鎸夐挳 + List<CodeTempbuttonEntity> codeClassifyTemplateButtonDOList = copyTemplateButton(oldOid,newOid); + +// baseMapper.insert(codeClassifyTemplateDOList); + this.saveBatch(codeClassifyTemplateDOList); + codeTempbuttonServiceImpl.saveBatch(codeClassifyTemplateButtonDOList); + codeClsflowtempServiceImpl.saveBatch(codeClassifyProcessTempDOList); + codeClstempattrService.saveBatch(codeClassifyTemplateAttrDOList); + codeTempphaseServiceImpl.saveBatch(codeClassifyPhaseDOList); + codePhaseattrServiceImpl.saveBatch(codePhaseAttrDOList); + //涓�璧蜂繚瀛樻暟鎹� +// WebUtil.setPersistence(false);//涓嶆墽琛屼繚瀛� +// //淇濆瓨妯℃澘 +// BatchCBO batchCBOTemplate = codeClassifyTemplateMapper.batchInsert(codeClassifyTemplateDOList); +// //淇濆瓨妯℃澘灞炴�� +// if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrDOList)) { +// BatchCBO batchCBOTemplateAttr = codeClassifyTemplateAttrDaoI.batchInsert(codeClassifyTemplateAttrDOList); +// batchCBOTemplate.copyFromOther(batchCBOTemplateAttr); +// } +// +// //淇濆瓨妯℃澘娴佺▼ +// if(!CollectionUtils.isEmpty(codeClassifyProcessTempDOList)) { +// BatchCBO batchCBOTemplateProcessAttr = codeClassifyProcessTempDaoI.batchInsert(codeClassifyProcessTempDOList); +// batchCBOTemplate.copyFromOther(batchCBOTemplateProcessAttr); +// } +// +// //妯℃澘闃舵 +// if(!CollectionUtils.isEmpty(codeClassifyPhaseDOList)) { +// BatchCBO batchCBOTemplatePhaseAttr = codeTemplatePhaseDaoI.batchInsert(codeClassifyPhaseDOList); +// batchCBOTemplate.copyFromOther(batchCBOTemplatePhaseAttr); +// } +// +// //妯℃澘闃舵灞炴�� +// if(!CollectionUtils.isEmpty(codePhaseAttrDOList)) { +// BatchCBO batchCBOTemplatePhaseAttrAttr = codePhaseAttrDaoI.batchInsert(codePhaseAttrDOList); +// batchCBOTemplate.copyFromOther(batchCBOTemplatePhaseAttrAttr); +// } +// +// //妯℃澘鎸夐挳 +// if(!CollectionUtils.isEmpty(codeClassifyTemplateButtonDOList)) { +// BatchCBO batchCBOTemplateButtonAttr = codeClassifyTemplateButtonDaoI.batchInsert(codeClassifyTemplateButtonDOList); +// batchCBOTemplate.copyFromOther(batchCBOTemplateButtonAttr); +// } +// +// +// WebUtil.setPersistence(true);//鎵ц淇濆瓨 +// +// boService.persistenceBatch(batchCBOTemplate);//涓�璧锋墽琛屼繚瀛� + return R.success("澶嶅埗鎴愬姛锛�"); + } + + + private HashMap<String,Object> getVersionValue(int verRuleName) { + HashMap<String,Object> obj = new HashMap<>(2); + obj.put("VersionSeq",1); + if (verRuleName == 0) { + obj.put("VersionVal","1"); + } else if (verRuleName == 1) { + obj.put("VersionVal","a"); + } else if (verRuleName == 2) { + obj.put("VersionVal","0"); + } + + return obj; + } + + /** + * 澶嶅埗妯℃澘娴佺▼ + */ + public List<CodeClsflowtempEntity> copyTemplateProcess(String templateOldOid,String templateNewOid){ +// VciQueryWrapperForDO processWrapper = new VciQueryWrapperForDO(CodeClassifyProcessTempDO.class); +// processWrapper.addQueryMap("classifyTemplateOid",templateOldOid); + Map<String,Object> condition = new HashMap<>(1); + condition.put("classifyTemplateOid",templateOldOid); + List<CodeClsflowtempEntity> codeClsflowtempEntities = codeClsflowtempMapper.selectByMap(condition); +// List<CodeClassifyProcessTempDO> codeClassifyProcessTempDOList = codeClassifyProcessTempDaoI.selectByWrapper(processWrapper);//瑕佷繚瀛樼殑鏂扮殑妯℃澘娴佺▼ + for (CodeClsflowtempEntity codeClassifyProcessTempDO:codeClsflowtempEntities){ +// String newOid = VciBaseUtil.getPk(); + codeClassifyProcessTempDO.setOid(null); + //codeClassifyProcessTempDO.setCodeClassifyOid(templateNewOid); + codeClassifyProcessTempDO.setClassifytemplateoid(templateNewOid); +// codeClsflowtempMapper.insert(codeClassifyProcessTempDO); + //modify by lihang - @20220406 璁剧疆妯℃澘涓婚敭浣嶇疆鍑洪敊锛屽鑷村崌鐗堢殑妯℃澘涓殑娴佺▼鏄┖鐨勩�� + } + return codeClsflowtempEntities; + } + + + /** + * 澶嶅埗妯℃澘闃舵锛屾ā鏉垮睘鎬� + * @param templateOldOid + * @param templateNewOid + * @return map phase:(List<CodeTemplatePhaseDO>) phaseAttr:(List<CodePhaseAttrDO>) + */ + public Map copyTemplatePhase_attr(String templateOldOid,String templateNewOid){ + //妯℃澘闃舵 +// VciQueryWrapperForDO phaseWrapper = new VciQueryWrapperForDO(CodeTemplatePhaseDO.class); +// phaseWrapper.addQueryMap("codeClassifyTemplateOid",templateOldOid); + Map<String,Object> condition = new HashMap<>(1); + condition.put("codeclassifyTemplateOid",templateOldOid); + List<CodeTempphaseEntity> codeTempphaseEntities = codeTempphaseMapper.selectByMap(condition); +// List<CodeTemplatePhaseDO> codeClassifyPhaseDOList = codeTemplatePhaseDaoI.selectByWrapper(phaseWrapper);//瑕佷繚瀛樼殑鏂扮殑妯℃澘娴佺▼ + Map<String,String> phaseKeyMap = new HashMap<String,String>();//闇�瑕佸鍒剁殑妯℃澘闃舵灞炴��,key:value,妯℃澘闃舵鑰乷id:妯℃澘灞炴�ф柊oid + List<String> phaseOidList = new ArrayList<String>(); + for (CodeTempphaseEntity codeTemplatePhaseDO:codeTempphaseEntities){ + String oldoid = codeTemplatePhaseDO.getOid(); + String newOid = VciBaseUtil.getPk(); + codeTemplatePhaseDO.setOid(newOid); + codeTemplatePhaseDO.setCodeclassifytemplateoid(templateNewOid); + phaseKeyMap.put(oldoid,newOid); + phaseOidList.add(oldoid); + } + + //妯℃澘闃舵鐨勫睘鎬� + List<CodePhaseattrEntity> codePhaseAttrDOList = new ArrayList<CodePhaseattrEntity>(); + + if(!CollectionUtils.isEmpty(phaseOidList)){//size()==0涓嬭竟鏂规硶浼氭姤閿� +// Map<String,String> conditionMap = new HashMap<>(); +// conditionMap.put("codephaseoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(phaseOidList.toArray(new String[0])) + ")"); +// codePhaseAttrDOList = codePhaseAttrDaoI.selectByCondition(conditionMap,new PageHelper(-1)); + codePhaseAttrDOList = codePhaseattrMapper.selectByPhaseaIds(VciBaseUtil.toInSql(phaseOidList.toArray(new String[0]))); + } + for (CodePhaseattrEntity codePhaseAttrDO:codePhaseAttrDOList){ + String oldPhaseoid = codePhaseAttrDO.getCodephaseoid(); +// String newOid = VciBaseUtil.getPk(); + codePhaseAttrDO.setOid(null); + codePhaseAttrDO.setCodephaseoid(phaseKeyMap.get(oldPhaseoid)); +// codePhaseattrMapper.insert(codePhaseAttrDO); + } + Map phaseMap = new HashMap(); + phaseMap.put("phase",codeTempphaseEntities); + phaseMap.put("phaseAttr",codePhaseAttrDOList); + return phaseMap; + } + + /** + * 澶嶅埗妯℃澘鎸夐挳 + */ + public List<CodeTempbuttonEntity> copyTemplateButton(String templateOldOid,String templateNewOid){ + + Map<String,Object> condition = new HashMap<>(1); + condition.put("classifyTemplateOid",templateOldOid); +// VciQueryWrapperForDO buttonWrapper = new VciQueryWrapperForDO(CodeClassifyTemplateButtonDO.class); +// buttonWrapper.addQueryMap("classifyTemplateOid",templateOldOid); + List<CodeTempbuttonEntity> codeTempbuttonEntities = codeTempbuttonMapper.selectByMap(condition); +// List<CodeClassifyTemplateButtonDO> codeClassifyTemplateButtonDOList = codeClassifyTemplateButtonDaoI.selectByWrapper(buttonWrapper); + for (CodeTempbuttonEntity codeClassifyTemplateButtonDO:codeTempbuttonEntities){ +// String newOid = VciBaseUtil.getPk(); + codeClassifyTemplateButtonDO.setOid(null); + codeClassifyTemplateButtonDO.setClassifytemplateoid(templateNewOid); + } + return codeTempbuttonEntities; + } + + + /** + * 澶嶅埗妯℃澘灞炴�� + */ + public List<CodeClstempattrEntity> copyTemplateAttr(String templateOldOid,String templateNewOid){ + +// VciQueryWrapperForDO codeClassifyTemplateAttrQuery = new VciQueryWrapperForDO(CodeClassifyTemplateAttrDO.class); +// codeClassifyTemplateAttrQuery.addQueryMap("classifyTemplateOid",templateOldOid); + + Map<String,Object> condition = new HashMap<>(1); + condition.put("classifyTemplateOid",templateOldOid); + +// List<CodeClstempattrEntity> codeClassifyTemplateAttrDOList = codeClassifyTemplateAttrDaoI.selectByWrapper(codeClassifyTemplateAttrQuery); + List<CodeClstempattrEntity> codeClstempattrEntities = codeClstempattrMapper.selectByMap(condition); + + for (CodeClstempattrEntity codeClassifyTemplateAttrDO :codeClstempattrEntities){ +// String attrOid = VciBaseUtil.getPk(); + codeClassifyTemplateAttrDO.setOid(null); + codeClassifyTemplateAttrDO.setClassifytemplateoid(templateNewOid); +// codeClstempattrMapper.insert(codeClassifyTemplateAttrDO); + } + return codeClstempattrEntities; + } + + + /** + * 鍒嗙被妯℃澘鍒楄〃 + * + * @param plCodeClstemplate 鏌ヨ鏉′欢 + * @param query 鍒嗛〉瀵硅薄 + * @return 鏄剧ず瀵硅薄 + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + @Override + public DataGrid<CodeClstemplateVO> gridCodeClassifyTemplate(CodeClstemplateVO plCodeClstemplate, Query query) throws VciBaseException { + DataGrid<CodeClstemplateVO> dataGrid=new DataGrid<CodeClstemplateVO>(); + //娌℃湁浼犲垎绫籭d锛屼笉鎵ц鏌ヨ閫昏緫锛岀洿鎺ヨ繑鍥� +// if(conditionMap.size()==0){ +// dataGrid.setData(new ArrayList<>()); +// dataGrid.setTotal(0); +// return dataGrid; +// } +// if (pageHelper == null) { +// pageHelper = new PageHelper(-1); +// } +// pageHelper.addDefaultDesc("revisionSeq"); + + + + List<CodeClstemplateVO> doList = codeClstemplateMapper.selectPlCodeClstemplatePage(Condition.getPage(query), plCodeClstemplate); + if (!CollectionUtils.isEmpty(doList)) { +// QueryWrapper<CodeClstemplateVO> codeClstemplateVOQueryWrapper = new QueryWrapper<>(); +// codeClstemplateVOQueryWrapper.allEq(plCodeClstemplate); + List<CodeClstemplateEntity> codeClstemplateEntity = new ArrayList<>(); + BeanUtils.copyProperties(doList,codeClstemplateEntity); + dataGrid.setData(codeClassifyTemplateDO2VOs(codeClstemplateEntity)); + dataGrid.setTotal(VciBaseUtil.getInt(String.valueOf(codeClstemplateMapper.selectCount(Condition.getQueryWrapper(plCodeClstemplate))))); + } + return dataGrid; + } + + + /** + * 澧炲姞鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public R<CodeClstemplateVO> addSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + //灏咲TO杞崲涓篋O + CodeClstemplateEntity codeClassifyTemplateDO = new CodeClstemplateEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDO); + + //鏌ヨ鍒嗙被浠ュ強涓婄骇鍒嗙被鐨勪笟鍔$被鍨媌tmtypeid銆乥tmtypename + List<CodeClassify> codeClassifyDOList = codeClassifyService.selectAllLevelParents(codeClassifyTemplateDTO.getCodeClassifyOid()); + + //鎵�鏈夊垎绫婚兘娌℃湁涓氬姟绫诲瀷锛岃繑鍥炴彁绀� + if(codeClassifyDOList.size()==0){ + return R.fail("娣诲姞妯℃澘娣诲姞澶辫触,鍒嗙被鍜屼笂绾у垎绫婚兘娌℃湁鍏宠仈涓氬姟绫诲瀷锛�"); + } + + //璁剧疆btmtypeid鍜宯ame + CodeClassify codeClassifyDO = codeClassifyDOList.get(0); + codeClassifyTemplateDO.setBtmTypeId(codeClassifyDO.getBtmTypeId()); + codeClassifyTemplateDO.setBtmTypeName(codeClassifyDO.getBtmTypeName()); + codeClassifyTemplateDO.setLcStatus(FRAMEWORK_RELEASE_EDITING); + codeClassifyTemplateDO.setTs(new Date()); + codeClassifyTemplateDO.setOwner(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setLctid("codeClsTempLc"); + codeClassifyTemplateDO.setVersionValue("1"); + codeClassifyTemplateDO.setVersionSeq(1); + codeClassifyTemplateDO.setRevisionValue("1"); + codeClassifyTemplateDO.setRevisionSeq(1); + codeClassifyTemplateDO.setVersionRule("0"); + codeClassifyTemplateDO.setRevisionRule("numberversionrule"); + codeClassifyTemplateDO.setLastModifyTime(new Date()); + codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setCreator(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setCreateTime(new Date()); + codeClassifyTemplateDO.setLastV("1"); + codeClassifyTemplateDO.setLastR("1"); + codeClassifyTemplateDO.setFirstV("1"); + codeClassifyTemplateDO.setFirstR("1"); + codeClassifyTemplateDO.setBtmname("codeclstemplate"); + + baseMapper.insert(codeClassifyTemplateDO); + //榛樿娣诲姞妯℃澘灞炴�� +// List<CodeClassifyTemplateAttrDO> attrDOList = new ArrayList<>(); + +// CodeClassifyTemplateAttrDO codeAttr = new CodeClassifyTemplateAttrDO(); +// codeAttr.setId("id"); +// codeAttr.setName("浼佷笟缂栫爜"); +// codeAttr.setAttributeDataType("VTString"); +// codeAttr.setAttrTableWidth(150); +// codeAttr.setOrderNum(1); +// codeAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// codeAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// codeAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(codeAttr); +// +// +// CodeClassifyTemplateAttrDO groupAttr = new CodeClassifyTemplateAttrDO(); +// groupAttr.setId("name"); +// groupAttr.setName("闆嗗洟鐮�"); +// groupAttr.setAttributeDataType("VTString"); +// groupAttr.setAttrTableWidth(150); +// groupAttr.setOrderNum(2); +// groupAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// groupAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// groupAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(groupAttr); +// +// CodeClassifyTemplateAttrDO descAttr = new CodeClassifyTemplateAttrDO(); +// descAttr.setId("description"); +// descAttr.setName("鎻忚堪"); +// descAttr.setAttrTableWidth(150); +// descAttr.setAttributeDataType("VTString"); +// descAttr.setOrderNum(3); +// descAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// descAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// descAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(descAttr); +// +// CodeClassifyTemplateAttrDO statusAttr = new CodeClassifyTemplateAttrDO(); +// statusAttr.setId("lcstatus"); +// statusAttr.setName("鐘舵��"); +// statusAttr.setAttrTableWidth(70); +// statusAttr.setOrderNum(4); +// statusAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// statusAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// statusAttr.setAttributeDataType("VTString"); +// statusAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(statusAttr); +// +// +// CodeClassifyTemplateAttrDO secAttr = new CodeClassifyTemplateAttrDO(); +// secAttr.setId("secretgrade"); +// secAttr.setName("瀵嗙骇"); +// secAttr.setAttrTableWidth(70); +// secAttr.setAttributeDataType(VciFieldTypeEnum.VTInteger.name()); +// secAttr.setEnumId("Enumsecretgrade"); +// secAttr.setEnumName("瀵嗙骇"); +// secAttr.setOrderNum(4); +// secAttr.setFormDisplayFlag(BooleanEnum.TRUE.getValue()); +// secAttr.setTableDisplayFlag(BooleanEnum.TRUE.getValue()); +// secAttr.setClassifyTemplateOid(codeClassifyTemplateDO.getOid()); +// attrDOList.add(secAttr); + + return R.data(codeClassifyTemplateDO2VO(codeClassifyTemplateDO)); + } + + /** + * 淇敼鍒嗙被妯℃澘瀵硅薄 + * @param codeClassifyTemplateDTO 鍒嗙被妯℃澘瀵硅薄鏁版嵁浼犺緭瀵硅薄 + * @return 鎵ц缁撴灉 + * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父 + */ + @Override + public R editSave(CodeClstemplateDTO codeClassifyTemplateDTO) throws VciBaseException{ + VciBaseUtil.alertNotNull(codeClassifyTemplateDTO,"鏁版嵁瀵硅薄",codeClassifyTemplateDTO.getOid(),"鍒嗙被妯℃澘瀵硅薄涓婚敭"); + //妫�鏌s + CodeClstemplateEntity codeClassifyTemplateDOCopyFromDTO = new CodeClstemplateEntity(); + BeanUtilForVCI.copyPropertiesIgnoreCase(codeClassifyTemplateDTO,codeClassifyTemplateDOCopyFromDTO); + CodeClstemplateEntity codeClassifyTemplateDO = null; + if(codeClassifyTemplateDOCopyFromDTO.getOid() == null){ + baseMapper.insert(codeClassifyTemplateDOCopyFromDTO); + return R.data(codeClassifyTemplateDOCopyFromDTO); + }else{ +// Map<String,Object> condition = new HashMap<>(2); +// condition.put("oid",codeClassifyTemplateDOCopyFromDTO.getOid()); +// condition.put("ts",codeClassifyTemplateDOCopyFromDTO.getTs()); + CodeClstemplateEntity detail = baseMapper + .selectById(codeClassifyTemplateDOCopyFromDTO.getOid()); + // boolean tsBoolean = boService.checkTs(codeClassifyTemplateAttrDOListemplateDOCopyFromDTO); + if(detail.getTs().compareTo(codeClassifyTemplateDOCopyFromDTO.getTs()) != 0){//涓嶆槸鏈�鏂扮殑涓嶈鏀� + return R.fail("褰撳墠鏁版嵁涓嶆槸鏈�鏂帮紝璇峰埛鏂板悗鍐嶄慨鏀癸紒"); + } + + //灏咲TO杞崲涓篋O + codeClassifyTemplateDO = selectByOid(codeClassifyTemplateDTO.getOid()); + String lcstatus = codeClassifyTemplateDO.getLcStatus(); + String versionvalue = codeClassifyTemplateDO.getVersionValue(); + + //鍙湁缂栬緫涓墠鑳戒慨鏀� + if(!CodeClassifyTemplateLC.EDITING.getValue().equals(codeClassifyTemplateDO.getLcStatus())){ + return R.fail("鍙湁缂栬緫涓殑锛屾ā鏉挎墠鑳戒慨鏀癸紒"); + } + revisionModelUtil.copyFromDTOIgnore(codeClassifyTemplateDTO,codeClassifyTemplateDO); + //涓嶄慨鏀圭増鏈彿鍜岀姸鎬� + codeClassifyTemplateDO.setLcStatus(lcstatus); + codeClassifyTemplateDO.setVersionValue(versionvalue); + codeClassifyTemplateDO.setTs(new Date()); + codeClassifyTemplateDO.setLastModifier(AuthUtil.getUser().getUserName()); + codeClassifyTemplateDO.setLastModifyTime(new Date()); + baseMapper.updateById(codeClassifyTemplateDO); + } + return R.data(codeClassifyTemplateDO2VO(codeClassifyTemplateDO)); + } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java index 07bd3f5..5cd0156 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeTempphaseServiceImpl.java @@ -18,12 +18,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.vci.ubcs.code.entity.CodeClstempattrEntity; import com.vci.ubcs.code.entity.CodePhaseattrEntity; import com.vci.ubcs.code.entity.CodeTempphaseEntity; import com.vci.ubcs.code.mapper.CodePhaseattrMapper; import com.vci.ubcs.code.mapper.CodeTempphaseMapper; import com.vci.ubcs.code.service.ICodeTempphaseService; import com.vci.ubcs.code.vo.CodeTempphaseVO; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -45,6 +47,8 @@ @Autowired(required = false) private CodePhaseattrMapper codePhaseattrMapper; + @Autowired(required = false) + private CodePhaseattrServiceImpl codePhaseattrServiceImpl; @Override public IPage<CodeTempphaseVO> selectCodeTempphasePage(IPage<CodeTempphaseVO> page, CodeTempphaseVO CodeTempphase) { @@ -61,7 +65,7 @@ public int codeTemplateDeleteTrigger(String templateOid) { int updateCount = 0; Map<String,Object> condition = new HashMap<>(1); - condition.put("classifyTemplateOid",templateOid); + condition.put("codeclassifytemplateoid",templateOid); List<CodeTempphaseEntity> codeTempphaseEntities = baseMapper.selectByMap(condition); if(!CollectionUtils.isEmpty(codeTempphaseEntities)) { updateCount += baseMapper.deleteBatchIds(codeTempphaseEntities.stream().map(CodeTempphaseEntity::getOid).collect(Collectors.toList())); @@ -74,5 +78,35 @@ } return updateCount; } + /** + * 妯℃澘淇敼瑙﹀彂鍔熻兘 + * @param attrDOList 灞炴�х殑鏁版嵁瀵硅薄 + * @return 鍙楀奖鍝嶇殑鏁版嵁 + */ + @Override + public List<CodeClstempattrEntity> codeTemplateAttrModifyTrigger(List<CodeClstempattrEntity> attrDOList){ + //灞炴�т慨鏀圭殑鏃跺�欙紝闇�瑕佸悓姝ヤ慨鏀瑰搴斿睘鎬х殑鍚嶇О +// BatchCBO batchCBO = new BatchCBO(); + List<CodePhaseattrEntity> phaseAttrDOS =codePhaseattrMapper.listLinkAttrDOByTemplateAttrDOS(VciBaseUtil.toInSql(attrDOList.stream() + .map(CodeClstempattrEntity::getId).collect(Collectors.toList()).toArray(new String[0])),attrDOList.get(0).getClassifytemplateoid()); + if(!CollectionUtils.isEmpty(phaseAttrDOS)){ + //璇存槑鏈夊睘鎬�,鎴戜滑鍘绘浛鎹竴涓� + Map<String, CodeClstempattrEntity> attrDOMap = attrDOList.stream().collect(Collectors.toMap(s -> s.getId(), t -> t)); + phaseAttrDOS.stream().forEach(phaseAttrDO->{ + if(attrDOMap.containsKey(phaseAttrDO.getId())){ + CodeClstempattrEntity attrDO = attrDOMap.get(phaseAttrDO.getId()); + phaseAttrDO.setId(attrDO.getId()); + phaseAttrDO.setName(attrDO.getName()); + phaseAttrDO.setAttributegroup(attrDO.getAttributegroup()); + } + }); +// codePhaseattrMapper. + codePhaseattrServiceImpl.saveBatch(phaseAttrDOS); +// BatchCBO updateCBO = +// codePhaseAttrMapper.batchUpdate(phaseAttrDOS); +// batchCBO.copyFromOther(updateCBO); + } + return attrDOList; + } } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java index 08d3bb8..b82e17f 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/wrapper/CodeButtonWrapper.java @@ -18,14 +18,9 @@ import com.vci.ubcs.code.entity.CodeButtonEntity; import com.vci.ubcs.code.vo.CodeButtonVO; -import com.vci.ubcs.system.cache.DictBizCache; -import com.vci.ubcs.system.cache.DictCache; -import com.vci.ubcs.system.enums.DictEnum; +import com.vci.ubcs.omd.cache.DictCache; import org.springblade.core.mp.support.BaseEntityWrapper; -import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.Func; -import org.springframework.boot.autoconfigure.security.SecurityProperties; import java.util.List; import java.util.Objects; @@ -45,8 +40,8 @@ @Override public CodeButtonVO entityVO(CodeButtonEntity codebutton) { CodeButtonVO codebuttonVO = Objects.requireNonNull(BeanUtil.copy(codebutton, CodeButtonVO.class)); - codebuttonVO.setUsedpositiontypeName(DictBizCache.getValue("codeButtonPosition", codebutton.getUsedpositiontype())); - codebuttonVO.setLcstatusName(DictBizCache.getValue("codeLcstatus", codebutton.getLcstatus())); + codebuttonVO.setUsedpositiontypeName(DictCache.getValue("codeButtonPosition", codebutton.getUsedpositiontype())); + codebuttonVO.setLcstatusName(DictCache.getValue("codeLcstatus", codebutton.getLcstatus())); return codebuttonVO; } diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml index b77a539..f1fa535 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml @@ -153,4 +153,12 @@ where a.paths = #{fieldPath} </select> + <select id="selectAllLevelParents" resultType="java.util.HashMap"> + select oid, id, name, btmtypeid, btmtypename + from PL_CODE_CLASSIFY + where btmtypeid is not null + start with oid = #{oid} + connect by prior PARENTCODECLASSIFYOID = oid + </select> + </mapper> diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml index ec46665..ca09a93 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClsflowtempMapper.xml @@ -8,7 +8,7 @@ <result column="REVISIONOID" property="revisionOid"/> <result column="NAMEOID" property="nameOid"/> <result column="BTMNAME" property="btmname"/> - <result column="ISLASTR" property="islastr"/> + <result column="LASTR" property="lastR"/> <result column="FIRSTR" property="firstR"/> <result column="LASTV" property="lastV"/> <result column="FIRSTV" property="firstV"/> diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml index 38e31b7..39256e3 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstempattrMapper.xml @@ -85,79 +85,17 @@ <select id="selectCodeClstempattrPage" resultMap="CodeClstempattrResultMap"> - select * from PL_CODE_CLSTEMPATTR where is_deleted = 0 + select * from PL_CODE_CLSTEMPATTR where 1=1 </select> <select id="selectByClassifytemplateoid" resultMap="CodeClstempattrResultMap"> select * from PL_CODE_CLSTEMPATTR where classifytemplateoid in (${classifytemplateoid}) </select> - <select id="selectRefByOid" resultType="com.vci.ubcs.code.entity.CodeClstempattrEntity"> - select codeclstempattr0.EXPLAIN as explain, - codeclstempattr0.SAMEREPEATATTRFLAG as samerepeatattrflag, - codeclstempattr0.LASTMODIFIER as lastmodifier, - codeclstempattr0.ATTRTABLEWIDTH as attrtablewidth, - codeclstempattr0.CONTROLLENGTH as controllength, - codeclstempattr0.CLASSIFYTEMPLATEOID as classifytemplateoid, - codeclstempattr0.VERIFYRULE as verifyrule, - codeclstempattr0.ENUMNAME as enumname, - codeclstempattr0.TABLEDISPLAYFLAG as tabledisplayflag, - codeclstempattr0.PARENTQUERYATTR as parentqueryattr, - codeclstempattr0.ID as id, - codeclstempattr0.FILTERSOURCEATTRNAME as filtersourceattrname, - codeclstempattr0.VALUEAREA as valuearea, - codeclstempattr0.TABLEDISPLAYSTYLE as tabledisplaystyle, - codeclstempattr0.TABLEDISPLAYJS as tabledisplayjs, - codeclstempattr0.FORMDISPLAYFLAG as formdisplayflag, - codeclstempattr0.DEFAULTVALUE as defaultvalue, - codeclstempattr0.FORMHREF as formhref, - codeclstempattr0.BTMNAME as btmname, - codeclstempattr0.READONLYFLAG as readonlyflag, - codeclstempattr0.NAME as name, - codeclstempattr0.COMPONENTRULE as componentrule, - codeclstempattr0.SORTATTRFLAG as sortattrflag, - codeclstempattr0.REFERBTMNAME as referbtmname, - codeclstempattr0.ENUMID as enumid, - codeclstempattr0.FORMDISPLAYSTYLE as formdisplaystyle, - codeclstempattr0.SCALELENGTH as scalelength, - codeclstempattr0.PARENTNAME as parentname, - codeclstempattr0.PRECISIONLENGTH as precisionlength, - codeclstempattr0.PREFIXVALUE as prefixvalue, - codeclstempattr0.FILTERSOURCEATTR as filtersourceattr, - codeclstempattr0.TEXTAREAFLAG as textareaflag, - codeclstempattr0.BARCODEFLAG as barcodeflag, - codeclstempattr0.DESCRIPTION as description, - codeclstempattr0.KEYATTRFLAG as keyattrflag, - codeclstempattr0.QRCODEFLAG as qrcodeflag, - codeclstempattr0.OID as oid, - codeclstempattr0.CLASSIFYINVOKELEVEL as classifyinvokelevel, - codeclstempattr0.CLASSIFYINVOKEATTRNAME as classifyinvokeattrname, - codeclstempattr0.CLASSIFYINVOKEATTR as classifyinvokeattr, - codeclstempattr0.REFERBTMID as referbtmid, - codeclstempattr0.CLASSIFYINVOKEEDITFLAG as classifyinvokeeditflag, - codeclstempattr0.CODEDATEFORMAT as codedateformat, - codeclstempattr0.SENIORQUERYATTRFLAG as seniorqueryattrflag, - codeclstempattr0.OWNER as owner, - codeclstempattr0.ATTRIBUTEDATATYPE as attributedatatype, - codeclstempattr0.CREATOR as creator, - codeclstempattr0.CREATETIME as createtime, - codeclstempattr0.ENUMEDITFLAG as enumeditflag, - codeclstempattr0.ATTRIBUTEGROUP as attributegroup, - codeclstempattr0.PARENTCODE as parentcode, - codeclstempattr0.SUFFIXVALUE as suffixvalue, - codeclstempattr0.ORDERNUM as ordernum, - codeclstempattr0.REFERCONFIG as referconfig, - codeclstempattr0.REQUIREFLAG as requireflag, - codeclstempattr0.LIBRARYIDENTIFICATION as libraryidentification, - codeclstempattr0.ENUMSTRING as enumstring, - codeclstempattr0.IMAGEFLAG as imageflag, - codeclstempattr0.LASTMODIFYTIME as lastmodifytime, - codeclstempattr0.TABLEHREF as tablehref, - codeclstempattr0.QUERYATTRFLAG as queryattrflag, - codeclstempattr0.TS as ts, - classifytemplateoid.name as classifyTemplateOidName - from platformbtm_codeclstempattr codeclstempattr0 - left join platformbtm_codeclstemplate classifytemplateoid + <select id="selectRefByOid" resultMap="CodeClstempattrResultMap"> + select codeclstempattr0.OID as oid + from PL_CODE_CLSTEMPATTR codeclstempattr0 + left join PL_CODE_CLSTEMPLATE classifytemplateoid on codeclstempattr0.classifyTemplateOid = classifytemplateoid.oid where codeclstempattr0.classifytemplateoid = #{oid} </select> diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml index 521b9e1..d5e83b0 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeClstemplateMapper.xml @@ -37,7 +37,7 @@ <select id="selectPlCodeClstemplatePage" resultMap="plCodeClstemplateResultMap"> - select * from PL_CODE_CLSTEMPLATE where is_deleted = 0 + select * from PL_CODE_CLSTEMPLATE where is_deleted = 0 order by revisionSeq </select> <select id="selectAllLevelChildOid" resultType="java.lang.String" > @@ -45,7 +45,57 @@ </select> <select id="countAllLevelChildOid" resultType="java.lang.Integer" > - select count(OID) countsize from platformbtm_codeclstemplate START WITH codeClassifyOid = #{oid} CONNECT BY PRIOR codeClassifyOid = OID + select count(OID) countsize from PL_CODE_CLSTEMPLATE START WITH codeClassifyOid = #{oid} CONNECT BY PRIOR codeClassifyOid = OID + </select> + <select id="getNextRevision" resultType="map" > + select max(revisionSeq) + 1 revisionSeq, + max(revisionSeq) + 1 revisionVal, + max(VersionSeq) + 1 VersionSeq, + max(VersionSeq) + 1 VersionVal + from PL_CODE_CLSTEMPLATE + where nameoid = #{nameoid} + </select> + + <select id="selectCodeClassifyTemplateDOByTree" resultMap="plCodeClstemplateResultMap"> + SELECT codeclstemplate0.CODECLASSIFYOID AS codeclassifyoid, + codeclstemplate0.LASTMODIFIER AS lastmodifier, + codeclstemplate0.REVISIONSEQ AS revisionseq, + codeclstemplate0.VERSIONVALUE AS versionvalue, + codeclstemplate0.DESCRIPTION AS description, + codeclstemplate0.OID AS oid, + codeclstemplate0.VERSIONSEQ AS versionseq, + --codeclstemplate0.CHECKINBY AS checkinby, + codeclstemplate0.BTMTYPENAME AS btmtypename, + codeclstemplate0.REVISIONRULE AS revisionrule, + codeclstemplate0.ID AS id, + codeclstemplate0.OWNER AS owner, + --codeclstemplate0.CHECKOUTBY AS checkoutby, + codeclstemplate0.BTMTYPEID AS btmtypeid, + codeclstemplate0.CREATOR AS creator, + codeclstemplate0.CREATETIME AS createtime, + codeclstemplate0.FIRSTV AS isfirstv, + codeclstemplate0.REVISIONOID AS revisionoid, + codeclstemplate0.BTMNAME AS btmname, + --codeclstemplate0.CHECKOUTTIME AS checkouttime, + codeclstemplate0.REVISIONVALUE AS revisionvalue, + codeclstemplate0.VERSIONRULE AS versionrule, + codeclstemplate0.NAME AS name, + codeclstemplate0.LASTR AS islastr, + codeclstemplate0.LASTMODIFYTIME AS lastmodifytime, + codeclstemplate0.COPYFROMVERSION AS copyfromversion, + codeclstemplate0.NAMEOID AS nameoid, + codeclstemplate0.LCSTATUS AS lcstatus, + codeclstemplate0.LASTV AS islastv, + --codeclstemplate0.CHECKINTIME AS checkintime, + codeclstemplate0.FIRSTR AS isfirstr, + codeclstemplate0.TS AS ts, + codeclassifyoid.name AS codeClassifyOidName + FROM PL_CODE_CLSTEMPLATE codeclstemplate0 + LEFT JOIN PL_CODE_CLASSIFY codeclassifyoid + ON codeclstemplate0.codeClassifyOid = codeclassifyoid.oid + WHERE codeclstemplate0.codeclassifyoid = #{codeclassifyoid} + and codeclstemplate0.lcstatus = #{lcstatus} + AND (codeclstemplate0.lastr = '1' AND codeclstemplate0.lastv = '1') </select> </mapper> diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml index 1c54776..d69dd21 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodePhaseattrMapper.xml @@ -70,12 +70,87 @@ checkintime, codephaseoid, isfirstr - from platformbtm_codephaseattr + from PL_CODE_PHASEATTR where codephaseoid in (select oid - from platformbtm_codetempphase + from PL_CODE_TEMPPHASE where codeClassifyTemplateOid = #{oid}) </select> + <select id="selectByPhaseaIds" resultType="com.vci.ubcs.code.entity.CodePhaseattrEntity"> + select lastmodifier, + revisionseq, + versionvalue, + description, + oid, + versionseq, + checkinby, + revisionrule, + lctid, + id, + owner, + checkoutby, + creator, + createtime, + isfirstv, + attributegroup, + revisionoid, + btmname, + checkouttime, + revisionvalue, + versionrule, + name, + islastr, + lastmodifytime, + copyfromversion, + nameoid, + lcstatus, + islastv, + checkintime, + codephaseoid, + isfirstr + from PL_CODE_PHASEATTR + where codephaseoid in + (#{oids}) + </select> + + <select id="listLinkAttrDOByTemplateAttrDOS" resultType="com.vci.ubcs.code.entity.CodePhaseattrEntity"> + + SELECT lastmodifier, + revisionseq, + versionvalue, + description, + oid, + versionseq, /*checkinby,*/ + revisionrule, + lctid, + id, + owner, /*checkoutby, */ + creator, + createtime, /*is*/ + firstv, + attributegroup, + revisionoid, + btmname, /*checkouttime,*/ + revisionvalue, + versionrule, + name, /*is*/ + lastr, + lastmodifytime, + copyfromversion, + nameoid, + lcstatus, /*is*/ + lastv, /*checkintime,*/ + codephaseoid, + /*is*/ + firstr, + ts + FROM PL_CODE_PHASEATTR + where ID IN (#{id}) + AND codephaseoid in + (select oid + from PL_CODE_TEMPPHASE + where codeClassifyTemplateOid =#{codeClassifyTemplateOid}) + </select> </mapper> -- Gitblit v1.9.3