From 8169bb01de23d48a2ccd289fe3bc394b7821a4f5 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 19 九月 2023 16:23:37 +0800
Subject: [PATCH] 代码提交
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 252 ++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 214 insertions(+), 38 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index 0bd2aaa..25953b9 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
import com.vci.ubcs.code.bo.AttributeValue;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
@@ -11,6 +12,7 @@
import com.vci.ubcs.code.entity.CodeAllCode;
import com.vci.ubcs.code.enumpack.CodeDefaultLC;
import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
+import com.vci.ubcs.code.enumpack.sysIntegrationPushTypeEnum;
import com.vci.ubcs.code.lifecycle.CodeAllCodeLC;
import com.vci.ubcs.code.mapper.CommonsMapper;
import com.vci.ubcs.code.service.*;
@@ -154,7 +156,11 @@
*/
@Autowired
private IBtmTypeClient btmTypeClient;
-
+ /***
+ * 鐢宠闆嗗洟缂栫爜鏈嶅姟
+ */
+ @Resource
+ private IMdmInterJtClient mdmInterJtClient;
/***
* 瀵嗙骇鏈嶅姟
*/
@@ -173,7 +179,7 @@
* @return excel鐨勬枃浠跺湴鍧�
*/
@Override
- public String downloadTopImportExcel(String codeClassifyOid){
+ public String downloadTopImportExcel(String codeClassifyOid){
List<CodeClassifyTemplateVO> templateVOList=new ArrayList<>();
VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
@@ -1899,7 +1905,7 @@
* @return 鏈夐敊璇俊鎭殑excel
*/
@Override
- public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
+ public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode) {
Map<String,String> errorMap=new HashMap<>();
VciBaseUtil.alertNotNull(orderDTO,"缂栫爜鐢宠鐩稿叧鐨勬暟鎹�",orderDTO.getCodeClassifyOid(),"涓婚搴撳垎绫讳富閿�");
CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
@@ -1962,6 +1968,7 @@
CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
+ Map<String,List<String>>keyAttrOkOidTORepeatOidMap= keyResultVO.getKeyAttrOkOidTORepeatOidMap();
if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){
selfRepeatRowIndexList.stream().forEach(rowIndex->{
/* //浼犲叆鏁版嵁涔嬮棿鍏抽敭灞炴�х殑鏍¢獙
@@ -2019,10 +2026,15 @@
sourceOid=codeOidToSystemOidMap.get(oid);
}
String code="";
+ String groupCode="";
String errorid="103";
String mes=errorMap.get(rowIndex);
XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
- resultDataObjectDetailDO.setCode(code);
+ if(isCodeOrGroupCode){
+ resultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ resultDataObjectDetailDO.setCode(code);
+ }
resultDataObjectDetailDO.setId(sourceOid);
resultDataObjectDetailDO.setErrorid(errorid);
resultDataObjectDetailDO.setMsg(mes);
@@ -2048,6 +2060,7 @@
String oid = cbo.getOid();
String sourceOid = oid;
String code = "";
+ String groupCode="";
String errorid = "201";
if(codeOidToSystemOidMap.containsKey(oid)){
sourceOid=codeOidToSystemOidMap.get(oid);
@@ -2058,22 +2071,36 @@
String lcstatus =newCbo.getLcStatus();
String newOid =newCbo.getOid();
Date ts =newCbo.getTs();
- code=newCbo.getId();
+ code = StringUtils.isBlank(newCbo.getId())?"":newCbo.getId();
+ groupCode=newCbo.getData().getOrDefault("GROUPCODE","");
String lastmodifier=newCbo.getLastModifier();
- if (!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) {
+ if (lcstatus!=null&&!lcstatus.equals(CodeDefaultLC.RELEASED.getValue())) {
newCbo.setOid(newOid);
newCbo.setLastModifier(lastmodifier);
- newCbo.setId(code);
+ /*if(isCodeOrGroupCode) {
+ newCbo.setId(code);
+ }else{
+ newCbo.getData().put("groupcode",groupCode);
+ }*/
newCbo.setTs(ts);
cbo.setLastModifier(cbo.getLastModifier());
editBoList.add(newCbo);
}
String mes = errorKeyMap.get(rowIndex);
XMLResultDataObjectDetailDO resultDataObjectDetailDO = new XMLResultDataObjectDetailDO();
- resultDataObjectDetailDO.setCode(code);
+ if(isCodeOrGroupCode) {
+ if(StringUtils.isBlank(groupCode)){
+ errorid="1";
+ mes+="锛涚敵璇风殑缂栫爜绫诲瀷涓洪泦鍥㈢爜锛岀瓑寰呴泦鍥㈢紪鐮佽祴鍊�";
+ }
+ resultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ resultDataObjectDetailDO.setCode(code);
+ }
resultDataObjectDetailDO.setId(sourceOid);
resultDataObjectDetailDO.setErrorid(errorid);
resultDataObjectDetailDO.setMsg(mes);
+
resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
}
}
@@ -2111,22 +2138,41 @@
allNeedSaveCboList.add(baseModel.getOid());
});
try {
+ List<String>applyGroupCodeIdList=new ArrayList<>();
productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList);
//濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰
engineService.batchSaveSelectChar(templateVO, dataCBOList);
// if(!isProcess){
dataCBOList.stream().forEach(needSaveCbo->{
+
XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
- resultDataObjectDetailDO.setCode(needSaveCbo.getId());
+ String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
+ String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
+ //resultDataObjectDetailDO.setCode(needSaveCbo.getId());
+ String msg="鐢宠缂栫爜鎴愬姛";
String oid=needSaveCbo.getOid();
String sourceOid=oid;
+ applyGroupCodeIdList.add(oid);
if(codeOidToSystemOidMap.containsKey(oid)){
sourceOid=codeOidToSystemOidMap.get(oid);
}
+ if(isCodeOrGroupCode) {
+ if(StringUtils.isBlank(groupCode)){
+ resultDataObjectDetailDO.setErrorid("1");
+ msg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��";
+ }
+ resultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ resultDataObjectDetailDO.setCode(code);
+ resultDataObjectDetailDO.setErrorid("0");
+ }
resultDataObjectDetailDO.setId(sourceOid);
- resultDataObjectDetailDO.setErrorid("0");
- resultDataObjectDetailDO.setMsg("鐢宠缂栫爜鎴愬姛");
+
+ resultDataObjectDetailDO.setMsg(msg);
resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
+ //澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁
+ LinkedList<XMLResultDataObjectDetailDO> repeatDataObjectDetailDOS=handleApplyDataKeyAttrRepeat(keyAttrOkOidTORepeatOidMap,codeOidToSystemOidMap,needSaveCbo,isCodeOrGroupCode);
+ resultDataObjectDetailDOs.addAll(repeatDataObjectDetailDOS);
});
/* }else{
needSaveCboList.stream().forEach(needSaveCbo->{
@@ -2144,6 +2190,13 @@
});
}*/
+ //鏄惁璋冪敤闆嗗洟鎺ュ彛鐢宠鎺ュ彛
+ if(isCodeOrGroupCode){
+ if(!CollectionUtils.isEmpty(applyGroupCodeIdList)) {
+ this.sendApplyGroupcode(applyGroupCodeIdList, classifyFullInfo.getTopClassifyVO().getId(), sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue());
+ }
+ }
+
}catch (Throwable e){
e.printStackTrace();
needSaveCboList.stream().forEach(needSaveCbo->{
@@ -2164,15 +2217,61 @@
}
}
+
+ /***
+ *缁欏悓涓�鎵圭敵璇风紪鐮佸瓨鍦ㄥ叧閿睘鎬х殑鏁版嵁璧嬩笂涓�鑷寸紪鐮�
+ * @param keyAttrOkOidTORepeatOidMap 涓�鎵圭敵璇锋暟鎹叧閿睘鎬т竴鑷寸殑閲嶅鏁版嵁鏄犲皠鍏崇郴
+ * @param codeOidToSystemOidMap
+ * @param needSaveCbo
+ * @param isCodeOrGroupCode
+ */
+ private LinkedList<XMLResultDataObjectDetailDO> handleApplyDataKeyAttrRepeat(Map<String,List<String>>keyAttrOkOidTORepeatOidMap,Map<String,String> codeOidToSystemOidMap,BaseModel needSaveCbo,boolean isCodeOrGroupCode){
+ LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs=new LinkedList<>();
+ String oid=needSaveCbo.getOid();
+ if(keyAttrOkOidTORepeatOidMap.containsKey(oid)){
+ List<String> repeatOidList= keyAttrOkOidTORepeatOidMap.get(oid);
+ if(!CollectionUtils.isEmpty(repeatOidList)){
+ String sourceNewOid=needSaveCbo.getOid();
+ String sourceOid=sourceNewOid;
+ if(codeOidToSystemOidMap.containsKey(oid)){
+ sourceOid=codeOidToSystemOidMap.get(oid);
+ }
+ String code=StringUtils.isBlank(needSaveCbo.getId())?" ":needSaveCbo.getId();
+ String groupCode=needSaveCbo.getData().getOrDefault("GROUPCODE"," ");
+ String finalSourceOid = sourceOid;
+ repeatOidList.stream().forEach(repeatOid->{
+ if(codeOidToSystemOidMap.containsKey(repeatOid)){
+ XMLResultDataObjectDetailDO repeatresultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
+ String repeatSourceOid=codeOidToSystemOidMap.get(repeatOid);
+ String repeatMsg="姝ゆ暟鎹笌鐢宠鐨勭紪鐮佹暟鎹甶d涓恒��"+ finalSourceOid +"銆戠殑鍏抽敭灞炴�т竴鑷达紝鍒欏彇鐩稿悓缂栫爜";
+ if(isCodeOrGroupCode) {
+ if(StringUtils.isBlank(groupCode)){
+ repeatMsg="鐢宠鐨勭紪鐮佺被鍨嬩负闆嗗洟鐮侊紝绛夊緟闆嗗洟缂栫爜璧嬪��";
+ }
+ repeatresultDataObjectDetailDO.setCode(groupCode);
+ }else{
+ repeatresultDataObjectDetailDO.setCode(code);
+ }
+ repeatresultDataObjectDetailDO.setId(repeatSourceOid);
+ repeatresultDataObjectDetailDO.setErrorid("0");
+ repeatresultDataObjectDetailDO.setMsg(repeatMsg);
+ resultDataObjectDetailDOs.add(repeatresultDataObjectDetailDO);
+ }
+ });
+ }
+ }
+ return resultDataObjectDetailDOs;
+ }
/***
* 闆嗘垚鎵归噺鍚屾鏇存柊鎺ュ彛
* @param codeClassifyVO;
* @param dataObjectVO 鏁版嵁淇℃伅
* @param resultDataObjectDetailDOs 閿欒淇℃伅
+ * @param isCodeOrGroupCode 鏄惁鏇撮泦鍥㈢郴缁熸暟鎹�
*/
@Transactional(rollbackFor = VciBaseException.class)
@Override
- public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
+ public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs,boolean isCodeOrGroupCode) {
String errorid="";
String msg="";
//鏌ヨ鍒嗙被鍜屾ā鏉�
@@ -2197,8 +2296,8 @@
List<String> titleRowData = dataObjectVO.getColName();
Map<String/**涓枃鍚嶇О**/, String/**鑻辨枃鍚嶇О**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId().toLowerCase(Locale.ROOT), (o1, o2) -> o2));
getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap);
- Map<String, String> cboOidMap = new HashMap<>();
- cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")");
+ //Map<String, String> cboOidMap = new HashMap<>();
+ //cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")");
String tableName ="";
try {
R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
@@ -2228,15 +2327,26 @@
sb.append(" select * from ");
sb.append(tableName);
sb.append(" where 1=1 ");
- sb.append(" id in (");
- sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
- sb.append(")");
+ sb.append(" and lastr=1 and lastv=1" );
+ if(isCodeOrGroupCode) {
+ sb.append(" and ( groupcode in (");
+ sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+ sb.append(")");
+ sb.append(" or id in (");
+ sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+ sb.append("))");
+ }else{
+ sb.append(" and id in (");
+ sb.append(VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])));
+ sb.append(")");
+ }
+
List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
List<ClientBusinessObject> cboList= ChangeMapTOClientBusinessObjects(dataMapList);
Map<String, ClientBusinessObject> codeSystemObjectMap = cboList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
Map<String, String> errorMap = new HashMap<>();
List<CodeOrderDTO> codeOrderDTOList = new ArrayList<>();
- this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap);
+ this.getCodeOrderDTOs(codeClassifyVO, templateVO, codeDataMap, codeSystemObjectMap, codeOrderDTOList, errorMap,isCodeOrGroupCode);
// List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS=codeClassifyProcessTempService.listProcessTemplate(templateVO.getOid(),"code_cls_flow_use_order");
boolean isProcess=false;
/** if(!CollectionUtils.isEmpty(codeClassifyProcessTempVOS)){
@@ -2258,7 +2368,7 @@
RowDatas rowData=codeDataMap.get(code);
String status=rowData.getStatus();
String operation=rowData.getOperation();
- if (cbo.getTs().compareTo(orderDTO.getTs())==0?true:false) {
+ if (cbo.getTs().compareTo(orderDTO.getTs())==0?false:true) {
// throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+";鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
}
@@ -2300,7 +2410,7 @@
List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
- CodeAllCode codeCbo = codeAllCodeList.get(0);
+ CodeAllCode codeCbo = newCodeAllCodeList.get(0);
log.info("codeCbos code:" + codeCbo.getId());
codeCbo.setLcStatus(status);
codeAllCodeList.add(codeCbo);
@@ -2319,7 +2429,7 @@
List<CodeAllCode>newCodeAllCodeList= codeAllCodeService.selectByWrapper(Wrappers.<CodeAllCode>query().lambda().eq(CodeAllCode::getCreateCodeOid, cbo.getOid()));
log.info("codeCbos size:" + newCodeAllCodeList.size());
if (!CollectionUtils.isEmpty(newCodeAllCodeList)) {
- CodeAllCode codeCbo = codeAllCodeList.get(0);
+ CodeAllCode codeCbo = newCodeAllCodeList.get(0);
log.info("codeCbos code:" + codeCbo.getId());
codeCbo.setLcStatus(CodeDefaultLC.TASK_BACK.getValue());
codeAllCodeList.add(codeCbo);
@@ -2377,9 +2487,19 @@
//瀛樺偍鏁版嵁
try {
engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),updateList);
- codeAllCodeService.saveBatch(codeAllCodeList);
+ codeAllCodeService.saveOrUpdateBatch(codeAllCodeList);
if(deleteList.size()>0) {
commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{})));
+ }
+ //鏄惁璋冪敤闆嗗洟鎺ュ彛鐢宠鎺ュ彛
+ if(isCodeOrGroupCode){
+ List<String> IdList=resultDataObjectDetailDOs.stream().filter(xMLResultDataObjectDetailDO-> com.alibaba.cloud.commons.lang.StringUtils.isNotBlank(xMLResultDataObjectDetailDO.getId())).map(XMLResultDataObjectDetailDO::getId).distinct().collect(Collectors.toList());
+
+
+
+ if(!CollectionUtils.isEmpty(IdList)) {
+ this.sendApplyGroupcode(IdList, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),sysIntegrationPushTypeEnum.ACCPET_EDITCODE.getValue());
+ }
}
errorid="0";
msg="鏇存柊/鐘舵�佹洿鏀�/鍒犻櫎鎴愬姛锛�";
@@ -2406,6 +2526,7 @@
}
}
}
+
/**
* 鏍¢獙灞炴�ф槸鍚︿负蹇呰緭
*
@@ -2503,17 +2624,36 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
- final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " where 1 = 1 "};
+ String tableName="";
+ R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
+ if(r.isSuccess()) {
+ BtmTypeVO btmTypeVO = r.getData();
+ if (btmTypeVO != null) {
+ tableName = btmTypeVO.getTableName();
+
+ }
+ }
+ if (StringUtils.isBlank(tableName)) {
+ String errormsg="鏍规嵁涓氬姟绫诲瀷涓烘煡璇㈠埌鐩稿叧涓氬姟琛�";
+ errorMap.put(orderDTO.getId(),errorMap.getOrDefault(orderDTO.getId(),"")+errormsg);
+ return;
+ }
+ final String[] sql = {"select count(*) from " + tableName + " t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
- sql[0] += " and " + key + " = " + value;
+ if(StringUtils.isBlank(value)||value.equals(QueryOptionConstant.ISNULL)){
+ sql[0] += " and " + key + " is null ";
+ }else{
+ sql[0] += " and " + key + " = " + value;
+ }
+
});
if (StringUtils.isNotBlank(orderDTO.getOid())) {
//淇敼鐨勬椂鍊欙紝闇�瑕佹帓闄よ嚜宸�
- sql[0] += " and oid != '" + orderDTO.getOid() + "'";
+ sql[0] += " and t.oid != '" + orderDTO.getOid() + "'";
} else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) {
- sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
+ sql[0] += " and t.oid != '" + orderDTO.getCopyFromVersion() + "'";
}
- sql[0] += " and lastR = '1' and lastV = '1' ";
+ sql[0] += " and t.lastR = '1' and t.lastV = '1' ";
if (commonsMapper.queryCountBySql(sql[0]) > 0) {
String ruleInfoMsg = keyRuleVO == null ? "" : "鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}";
String[] objs = new String[]{trim ? "鏄�" : "鍚�", ignoreCase ? "鏄�" : "鍚�", ignoreWidth ? "鏄�" : "鍚�", trimAll ? "鏄�" : "鍚�"};
@@ -2713,13 +2853,19 @@
* @param errorMap
* @return
*/
- private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap){
- codeDataMap.keySet().forEach(code->{
- RowDatas rowDatas=codeDataMap.get(code);
- Map<String, String> data= rowDatas.getFiledValue();
+ private void getCodeOrderDTOs(CodeClassifyVO codeClassifyVO,CodeClassifyTemplateVO templateVO,Map<String ,RowDatas>codeDataMap,Map<String, ClientBusinessObject> codeSystemObjectMap,List<CodeOrderDTO> codeOrderDTOList,Map<String,String> errorMap,boolean isCodeOrGroupCode){
+ codeSystemObjectMap.keySet().forEach(code->{
+ ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
+ if(isCodeOrGroupCode){
+ code=sysDataObject.getAttributeValue("GROUPCODE");
+ if(StringUtils.isBlank(code)){
+ code=sysDataObject.getId();
+ }
+ }
CodeOrderDTO orderDTO = new CodeOrderDTO();
- if(codeSystemObjectMap.containsKey(code)){
- ClientBusinessObject sysDataObject= codeSystemObjectMap.get(code);
+ if(codeDataMap.containsKey(code)){
+ RowDatas rowDatas=codeDataMap.get(code);
+ Map<String, String> data= rowDatas.getFiledValue();
orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//鍒嗙被涓婚敭
orderDTO.setOid(sysDataObject.getOid());//鏁版嵁oid
orderDTO.setLcStatus(rowDatas.getStatus());//鐘舵��
@@ -3644,7 +3790,8 @@
CodeImportResultVO resultVO = new CodeImportResultVO();
resultVO.setKeyAttrRuleInfo(String.format(keyRuleVO ==null?"":"鏌ヨ瑙勫垯锛氬幓闄ょ┖鏍�--{0},蹇界暐澶у皬鍐�--{1},蹇界暐鍏ㄥ崐瑙�--{2},蹇界暐鍏ㄩ儴绌烘牸--{3}",
new String[]{trim?"鏄�":"鍚�",ignoreCase?"鏄�":"鍚�",ignoreWidth?"鏄�":"鍚�",trimAll?"鏄�":"鍚�"}));
- resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO));
+ //resultVO.setSelfRepeatRowIndexList(getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO));
+ getSelfRepeatRowIndex(ketAttrMap,cboList,keyRuleVO,resultVO);
if(!CollectionUtils.isEmpty(resultVO.getSelfRepeatRowIndexList())){
//鎴戜滑绉婚櫎鏈韩閲嶅鐨勬暟鎹�
cboList = cboList.stream().filter(s->!resultVO.getSelfRepeatRowIndexList().contains(s.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
@@ -3803,9 +3950,10 @@
* @param keyRuleVO 鍏抽敭灞炴�ф帶鍒惰鍒�
* @return 閲嶅鐨勮鍙�
*/
- private Set<String> getSelfRepeatRowIndex(Map<String/**灞炴�х殑缂栧彿**/, CodeClassifyTemplateAttrVO> ketAttrMap,
- List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO){
+ private void getSelfRepeatRowIndex(Map<String/**灞炴�х殑缂栧彿**/, CodeClassifyTemplateAttrVO> ketAttrMap,
+ List<ClientBusinessObject> dataList,CodeKeyAttrRepeatVO keyRuleVO,CodeImportResultVO resultVO){
Set<String> selfRepeatRowIndexList = new CopyOnWriteArraySet<>();
+ Map<String,List<String>> keyAttrOkOidTORepeatOidMap=new HashMap<>();
boolean trimAll =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnoreallspaceflag());
//鍏ㄩ儴鍘荤┖鐨勪紭鍏堢骇澶т簬鍘荤┖
boolean trim =keyRuleVO ==null?false: VciBaseUtil.getBoolean(keyRuleVO.getIgnorespaceflag());
@@ -3814,8 +3962,10 @@
//蹇呴』灏嗗睘鎬ф寜鐓ч『搴忔帓搴忓ソ
List<CodeClassifyTemplateAttrVO> attrVOList = ketAttrMap.values().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList());
Map<String/**琛屽彿**/,String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/> rowIndexKeyStringMap = new HashMap<>();
+ Map<String/**鍏抽敭灞炴�х殑缁勫悎鍐呭**/,String/**绗竴涓叧閿睘鎬х殑鏁版嵁oid**/> okOidKeyStringMap = new HashMap<>();
dataList.parallelStream().forEach(cbo-> {
String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
+ String oid=cbo.getOid();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < attrVOList.size(); i++) {
CodeClassifyTemplateAttrVO attrVO = attrVOList.get(i);
@@ -3841,12 +3991,25 @@
String keyString = sb.toString();
if(rowIndexKeyStringMap.containsValue(keyString) && StringUtils.isNotBlank(keyString)){
selfRepeatRowIndexList.add(rowIndex);
+ String okOid=okOidKeyStringMap.getOrDefault(keyString,"");
+ if(StringUtils.isNotBlank(okOid)){
+ List<String>newOidList=new ArrayList<>();
+ newOidList.add(oid);
+ if(keyAttrOkOidTORepeatOidMap.containsKey(okOid)){
+ List<String> oldOidList= keyAttrOkOidTORepeatOidMap.get(okOid);
+ newOidList.addAll(oldOidList);
+
+ }
+ keyAttrOkOidTORepeatOidMap.put(okOid,newOidList);
+ }
}else {
+ okOidKeyStringMap.put(sb.toString(),oid);
rowIndexKeyStringMap.put(rowIndex, sb.toString());
}
});
//鍥犱负鍙槸鍏抽敭灞炴�ч噸澶嶏紝鎵�浠ユ垜浠笉鑳介噸澶嶇殑澶氭潯閫変竴鏉℃潵鎶ラ敊
- return selfRepeatRowIndexList;
+ resultVO.setKeyAttrRepeatRowIndexList(selfRepeatRowIndexList);
+ resultVO.setKeyAttrOkOidTORepeatOidMap(keyAttrOkOidTORepeatOidMap);
}
/**
* excel鐨勬爣棰樹笂鑾峰彇瀛楁鎵�鍦ㄧ殑浣嶇疆
@@ -3880,7 +4043,7 @@
DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject);
for (String key:dataMap.keySet()){
Object value= dataMap.getOrDefault(key,"");
- clientBusinessObject.setAttributeValue(key,value.toString());
+ clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
}
clientBusinessObjectList.add(clientBusinessObject);
});
@@ -4308,4 +4471,17 @@
}
}
+ /***
+ * 鐢宠闆嗗洟缂栫爜
+ * @param idList
+ * @param btmName
+ */
+ public void sendApplyGroupcode(List<String> idList,String btmName,String operationType){
+ String oids=VciBaseUtil.array2String(idList.toArray(new String[]{}));
+ if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_APPCODE.getValue())) {
+ mdmInterJtClient.applyGroupCode(oids,btmName);
+ }else if(operationType.equals(sysIntegrationPushTypeEnum.ACCPET_EDITCODE)){
+ mdmInterJtClient.receiveEditApply(oids,btmName);
+ }
+ }
}
--
Gitblit v1.9.3