|
@@ -1,6 +1,7 @@
|
|
|
package com.persagy.dmp.rwd.edit.service;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
@@ -18,6 +19,7 @@ import com.persagy.dmp.rwd.edit.entity.*;
|
|
|
import com.persagy.dmp.rwd.edit.entity.dto.FuncidDefChangeRecordDTO;
|
|
|
import com.persagy.dmp.rwd.edit.enumeration.EnumOperationType;
|
|
|
import com.persagy.dmp.rwd.edit.enumeration.EnumVersionState;
|
|
|
+import com.persagy.dmp.rwd.edit.enumeration.FuncidShareTypeEnum;
|
|
|
import com.persagy.dmp.rwd.edit.model.DtDataModel;
|
|
|
import com.persagy.dmp.rwd.edit.repository.FuncidDefChangeRecordRepository;
|
|
|
import com.persagy.dmp.rwd.edit.repository.FuncidDefRepository;
|
|
@@ -560,34 +562,57 @@ public class FuncidDefChangeRecordService {
|
|
|
funcidDef.setNote(item.getNote());
|
|
|
funcidDef.setSubFlag(item.getSubFlag());
|
|
|
funcidDef.setWeakPoint(item.getWeakPoint());
|
|
|
-
|
|
|
funcidDef.setDataType(item.getDataType());
|
|
|
funcidDef.setDataSource(item.getDataSource());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
funcidDef.setIsUsed(1);
|
|
|
funcidDef.setVersion(version);
|
|
|
funcidDef.setLastUpdateTime(new Date());
|
|
|
funcidDef.setOrderSeq(item.getOrderSeq());
|
|
|
+ JacksonCriteria jacksonCriteria = JacksonCriteria.newInstance();
|
|
|
+ ObjectNode criteria =jacksonCriteria.getCriteria();
|
|
|
+ criteria.put("classCode",item.getClassCode());
|
|
|
+ ListResponse<FuncidDefModel> response = funcidDefService.queryFuncid(jacksonCriteria);
|
|
|
+
|
|
|
List<FuncidDefModel> funcidDefModelList = queryFuncidDef(item.getCode(), item.getClassCode(), null);
|
|
|
+ String oldFuncId = "";
|
|
|
if (funcidDefModelList != null) {
|
|
|
FuncidDefModel funcidDefModel = funcidDefModelList.get(0);
|
|
|
funcidDefModel.setIsUsed(0);
|
|
|
funcidDefModel.setLastUpdateTime(new Date());
|
|
|
funcidDefList.add(FuncidDef.fromModel(funcidDefModel));
|
|
|
-
|
|
|
+ oldFuncId = funcidDefModel.getId();
|
|
|
funcidDef.setShareType(funcidDefModel.getShareType());
|
|
|
funcidDef.setOrderSeq(funcidDefModel.getOrderSeq());
|
|
|
- }else{
|
|
|
-
|
|
|
- updateFuncidOrderSeq(funcidDef);
|
|
|
+ funcidDef.setClassCode(funcidDefModel.getClassCode());
|
|
|
+ }
|
|
|
+ List<FuncidDefModel> funcidDefModels = response.getData();
|
|
|
+ if (CollUtil.isNotEmpty(funcidDefModels)){
|
|
|
+
|
|
|
+ List<FuncidDefModel> commonFuncidModels = funcidDefModels
|
|
|
+ .stream()
|
|
|
+ .filter(funcidDefModel -> FuncidShareTypeEnum.COMMON.getValue().equals(funcidDefModel.getShareType()))
|
|
|
+ .sorted(Comparator.comparing(FuncidDefModel::getOrderSeq))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<FuncidDefModel> selfFuncidModels = funcidDefModels
|
|
|
+ .stream()
|
|
|
+ .filter(funcidDefModel -> FuncidShareTypeEnum.SELF.getValue().equals(funcidDefModel.getShareType()))
|
|
|
+ .sorted(Comparator.comparing(FuncidDefModel::getOrderSeq))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+
|
|
|
+ if (item.getOrderSeq()<=0){
|
|
|
+ if (CollUtil.isEmpty(commonFuncidModels)){
|
|
|
+
|
|
|
+ resetSelfFuncidSeq(selfFuncidModels,funcidDef,funcidDefList,item.getOrderSeq(),oldFuncId);
|
|
|
+ }else {
|
|
|
+
|
|
|
+ resetCommonFuncidSeq(commonFuncidModels,funcidDef,funcidDefList,item.getOrderSeq(),oldFuncId);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+
|
|
|
+ resetSelfFuncidSeq(selfFuncidModels,funcidDef,funcidDefList,item.getOrderSeq(),oldFuncId);
|
|
|
+ }
|
|
|
}
|
|
|
if(StringUtils.isEmpty(funcidDef.getShareType())){
|
|
|
|
|
@@ -595,11 +620,73 @@ public class FuncidDefChangeRecordService {
|
|
|
}else{
|
|
|
funcidDef.setShareType(funcidDef.getShareType());
|
|
|
}
|
|
|
- funcidDef.setOrderSeq(funcidDef.getOrderSeq()+1);
|
|
|
funcidDefList.add(funcidDef);
|
|
|
});
|
|
|
funcidDefRepository.saveAll(funcidDefList);
|
|
|
}
|
|
|
+
|
|
|
+ * Description: 重置通用信息点的排序序号
|
|
|
+ * @param commonFuncidModels : 通用信息点的数据
|
|
|
+ * @param funcidDef : 需要修改的信息点
|
|
|
+ * @param funcidDefList : 保存信息点的列表
|
|
|
+ * @return : void
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/7/7 13:52
|
|
|
+ * Update By lijie 2021/7/7 13:52
|
|
|
+ */
|
|
|
+ private void resetCommonFuncidSeq(List<FuncidDefModel> commonFuncidModels,
|
|
|
+ FuncidDef funcidDef,
|
|
|
+ List<FuncidDef> funcidDefList,
|
|
|
+ Integer orderSeq,
|
|
|
+ String oldFuncId) {
|
|
|
+ if (CollUtil.isEmpty(commonFuncidModels)){
|
|
|
+ funcidDef.setOrderSeq(-1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int compareSeq = orderSeq+1;
|
|
|
+ if (orderSeq>=0){
|
|
|
+ compareSeq = -commonFuncidModels.size();
|
|
|
+ }
|
|
|
+ funcidDef.setOrderSeq(compareSeq-1);
|
|
|
+ for (FuncidDefModel defModel : commonFuncidModels) {
|
|
|
+ if (defModel.getOrderSeq()<compareSeq
|
|
|
+ && (StrUtil.isNotBlank(oldFuncId) && !oldFuncId.equals(defModel.getId()))){
|
|
|
+ defModel.setOrderSeq(defModel.getOrderSeq()-1);
|
|
|
+ funcidDefList.add(FuncidDef.fromModel(defModel));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * Description: 重置特有信息点的排序序号
|
|
|
+ * @param selfFuncidModels : 特有信息点的数据
|
|
|
+ * @param funcidDef : 需要修改的信息点
|
|
|
+ * @param funcidDefList : 保存信息点的列表
|
|
|
+ * @return : void
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/7/7 13:52
|
|
|
+ * Update By lijie 2021/7/7 13:52
|
|
|
+ */
|
|
|
+ private void resetSelfFuncidSeq(List<FuncidDefModel> selfFuncidModels, FuncidDef funcidDef,
|
|
|
+ List<FuncidDef> funcidDefList, Integer orderSeq,String oldFuncId) {
|
|
|
+ if (CollUtil.isEmpty(selfFuncidModels)){
|
|
|
+
|
|
|
+ funcidDef.setOrderSeq(1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int compareSeq = orderSeq;
|
|
|
+ if (orderSeq<=0){
|
|
|
+ compareSeq = 0;
|
|
|
+ }
|
|
|
+ funcidDef.setOrderSeq(compareSeq+1);
|
|
|
+ for (FuncidDefModel defModel : selfFuncidModels) {
|
|
|
+ if (defModel.getOrderSeq()>compareSeq
|
|
|
+ && (StrUtil.isNotBlank(oldFuncId) && !oldFuncId.equals(defModel.getId()))){
|
|
|
+ defModel.setOrderSeq(defModel.getOrderSeq()+1);
|
|
|
+ funcidDefList.add(FuncidDef.fromModel(defModel));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
* 修改信息点位置
|