From 4c3d21652873e2011b99d36388e86c3f9af1aa63 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期一, 29 五月 2023 17:53:42 +0800
Subject: [PATCH] 动态表格组件更新
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java | 579 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 576 insertions(+), 3 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java
index d76f98b..66b5da9 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingPreAttrMappingServiceImpl.java
@@ -1,10 +1,44 @@
package com.vci.ubcs.code.service.impl;
-
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.code.entity.DockingPreAttrMapping;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
+import com.vci.ubcs.code.entity.*;
+import com.vci.ubcs.code.feign.IMdmInterJtClient;
import com.vci.ubcs.code.mapper.DockingPreAttrMappingMapper;
-import com.vci.ubcs.code.service.IDockingPreAttrMappingService;
+import com.vci.ubcs.code.service.*;
+import com.vci.ubcs.code.vo.pagemodel.BaseModelVO;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrMappingVO;
+import com.vci.ubcs.code.vo.pagemodel.DockingPreAttrRangeVO;
+import com.vci.ubcs.code.vo.webserviceModel.group.DockingGroupDataVO;
+import com.vci.ubcs.code.vo.webserviceModel.group.DockingMainData;
+import com.vci.ubcs.code.vo.webserviceModel.group.DockingViewVO;
+import com.vci.ubcs.code.vo.webserviceModel.group.ResultDataVO;
+import com.vci.ubcs.code.vo.webserviceModel.group.result.DataObjectVO;
+import com.vci.ubcs.code.vo.webserviceModel.group.result.DataVO;
+import com.vci.ubcs.code.vo.webserviceModel.group.result.ResultDataObject;
+import com.vci.ubcs.code.wrapper.DockingPreAttrMappingWrapper;
+import com.vci.ubcs.code.wrapper.DockingPreAttrRangeWrapper;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.revision.model.BaseModel;
+import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
/***
*闆嗗洟灞炴�ф槧灏勬湇鍔�
@@ -13,4 +47,543 @@
*/
@Service
public class DockingPreAttrMappingServiceImpl extends ServiceImpl<DockingPreAttrMappingMapper, DockingPreAttrMapping> implements IDockingPreAttrMappingService {
+
+
+
+ @Value("${docking.apply.unitCode:410-MDM}")
+ public String dockingApplyUnitCode;
+ @Autowired(required = false)
+ private IMdmInterJtClient mdmInterJtClient;
+
+ /***
+ * 闆嗗洟鍒嗙被灞炴�у睘鎬ф槧灏勯厤缃湇鍔�
+ */
+ @Autowired(required = false)
+ private DockingPreAttrMappingMapper dockingPreAttrMappingMapper;
+
+ /***
+ * 涓氬姟鏁版嵁灞炴�ф湇鍔�
+ */
+ @Autowired(required = false)
+ private MdmEngineService mdmEngineService;
+
+ /***
+ * 闆嗗洟灞炴�ф湇鍔�
+ */
+ @Autowired(required = false)
+ private IDockingPreMetaAttrService dockingPreMetaAttrService;
+ /***
+ * 灞炴�у彇鍊艰寖鍥存湇鍔�
+ */
+ @Autowired(required = false)
+ private IDockingPreAttrRangeService dockingPreAttrRangeService;
+
+
+ /***
+ * 闆嗗洟鍒嗙被鏈嶅姟
+ */
+ @Autowired(required = false)
+ private IDockingPreClassifyService dockingPreClassifyService;
+
+ /***
+ * 鐢宠鍗曟湇鍔�
+ */
+ @Autowired(required = false)
+ private IDockingPreApplyFormService dockingPreApplyFormService;
+
+
+ /***
+ * 妯″瀷瑙嗗浘鍗曟湇鍔�
+ */
+ @Autowired(required = false)
+ private IDockingPreViewModelService dockingPreViewModelService;
+
+
+ /***
+ * 鏍规嵁涓绘暟鎹垎绫讳富閿幏鍙栧垎绫讳俊鎭厤缃�
+ * @param codeClassifyId
+ * @return
+ */
+ @Override
+ public List<DockingPreAttrMappingVO> getDockingAttrMappingsByCodeClassifyId(String codeClassifyId,String sourceClassifyId) {
+ VciBaseUtil.alertNotNull(codeClassifyId,"涓绘暟鎹垎绫讳富閿�");
+ //VciBaseUtil.alertNotNull(sourceClassifyId,"闆嗗洟鍒嗙被涓婚敭");
+ //棣栧厛鑾峰彇鍒嗙被妯℃澘灞炴�э紝鐒跺悗涓庡睘鎬ч厤缃潗姣旇緝锛屼互闃茶鏈夊鍒犲睘鎬х殑鍙兘
+ List<DockingPreMetaAttr> dockingPreMetaAttrList= dockingPreMetaAttrService.selectByWrapper(Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getSourceClassifyId,sourceClassifyId));
+ List<DockingPreAttrMapping> dockingPreAttrMappings=this.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getSourceClassifyId, sourceClassifyId).eq(DockingPreAttrMapping::getTargetClassifyId, codeClassifyId));
+ Map<String/**灞炴�т富閿�**/, DockingPreAttrMapping> dockingPreAttrMappingMap = dockingPreAttrMappings.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getMetaListId(), t -> t));
+
+ List<DockingPreAttrMapping> newDockingPreAttrMappingList=new ArrayList<>();
+ dockingPreMetaAttrList.stream().forEach(dockingPreMetaAttr -> {
+ String attrOid=dockingPreMetaAttr.getOid();
+ DockingPreAttrMapping dockingPreAttrMapping=new DockingPreAttrMapping();
+ if(dockingPreAttrMappingMap.containsKey(attrOid)){
+ dockingPreAttrMapping= dockingPreAttrMappingMap.get(attrOid);
+ }else{
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreAttrMapping, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
+ dockingPreAttrMapping.setMetaListId(dockingPreMetaAttr.getOid());//灞炴�т富閿�
+ dockingPreAttrMapping.setSourceAttrKey(dockingPreMetaAttr.getEnglishName());//鑻辨枃鍚嶇О
+ dockingPreAttrMapping.setSourceAttrName(dockingPreMetaAttr.getChineseName());//涓枃鍚嶇О
+ dockingPreAttrMapping.setSourceClassifyId(dockingPreMetaAttr.getSourceClassifyId());//闆嗗洟鍒嗙被oid
+ dockingPreAttrMapping.setSourceClassifyName("");//鍒嗙被鍚嶇О
+ dockingPreAttrMapping.setViewModeId(dockingPreMetaAttr.getViewModelId());//妯″瀷瑙嗗浘id
+ dockingPreAttrMapping.setViewModelName("");//鍒嗙被妯″瀷鍚嶇О
+ dockingPreAttrMapping.setViewName("");//鍒嗙被妯″瀷鍚嶇О
+
+ }
+ newDockingPreAttrMappingList.add(dockingPreAttrMapping);
+ });
+ return dockingPreAttrMappingDO2VOS(dockingPreAttrMappings,false);
+ }
+
+ /***
+ * 鏋勯�犲櫒鏌ヨ鏂瑰紡
+ * @param wrapper 鏌ヨ灏佽鍣�
+ * @return
+ */
+ @Override
+ public List<DockingPreAttrMapping> selectByWrapper(Wrapper wrapper) {
+ return dockingPreAttrMappingMapper.selectList(wrapper);
+ }
+
+ /****
+ * 闆嗗洟灞炴�ф槧灏勯厤缃繚瀛�
+ * @param dockingPreAttrMappingVOList
+ * @return
+ * @throws VciBaseException
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public List<DockingPreAttrMappingVO> batchAddSave(List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList) throws Exception {
+ if(org.springframework.util.CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){
+ return new ArrayList<>();
+ }
+ /**
+ * 1.浼犻�掕繃鏉ョ殑鏈夊彲鑳戒富鏁版嵁妯℃澘鏂板灞炴�э紝杩欐牱鐨勯渶瑕佹坊鍔狅紝涔熸湁鍙兘鍒犻櫎鐨勫睘鎬э紝杩欐牱鐨勬槧灏勯渶瑕佸垹闄�
+ * 涔熸湁鏇存柊鐨勮繖鏍峰垯鏇存柊
+ */
+ List<DockingPreAttrMapping> newDockingPreAttrMapping=new ArrayList<>();
+ List<String>appingConfigOidList=new ArrayList<>();
+ List<String>attrIdList=new ArrayList<>();
+ List<String> attributeOidList=new ArrayList<>();
+ List<DockingPreAttrRange> newDockingPreAttrRangeList=new ArrayList<>();
+ List<DockingPreAttrRangeVO> newDockingPreAttrRangeVOList=new ArrayList<>();
+ dockingPreAttrMappingVOList.stream().forEach(dockingPreAttrMappingVO -> {
+ List<DockingPreAttrRangeVO>dockingPreAttrRangeVOList=dockingPreAttrMappingVO.getDockingPreAttrRangeVoList();
+ appingConfigOidList.add(dockingPreAttrMappingVO.getOid());
+ if(!CollectionUtils.isEmpty(dockingPreAttrRangeVOList)) {
+ attrIdList.add(dockingPreAttrMappingVO.getMetaListId());
+ newDockingPreAttrRangeVOList.addAll(dockingPreAttrRangeVOList);
+ }
+ });
+ //灏嗗睘鎬у彇鍊艰寖鍥磋浆鎴愭暟鎹寔涔呭眰瀵硅薄
+ newDockingPreAttrRangeList=DockingPreAttrRangeWrapper.build().voentitys(newDockingPreAttrRangeVOList);
+ //灏嗗睘鎬ф槧灏勯厤缃俊鎭浆鎹负闇�瑕佹暟鎹寔涔呭眰淇濆瓨鐨勫璞�
+ newDockingPreAttrMapping=DockingPreAttrMappingWrapper.build().voentitys(dockingPreAttrMappingVOList);
+
+ List<DockingPreAttrRange> oldDockingPreAttrRangeList=new ArrayList<>();
+ if(!org.springframework.util.CollectionUtils.isEmpty(attrIdList)) {
+ //鑾峰彇瀛樺湪鐨勫睘鎬у彇鍊艰寖鍥�.
+ oldDockingPreAttrRangeList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().in(DockingPreAttrRange::getMetaListId,attrIdList));
+ }
+ //鑾峰彇瀛樺湪鐨勫睘鎬ф槧灏�.
+ List<DockingPreAttrMapping> oldDataAttrMapping = dockingPreAttrMappingMapper.selectList(Wrappers.<DockingPreAttrMapping>query().lambda().in(DockingPreAttrMapping::getOid,appingConfigOidList));
+
+ Map<String/**oid**/,DockingPreAttrMapping/**灞炴�у璞�**/> allSaveAttrMappingMap = newDockingPreAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
+ Map<String/**oid**/,DockingPreAttrMapping/**瀵硅薄**/> oldAttrMappingMap =oldDataAttrMapping.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t,(o1, o2)->o2));
+ //闇�瑕佸垹闄ょ殑灞炴�ф槧灏�
+ List<String> deleteIdList=new ArrayList<>();
+ oldDataAttrMapping.stream().forEach(cbo -> {
+ String oid =cbo.getOid();
+ if(!allSaveAttrMappingMap.containsKey(oid)){
+ deleteIdList.add(oid);
+ }
+ });
+ this.removeBatchByIds(deleteIdList);//鍒犻櫎宸茬粡涓㈡帀鐨�
+ this.saveOrUpdateBatch(newDockingPreAttrMapping);//娣诲姞鏇存柊鏂扮殑閰嶇疆淇℃伅
+
+ //鍙栧�艰寖鍥村鐞�
+ if(!CollectionUtils.isEmpty(newDockingPreAttrRangeList)) {
+ Map<String/**oid**/, DockingPreAttrRange/**灞炴�у璞�**/> allSaveAttrAttrRangeDOMap =newDockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
+ Map<String/**oid**/, DockingPreAttrRange/**瀵硅薄**/> oldSaveAttrAttrRangeDOMap = oldDockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t, (o1, o2) -> o2));
+
+ //闇�瑕佸垹闄ょ殑灞炴�у彇鍊艰寖鍥�
+ List<String> deleteRangeIdList = new ArrayList<>();
+ oldDockingPreAttrRangeList.stream().forEach(cbo -> {
+ String oid = cbo.getOid();
+ if (!allSaveAttrAttrRangeDOMap.containsKey(oid)) {
+ deleteRangeIdList.add(oid);
+ }
+ });
+ dockingPreAttrRangeService.removeBatchByIds(deleteIdList);//鍒犻櫎宸茬粡涓㈡帀鐨�
+ dockingPreAttrRangeService.saveOrUpdateBatch(newDockingPreAttrRangeList);//娣诲姞鏇存柊鏂扮殑閰嶇疆淇℃伅
+ }
+ return dockingPreAttrMappingVOList;
+ }
+ private String code="";
+
+ private String msg="";
+
+ /***
+ * 鍍忛泦鍥㈢敵璇烽泦鍥㈢爜
+ * @param oids
+ * @param btmName
+ * @return
+ * @throws Exception
+ */
+ @Override
+ @Transactional
+ public R applyGroupCode(String oids, String btmName) throws VciBaseException {
+ List<BaseModel> updateCbos=new ArrayList<BaseModel>();
+ List<DockingPreApplyForm> dockingPreAttrMappings=new ArrayList<>();
+ VciBaseUtil.alertNotNull(oids,"閫夋嫨鐨勬暟鎹�");
+ VciBaseUtil.alertNotNull(btmName,"涓氬姟绫诲瀷");
+ //List<BaseModelVO> codeWupins=mdmEngineService.listByIds(VciBaseUtil.str2List(oids));
+ List<BaseModelVO> dataModelList = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(dataModelList)) {
+ DockingGroupDataVO dockingGroupDataVO = new DockingGroupDataVO();
+ //鐢宠鍗曞拰鐢宠鍗曞璞″叧绯�
+ Map<String, DockingPreApplyForm> addDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
+ Map<String, DockingPreApplyForm> editDockingPreApplyFormMap = new HashMap<String, DockingPreApplyForm>();
+ Map<String, BaseModelVO> baseModelVOMap = new HashMap<String, BaseModelVO>();
+ //缁勭粐鏁版嵁
+ dockingGroupDataVO = queryApplycodeDataObjects(dataModelList, addDockingPreApplyFormMap, editDockingPreApplyFormMap, baseModelVOMap);
+ ResultDataObject resultDataObject = mdmInterJtClient.receiveAddApply(dockingGroupDataVO);
+ code = resultDataObject.getCode();
+ msg = resultDataObject.getMsg();
+ if ("1".equals(resultDataObject.getCode())) {//缁撴灉姝g‘鐨勬儏鍐�
+ List<DataObjectVO> dataObjectVOList = resultDataObject.getData();
+ dataObjectVOList.stream().forEach(dataObject -> {
+ boolean isEditDatas = false;
+ String code2 = dataObject.getCode();
+ DataVO data2 = dataObject.getData();
+ String applyId = data2.getApplyId();//鐢宠鍗昳d
+ String customCoding = StringUtils.isBlank(data2.getCustomCoding()) ? "" : data2.getCustomCoding();//闆嗗洟鐮佹
+ msg = dataObject.getMsg();
+ if (code2.equals("1")) {//缁撴灉姝g‘鐨勬儏鍐�
+ if (!"".equals(customCoding)) {
+ isEditDatas = true;
+ }
+ }
+ //闇�瑕佷慨鏀圭殑鐢宠鍗曟暟鎹�
+ if (editDockingPreApplyFormMap.containsKey(applyId)) {
+ DockingPreApplyForm dockingPreApplyForm = editDockingPreApplyFormMap.get(applyId);
+ dockingPreApplyForm.setCode(code2);
+ dockingPreApplyForm.setMsg("鐢宠锛�" + msg);
+ dockingPreApplyForm.setGroupCode(customCoding);
+ ObjectMapper mp = new ObjectMapper();
+ String writeValueAsString = null;
+ try {
+ writeValueAsString = mp.writeValueAsString(dataObject);
+ dockingPreApplyForm.setContent(writeValueAsString);
+ } catch (JsonProcessingException e) {
+ }
+ }
+ //鏂板鐨勭敵璇峰崟鏁版嵁
+ if (addDockingPreApplyFormMap.containsKey(applyId)) {
+ DockingPreApplyForm dockingPreApplyForm = addDockingPreApplyFormMap.get(applyId);
+ dockingPreApplyForm.setCode(code2);
+ dockingPreApplyForm.setMsg("鐢宠锛�" + msg);
+ dockingPreApplyForm.setGroupCode(customCoding);
+ ObjectMapper mp = new ObjectMapper();
+ String writeValueAsString = null;
+ try {
+ writeValueAsString = mp.writeValueAsString(dataObject);
+ dockingPreApplyForm.setContent(writeValueAsString);
+ } catch (JsonProcessingException e) {
+ }
+ }
+ //濡傛灉鏈夐泦鍥㈢爜鍒欐洿鏂版暟鎹�
+ if (isEditDatas) {
+ if (baseModelVOMap.containsKey(applyId)) {
+ BaseModelVO baseModelVO = baseModelVOMap.get(applyId);
+ BaseModel baseModel = new BaseModel();
+ BeanUtilForVCI.copyDeclaredIgnoreCase(baseModelVO, baseModel);
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(baseModel);
+ baseModelVO.setId(customCoding);
+ updateCbos.add(baseModel);//鏇存柊鏁版嵁闆嗗洟code
+ }
+ }
+ });
+ } else {
+ editDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
+ dockingPreApplyForm.setCode("2");
+ dockingPreApplyForm.setMsg("鐢宠锛�" + msg);
+ dockingPreApplyForm.setContent("");
+ dockingPreApplyForm.setGroupCode("");
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingPreApplyForm);
+ });
+ addDockingPreApplyFormMap.forEach((key, dockingPreApplyForm) -> {
+ dockingPreApplyForm.setCode("2");
+ dockingPreApplyForm.setMsg("鐢宠锛�" + msg);
+ dockingPreApplyForm.setContent("");
+ dockingPreApplyForm.setGroupCode("");
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingPreApplyForm, MdmBtmTypeConstant.DOCKING_PRE_JAPPLYFORM);
+ });
+ }
+ if (editDockingPreApplyFormMap.size() > 0) {
+ dockingPreAttrMappings.addAll(editDockingPreApplyFormMap.values());//娣诲姞鐢宠鍗曟暟鎹�
+ }
+ if (addDockingPreApplyFormMap.size() > 0) {
+ dockingPreAttrMappings.addAll(addDockingPreApplyFormMap.values());//闇�瑕佷慨鏀圭殑鐢宠鍗曟暟鎹�
+ }
+ //淇濆瓨琛ㄥ崟鏁版嵁
+ dockingPreApplyFormService.saveOrUpdateBatch(dockingPreAttrMappings);
+ //mdmEngineService.saveBatch(updateCbos);//淇濆瓨鏁版嵁
+ }
+ return R.success("鐢宠鎺ュ彛璋冪敤鎴愬姛");
+ }
+
+ /***
+ * 瀵硅薄杞崲
+ * @param dockingPreAttrMappings
+ * @return
+ */
+ private List<DockingPreAttrMappingVO> dockingPreAttrMappingDO2VOS(Collection<DockingPreAttrMapping> dockingPreAttrMappings,boolean contain) {
+ List<DockingPreAttrMappingVO> dockingPreAttrMappingVOList=new ArrayList<>();
+ dockingPreAttrMappingVOList=DockingPreAttrMappingWrapper.build().entityVOs(dockingPreAttrMappings);
+ if(CollectionUtils.isEmpty(dockingPreAttrMappingVOList)){
+ dockingPreAttrMappingVOList.stream().distinct().forEach(dockingPreAttrMappingVO -> {
+ if(contain) {
+ List<DockingPreAttrRangeVO> dockingPreAttrRangeVOList= dockingPreAttrRangeService.getDockingPreAttrRangesByMetaId(dockingPreAttrMappingVO.getMetaListId());
+ dockingPreAttrMappingVO.setDockingPreAttrRangeVoList(dockingPreAttrRangeVOList);
+ }
+ });
+ }
+ return dockingPreAttrMappingVOList;
+ }
+
+
+ /**
+ * 缁勭粐鏁版嵁
+ * */
+ private DockingGroupDataVO queryApplycodeDataObjects(List<BaseModelVO> codeWupins,Map<String,DockingPreApplyForm> addDockingPreApplyFormMap,Map<String,DockingPreApplyForm> editDockingPreApplyFormMap,Map<String,BaseModelVO> codeWupinMap) throws VciBaseException{
+ try {
+ String curUserName = AuthUtil.getUser().getUserName();
+ //鐢宠鐨勬暟鎹�
+ List<DockingMainData> mainDataList=new ArrayList<DockingMainData>();
+ for (BaseModelVO dataBusinessObject : codeWupins) {
+ String format = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
+ String codeclsfid = dataBusinessObject.getData().getOrDefault("codeclsfid","");
+ String btmName = dataBusinessObject.getBtmname();
+ String oid = dataBusinessObject.getOid();
+
+ DockingPreApplyForm dockingPreApplyForm = new DockingPreApplyForm();
+
+ String dataOid = dataBusinessObject.getOid();
+ Map<String, String> conditionsMap = new HashMap<String, String>();
+ List<DockingPreApplyForm> applyFormObjects = dockingPreApplyFormService.list(Wrappers.<DockingPreApplyForm>query().lambda().eq(DockingPreApplyForm::getDataOid, dataOid).eq(DockingPreApplyForm::getOperationType, "1"));
+ String apllyCode = "";
+ if (!CollectionUtils.isEmpty(applyFormObjects)) {
+ dockingPreApplyForm = applyFormObjects.get(0);
+ apllyCode = dockingPreApplyForm.getId();
+ editDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//鐢宠鍗曞拰鐢宠鍗曞璞″叧绯�
+ } else {
+ apllyCode = dockingApplyUnitCode + "-" + format;
+ dockingPreApplyForm.setId(apllyCode);
+ dockingPreApplyForm.setName("");
+ dockingPreApplyForm.setOperationType("2");
+ dockingPreApplyForm.setDescription(dataBusinessObject.getDescription());//鑾峰彇鏁版嵁鎻忚堪淇℃伅
+ dockingPreApplyForm.setDataOid(oid);
+ dockingPreApplyForm.setDataBtmName(btmName);
+ addDockingPreApplyFormMap.put(apllyCode, dockingPreApplyForm);//鐢宠鍗曞拰鐢宠鍗曞璞″叧绯�
+ }
+
+ codeWupinMap.put(apllyCode, dataBusinessObject);//鐢宠鍗曞拰瀵瑰簲鏁版嵁鍏崇郴
+ conditionsMap = new HashMap<String, String>();
+ conditionsMap.put("jtargetclsfid", codeclsfid);//瑙嗗浘oid
+
+ List<DockingPreAttrMapping> dockingPreAttrMappingList = this.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda().eq(DockingPreAttrMapping::getTargetClassifyId, codeclsfid));
+ if (CollectionUtils.isEmpty(dockingPreAttrMappingList)) {
+ throw new Exception("鏍规嵁鎵�閫夌殑鏁版嵁锛屾病鏈夋壘鍒板搴旂殑闆嗗洟鍒嗙被璁剧疆锛岃鏍稿!");
+ }
+ String jsourceclsfid = dockingPreAttrMappingList.get(0).getSourceClassifyId();
+ //鑾峰彇鏁版嵁妯″瀷鍒嗙被淇℃伅
+ DockingPreClassify dockingPreClassify = dockingPreClassifyService.getById(jsourceclsfid);
+ DockingMainData mainData = new DockingMainData();
+ mainData.setApplyEntId(dockingApplyUnitCode);//鐢宠鍗曚綅浠g爜
+ mainData.setApplyId(apllyCode);//鐢宠鍗曞彿
+ mainData.setClassName(dockingPreClassify.getGetNodeLinkName());//鍒嗙被鍚嶇О
+ mainData.setCreateBy(curUserName);//
+ mainData.setSecretLevel("鍐呴儴");//瀵嗙骇锛岄粯璁や负鍐呴儴
+ mainData.setViewInfos(getviewInfos(dockingPreClassify, dataBusinessObject));//鑾峰彇瑙嗗浘妯″瀷
+ mainDataList.add(mainData);
+ }
+ //鏍规嵁鏁版嵁妯″瀷锛岀粍缁囨墍闇�瑕佹暟鎹�
+ DockingGroupDataVO postParameters=new DockingGroupDataVO();
+ postParameters.setSysName("420-CODE");//绯荤粺鏍囪瘑
+ postParameters.setMainData(mainDataList);//
+ return postParameters;
+ } catch (Throwable e) {
+ // TODO Auto-generated catch block
+ throw new VciBaseException("鏌ヨ鏁版嵁鍑洪敊"+e);
+ }
+ }
+
+ /**
+ * 鑾峰彇妯″瀷瑙嗗浘
+ * @param dockingPreClassify
+ * @param dataBusinessObject
+ * @throws VciBaseException
+ */
+ private List<DockingViewVO>getviewInfos(DockingPreClassify dockingPreClassify,BaseModelVO dataBusinessObject) throws Throwable{
+ List<DockingViewVO> viewInfoList=new ArrayList<>();
+ String jclassOid= dockingPreClassify.getOid();
+ Map<String,String>conditionsMap=new HashMap<String, String>();
+ conditionsMap.put("jsourceclsfid",jclassOid);
+ conditionsMap.put("jviewname","缂栫爜瑙嗗浘");//鐢宠鍙紶缂栫爜瑙嗗浘
+ //鏍规嵁鍒嗙被鏌ヨ妯″瀷瑙嗗浘瀵硅薄
+ List<DockingPreViewModel> dockingPreViewModels= dockingPreViewModelService.list(Wrappers.<DockingPreViewModel>query().lambda().eq(DockingPreViewModel::getSourceClassifyId,jclassOid).eq(DockingPreViewModel::getViewName,"缂栫爜瑙嗗浘"));
+ for (DockingPreViewModel dockingPreViewModel : dockingPreViewModels) {
+ //缁勭粐鏁版嵁灞炴�т俊鎭�
+ DockingViewVO viewInfo=new DockingViewVO();
+ viewInfo.setViewName(dockingPreViewModel.getViewName());//瑙嗗浘鍚嶇О
+ viewInfo.setViewValue(getViewValueList(dockingPreViewModel,jclassOid,dataBusinessObject));//瑙嗗浘
+ viewInfoList.add(viewInfo);
+ }
+ return viewInfoList;
+ }
+
+ /***
+ * 鑾峰彇閰嶇疆淇℃伅
+ * @param dockingPreViewModel
+ * @param jclassOid
+ * @param dataBusinessObject
+ * @return
+ * @throws VciBaseException
+ */
+ private List<Map<String, Object>> getViewValueList(DockingPreViewModel dockingPreViewModel,String jclassOid,BaseModelVO dataBusinessObject) throws Throwable{
+ //鏋勯�犳ā鍨嬭鍥炬暟鎹�
+ List<Map<String, Object>> viewValueList=new ArrayList<Map<String,Object>>();
+ String oid = dockingPreViewModel.getOid();
+ Map<String,String> dataValueMap=dataBusinessObject.getData();
+ String codeClassifyId=dataValueMap.get("codeclsfid");
+ Map<String,String>conditionsMap=new HashMap<String, String>();
+
+
+
+ List<DockingPreAttrMapping> dockingPreAttrMappingList = this.selectByWrapper(Wrappers.<DockingPreAttrMapping>query().lambda()
+ .eq(DockingPreAttrMapping::getSourceClassifyId, jclassOid).eq(DockingPreAttrMapping::getTargetClassifyId, codeClassifyId));
+ if(CollectionUtils.isEmpty(dockingPreAttrMappingList)) {
+ return viewValueList;
+ }
+
+ Map<String,DockingPreAttrMapping> jintegmappconfigMap=new HashMap<String, DockingPreAttrMapping>();
+ for (DockingPreAttrMapping businessObject : dockingPreAttrMappingList) {
+ jintegmappconfigMap.put(businessObject.getSourceAttrKey(), businessObject);
+ }
+ List<DockingPreMetaAttr> dockingPreMetaAttrList= dockingPreMetaAttrService.selectByWrapper(
+ Wrappers.<DockingPreMetaAttr>query().lambda().eq(DockingPreMetaAttr::getViewModelId,dockingPreViewModel.getOid())
+ .eq(DockingPreMetaAttr::getSourceClassifyId,dockingPreViewModel.getSourceClassifyId()));
+
+ Map<String,Object> viewValueMap=new HashMap<String,Object>();
+ for (DockingPreMetaAttr dockingPreMetaAttr : dockingPreMetaAttrList) {
+ String jenglishname=dockingPreMetaAttr.getEnglishName();////闆嗗洟閰嶇疆灞炴��
+ if(jintegmappconfigMap.containsKey(jenglishname)){
+ DockingPreAttrMapping dockingPreAttrMapping=jintegmappconfigMap.get(jenglishname);
+ String attrId = dockingPreAttrMapping.getTargetAttrId();//缂栫爜灞炴�d
+ String jtargetattrkey = dockingPreAttrMapping.getTargetAttrKey();//缂栫爜灞炴�d
+ Object newVaue=null;
+ if(StringUtils.isNotBlank(jtargetattrkey)){
+ getAttrRange(dockingPreMetaAttr);//鑾峰彇瀛楁鍙栧�艰寖鍥�
+ String value=dataValueMap.get(jtargetattrkey)==null?"":dataValueMap.getOrDefault(jtargetattrkey,"");
+ newVaue = getVaue(dockingPreMetaAttr, value);
+ }else{
+ newVaue = getVaue(dockingPreMetaAttr, "");
+ }
+ if(newVaue==null||"".equals(newVaue)){
+ newVaue= dockingPreMetaAttr.getDefaultValue();
+ }
+ viewValueMap.put(jenglishname, newVaue);
+ }
+ }
+
+ viewValueList.add(viewValueMap);
+ return viewValueList;
+ }
+
+ /***
+ * 鑾峰彇灞炴�ф灇涓炬槧灏勯厤缃�
+ */
+ Map<String,Map<String,DockingPreAttrRange>> attrRangeMap=new HashMap<String, Map<String,DockingPreAttrRange>>();
+ private void getAttrRange(DockingPreMetaAttr jmetaatter) throws Throwable{
+
+ String jmetalistoid = jmetaatter.getOid();
+ if(attrRangeMap.containsKey(jmetalistoid)) {
+ return;
+ }
+ Map<String,String>conditionsMap=new HashMap<String, String>();
+ conditionsMap.put("jmetalistid", jmetalistoid);//瑙嗗浘oid
+ List<DockingPreAttrRange> dockingPreAttrRangeList = dockingPreAttrRangeService.selectByWrapper(Wrappers.<DockingPreAttrRange>query().lambda().eq(DockingPreAttrRange::getMetaListId, jmetalistoid));
+ if (CollectionUtils.isEmpty(dockingPreAttrRangeList)) {
+ return;
+ }
+ Map<String, DockingPreAttrRange> rangeMap = new HashMap<String, DockingPreAttrRange>();
+ rangeMap = dockingPreAttrRangeList.stream().collect(Collectors.toMap(s -> s.getNumTextValue(), t -> t, (o1, o2) -> o2));
+ attrRangeMap.put(jmetalistoid, rangeMap);
+
+ }
+ /****
+ * 鍊肩被鍨嬭浆鎹�
+ * @param jmetaatter
+ * @param value
+ * @return
+ * @throws Throwable
+ */
+ private Object getVaue(DockingPreMetaAttr jmetaatter,String value) throws Throwable{
+ //jmetadatatype 鍏冩暟鎹被鍨嬶紙1 瀛楃鍨�, 2 鏁村瀷, 3 闀挎暣鍨�, 4 鍗曠簿搴�, 5 鍙岀簿搴�,6 鏃ユ湡鍨�, 7 鏃堕棿鍨�, 8 甯冨皵鍨�, 9 鏂囦欢, 10澶嶅悎鍨嬶級
+ int jmetadatatype = jmetaatter.getMetaDataType();
+ String jmetalistoid = jmetaatter.getOid();
+ Map<String, DockingPreAttrRange> rangeMap=new HashMap<String, DockingPreAttrRange>();
+ if(attrRangeMap.containsKey(jmetalistoid)){
+ rangeMap = attrRangeMap.get(jmetalistoid);
+ if(rangeMap.containsKey(value)){
+ DockingPreAttrRange dockingPreAttrRange = rangeMap.get(value);
+ value=dockingPreAttrRange.getNumText();//灏嗙紪鐮佸睘鎬у煙鍊艰浆鎹㈡垚闆嗗洟瀵瑰簲鐨勫煙鍊�
+ }
+ }
+
+ if(jmetadatatype==1){//1 瀛楃鍨�
+ return StringUtils.isBlank(value)?"":value;
+ }else if(jmetadatatype==2){//2 鏁村瀷
+ return StringUtils.isBlank(value)?null:Integer.parseInt(value);
+ }else if(jmetadatatype==3){//3 闀挎暣鍨�
+ return StringUtils.isBlank(value)?null:Long.parseLong(value);
+ }else if(jmetadatatype==4){//4 鍗曠簿搴�,
+ return StringUtils.isBlank(value)?null:Float.parseFloat(value);
+ }else if(jmetadatatype==5){// 5 鍙岀簿搴�
+ return StringUtils.isBlank(value)?null:Double.parseDouble(value);
+ }else if(jmetadatatype==6){//6 鏃ユ湡鍨�
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
+ if(StringUtils.isBlank(value)) {
+ return null;
+ }else {
+ try {
+ return simpleDateFormat.parse(value);
+ } catch (ParseException e) {
+ throw new VciBaseException("date", new String[]{"鏃ユ湡鏍煎紡杞崲閿欒"});
+ }
+ }
+ }else if(jmetadatatype==7){//7 鏃堕棿鍨�
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
+ if(StringUtils.isBlank(value)) {
+ return null;
+ }else{
+ try {
+ return simpleDateFormat.parse(value);
+ } catch (ParseException e) {
+ throw new VciBaseException("date", new String[]{"鏃ユ湡鏍煎紡杞崲閿欒"});
+ }
+ }
+ }else if(jmetadatatype==8){//8 甯冨皵鍨�
+ return value;
+ }else if(jmetadatatype==9){//9 鏂囦欢,
+ return value;
+ }else if(jmetadatatype==10){//10澶嶅悎鍨�
+ return value;//绗﹀悎鍨嬫槸浠�涔堜笢涓滃浣曞鐞�
+ }
+ return value;
+ }
+
}
--
Gitblit v1.9.3