From 336265194a47bcbdbd5f8d2274d10a6284ee1246 Mon Sep 17 00:00:00 2001
From: mamc <1428594221@qq.com>
Date: 星期三, 28 六月 2023 14:43:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 101 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 72 insertions(+), 29 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 aa4955c..4d865ed 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
@@ -21,6 +21,7 @@
import com.vci.ubcs.code.vo.webserviceModel.attrmap.RowDatas;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
+import com.vci.ubcs.omd.feign.IWebSecretClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.starter.bo.WriteExcelData;
import com.vci.ubcs.starter.exception.VciBaseException;
@@ -59,6 +60,7 @@
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 org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.File;
@@ -154,6 +156,11 @@
*/
@Autowired
private IBtmTypeClient btmTypeClient;
+ /***
+ * 瀵嗙骇鏈嶅姟
+ */
+ @Resource
+ private IWebSecretClient secretService;
/**
* 鎵归噺鐢宠锛氶�夊彇閫変腑鍒嗙被涓嬬殑鎵�鏈夋ā鏉垮叧閿睘鎬э紝鐩镐技灞炴�э紝蹇呭~灞炴�э紝鍐欏叆execl涓�
*
@@ -189,7 +196,7 @@
String field=codetemplateAttr.getId();
String name=codetemplateAttr.getName();
CodeClassifyTemplateAttrVO codeBaseAttributeDTO=new CodeClassifyTemplateAttrVO();
- boolean res=codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE)//鍩烘湰灞炴�у瓧娈垫樉绀�
+ boolean res=(StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup())&& codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
||(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
||(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
||(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
@@ -752,7 +759,7 @@
* @return 鏈夐敊璇俊鎭殑excel
*/
@Override
- public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) {
+ public CodeImProtRusultVO batchImportHistoryData(String codeClassifyOid, String classifyAttr,File file) throws Throwable{
VciBaseUtil.alertNotNull(codeClassifyOid,"鍒嗙被鐨勪富閿�");
ReadExcelOption reo = new ReadExcelOption();
reo.setReadAllSheet(true);
@@ -997,7 +1004,7 @@
if (isExport||newErrorMap.size() > 0) {
createRedisDatas(uuid + "-ok", templateVO, rowIndexCboMap, dataSet, fieldIndexMap, newErrorMap, true);
} else {
- List<String> dataCBOIdList=new ArrayList<>();
+ List<BaseModel> dataCBOIdList=new ArrayList<>();
//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList;
CodeClassifyTemplateVO finalTemplateVO = templateVO;
@@ -1011,7 +1018,7 @@
BeanUtil.convert(clientBusinessObject,baseModel);
baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
dataCBOList.add(baseModel);
- dataCBOIdList.add(baseModel.getOid());
+ dataCBOIdList.add(baseModel);
});
if (!CollectionUtils.isEmpty(thisCbos)) {
@@ -1338,7 +1345,7 @@
try {
codeList = productCodeService.productCodeAndSaveData(classifyFullInfo,templateVO,ruleVO, orderDTO.getSecDTOList(),dataCBOList);
//濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰
- engineService.batchSaveSelectChar(templateVO, dataCBOIdList);
+ engineService.batchSaveSelectChar(templateVO, dataCBOList);
} catch (Exception e) {
e.printStackTrace();
log.error("鎵逛簡鐢宠鏃跺け璐�");
@@ -1427,7 +1434,7 @@
@Override
public R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot) {
- List<String> allNeedSaveCboList=new ArrayList<>();
+ List<BaseModel> dataCBOList=new ArrayList<>();
codeImprotSaveDatVOList.stream().forEach(codeImprotSaveDatVO -> {
List<SheetRowData> rowDataList = new ArrayList<>();
List<ClientBusinessObject>cboList=new ArrayList<>();
@@ -1517,13 +1524,13 @@
log.info("鍒嗙被锛�"+classifyFullInfo.getCurrentClassifyVO().getName()+"鏁版嵁:"+needSaveCboList.size());
if (!CollectionUtils.isEmpty(needSaveCboList)) {
- List<BaseModel> dataCBOList=new ArrayList<>();
+// List<BaseModel> dataCBOList=new ArrayList<>();
needSaveCboList.stream().forEach(clientBusinessObject -> {
BaseModel baseModel=new BaseModel();
BeanUtil.convert(clientBusinessObject,baseModel);
baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
dataCBOList.add(baseModel);
- allNeedSaveCboList.add(baseModel.getOid());
+// allNeedSaveCboList.add(baseModel);
});
try {
//9.鎴戜滑澶勭悊涓氬姟鏁版嵁
@@ -1537,7 +1544,7 @@
}
}
//濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰
- engineService.batchSaveSelectChar(codeClassifyTemplateVO, allNeedSaveCboList);
+ engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList);
});
return R.success(isImprot?"鎵归噺鍘嗗彶瀵煎叆鎴愬姛":"鎵归噺鐢宠鎴愬姛");
}
@@ -1802,7 +1809,7 @@
try {
productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList);
//濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰
- engineService.batchSaveSelectChar(templateVO, allNeedSaveCboList);
+ engineService.batchSaveSelectChar(templateVO, dataCBOList);
// if(!isProcess){
needSaveCboList.stream().forEach(needSaveCbo->{
XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
@@ -1859,6 +1866,7 @@
* @param dataObjectVO 鏁版嵁淇℃伅
* @param resultDataObjectDetailDOs 閿欒淇℃伅
*/
+ @Transactional(rollbackFor = VciBaseException.class)
@Override
public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
String errorid="";
@@ -1887,9 +1895,30 @@
getFieldIndexMap(titleRowData, attrNameIdMap, fieldIndexMap);
Map<String, String> cboOidMap = new HashMap<>();
cboOidMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDataMap.keySet().toArray(new String[0])) + ")");
- R<BtmTypeVO> r= btmTypeClient.getDetail(templateVO.getBtmTypeId());
- BtmTypeVO btmTypeVO =r.getData();
- String tableName=btmTypeVO.getTableName();
+ String tableName ="";
+ try {
+ R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
+ if(r.getCode()!=200) {
+ throw new Throwable(r.getMsg());
+ }
+ BtmTypeVO btmTypeVO = r.getData();
+ if (btmTypeVO == null) {
+ throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�");
+ }
+ tableName = btmTypeVO.getTableName();
+ if (StringUtils.isBlank(tableName)) {
+ throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�");
+ }
+ }catch (Throwable e){
+ log.error("鏌ヨ涓氬姟瀵硅薄琛�"+e);
+ XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
+ xmlResultDataObjectDetailDO.setErrorid("103");
+ xmlResultDataObjectDetailDO.setMsg("鏌ヨ涓氬姟瀵硅薄琛�"+e);
+ xmlResultDataObjectDetailDO.setId("");
+ xmlResultDataObjectDetailDO.setCode("");
+ resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
+ return;
+ }
StringBuffer sb=new StringBuffer();
sb.append(" select * from ");
@@ -2283,10 +2312,10 @@
}
int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD));
- /*if (secret == 0 || !secretService.checkDataSecret(secret)) {
+ if (secret == 0 || !secretService.checkDataSecret(secret).getData()) {
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret));
- }*/
+ }
} catch (Throwable e) {
log.error("璁剧疆榛樿鐨勫睘鎬х殑鍊奸敊璇�", e);
}
@@ -2535,11 +2564,11 @@
cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid());
cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath);
int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD));
- /*if(secret == 0 || !secretService.checkDataSecret(secret) ){
+ if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
String secretValue= String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret);
cbo.setAttributeValue(SECRET_FIELD,secretValue);
- }*/
+ }
if(rowData.getStatus().equals(CodeDefaultLC.DISABLE.getValue())){//鍋滅敤
cbo.setLcStatus(CodeDefaultLC.DISABLE.getValue());
}else if(rowData.getStatus().equals(CodeDefaultLC.EDITING.getValue())){//缂栬緫
@@ -2633,11 +2662,11 @@
cbo.setAttributeValue(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid());
cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath);
//cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
- /*int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD));
- if(secret == 0 || !secretService.checkDataSecret(secret) ){
+ int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD));
+ if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret));
- }*/
+ }
}else{
//姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰�
//cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath));
@@ -2690,10 +2719,10 @@
cbo.setAttributeValue(CODE_FULL_PATH_FILED,fullPath);
//cbo.setLcStatus(CodeDefaultLC.EDITING.getValue());
int secret = VciBaseUtil.getInt(cbo.getAttributeValue(SECRET_FIELD));
- /*if(secret == 0 || !secretService.checkDataSecret(secret) ){
+ if(secret == 0 || !secretService.checkDataSecret(secret).getData() ){
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret));
- }*/
+ }
}else{
//姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰�
//cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath));
@@ -2970,21 +2999,35 @@
* @param cboList 鏁版嵁鐨勫垪琛�
* @param errorMap 閿欒鐨勪俊鎭�
*/
- private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap){
+ private void batchCheckIdExistOnOrder(CodeClassifyTemplateVO templateVO,List<ClientBusinessObject> cboList,Map<String ,String> errorMap) throws Throwable{
List<String> existIds = new ArrayList<>();
+ String tableName ="";
+ try {
+ R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
+ if(r.getCode()!=200) {
+ throw new Throwable(r.getMsg());
+ }
+ BtmTypeVO btmTypeVO = r.getData();
+ if (btmTypeVO == null) {
+ throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷瀵硅薄锛�");
+ }
+ tableName = btmTypeVO.getTableName();
+ if (StringUtils.isBlank(tableName)) {
+ throw new Throwable("鏍规嵁涓氬姟绫诲瀷鏈煡璇㈠埌涓氬姟绫诲瀷鐩稿叧鑱旂殑琛�");
+ }
+ }catch (Throwable e){
+ throw e;
+ }
+ String finalTableName = tableName;
VciBaseUtil.switchCollectionForOracleIn(cboList).stream().forEach(cbos -> {
Map<String, String> conditionMap = new HashMap<>();
conditionMap.put("id", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])) + ")");
- R<BtmTypeVO> r= btmTypeClient.getDetail(templateVO.getBtmTypeId());
- BtmTypeVO btmTypeVO =r.getData();
- String tableName=btmTypeVO.getTableName();
-
StringBuffer sb=new StringBuffer();
sb.append(" select id from ");
- sb.append(tableName);
+ sb.append(finalTableName);
sb.append(" where 1=1 ");
- sb.append(" id in (");
+ sb.append(" and id in (");
sb.append(VciBaseUtil.toInSql(cbos.stream().map(s -> s.getId()).collect(Collectors.toSet()).toArray(new String[0])));
sb.append(")");
List<String> idList= commonsMapper.selectById(sb.toString());
--
Gitblit v1.9.3