From dd3f57317edc84965849d3eb78bf0216dfd02206 Mon Sep 17 00:00:00 2001
From: wang1 <844966816@qq.com>
Date: 星期三, 14 六月 2023 14:57:42 +0800
Subject: [PATCH] 修复密码策略异常bug
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 158 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 100 insertions(+), 58 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index 282fdb8..8565672 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -8,6 +8,7 @@
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
+import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
import com.vci.ubcs.code.dto.CodeDeleteBatchDTO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
@@ -57,6 +58,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.Cache;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
@@ -327,6 +329,7 @@
*
* @param baseModelDTO 鏁版嵁浼犺緭瀵硅薄
*/
+ @Transactional
@Override
public void changeStatus(BaseModelDTO baseModelDTO) {
VciBaseUtil.alertNotNull(baseModelDTO, "鏁版嵁淇℃伅", baseModelDTO.getOid(), "涓婚敭", baseModelDTO.getBtmname(), "涓氬姟绫诲瀷", baseModelDTO.getLcStatus(), "鐩爣鐘舵��");
@@ -337,6 +340,14 @@
wrapper.eq("BTMNAME",baseModelDTO.getBtmname());
wrapper.in("OID",oids);
// TODO 寰呭畬鍠�
+ //鎻掍釜鐐� 涓氬姟绫诲瀷瀹屾垚鍚庨渶瑕佷慨鏀�
+// QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>();
+ List<BaseModel> baseModels = new ArrayList<>();
+ baseModels = selectByTypeAndOid(baseModelDTO.getBtmname(), baseModelDTO.getOid());
+ if(baseModels.size() == 0){
+ throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�");
+ }
+ // 寰呭畬鍠�
List<BtmTypeVO> cboList = null; // btmTypeClient.selectList(wrapper);
//杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈�
// Map<String, String> conditionMap = new HashMap<>();
@@ -349,6 +360,9 @@
// List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
// 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄�
if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
+// String referTable = listR.getData().get(0).getTableName();
+ commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),VciBaseUtil.toInSql(baseModelDTO.getOid()));
// BatchCBO batchCBO = new BatchCBO();
// batchCBO.getDeleteCbos().addAll(cboList);
@@ -357,8 +371,16 @@
//boService.persistenceBatch(batchCBO);
} else {
+ for (BaseModel baseModel : baseModels) {
+ baseModel.setLcStatus(baseModelDTO.getLcStatus());
+ }
+ updateBatchByBaseModel(baseModelDTO.getBtmname(),baseModels);
// lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
}
+ for (CodeAllCode codeCbo : codeCbos) {
+ codeCbo.setLcStatus(baseModelDTO.getLcStatus());
+ }
+ codeAllCodeService.updateBatchById(codeCbos);
// lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
}
@@ -625,9 +647,10 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
- //琛ㄩ渶瑕佹敼
// final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "};
- final String[] sql = {"select count(*) from pl_code_wupin t where 1 = 1 "};
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid()));
+// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
+ final String[] sql = {"select count(*) from "+ listR.getData().get(0).getTableName() +" t where 1 = 1 "};
conditionMap.forEach((key, value) -> {
sql[0] += " and " + key + " = " + value;
});
@@ -1408,31 +1431,45 @@
DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
List<Map<String, String>> dataList = new ArrayList<>();
-// if (!CollectionUtils.isEmpty(maps)) {
-// maps.stream().forEach(map -> {
-// Map<String, String> data = new HashMap<>();
-// map.forEach((key, value) -> {
-// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
-// });
-// dataList.add(data);
-// });
-// }
-// dataGrid.setData(dataList);
if (!CollectionUtils.isEmpty(maps)) {
- wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false);
maps.stream().forEach(map -> {
Map<String, String> data = new HashMap<>();
+ for (String s : map.keySet()) {
+ data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+ }
// map.forEach((key, value) -> {
// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
// });
- for (String s : map.keySet()) {
- data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
- }
dataList.add(data);
});
- dataGrid.setData(dataList);
- dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
+ wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), false);
+// maps.stream().forEach(map -> {
+// Map<String, String> data = new HashMap<>();
+//// map.forEach((key, value) -> {
+//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+//// });
+// for (String s : map.keySet()) {
+// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+// }
+// dataList.add(data);
+// });
}
+// dataGrid.setData(dataList);
+// if (!CollectionUtils.isEmpty(maps)) {
+// wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false);
+// maps.stream().forEach(map -> {
+// Map<String, String> data = new HashMap<>();
+//// map.forEach((key, value) -> {
+//// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
+//// });
+// for (String s : map.keySet()) {
+// data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
+// }
+// dataList.add(data);
+// });
+ dataGrid.setData(dataList);
+ dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString()));
+// }
return dataGrid;
}
@@ -1708,9 +1745,7 @@
}
whereSql += " and ( t.secretGrade <= " + userSecret + ") ";
}
- //瑕佹敼锛岃〃鏄庤幏鍙栨湁闂
// String tableName = VciBaseUtil.getTableName(btmType);
-// String tableName = "pl_code_wupin";
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
// String referTable = VciBaseUtil.getTableName(referVO.getReferType());
String tableName = listR.getData().get(0).getTableName();
@@ -2158,15 +2193,18 @@
//pageHelper.addDefaultDesc("createTime");
pageHelper.addDefaultDesc("id");
if (!classifyService.checkHasChild(codeClassifyOid)) {
- conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
+ conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
} else {
- //琛ㄩ渶瑕佹敼
// conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
- conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
- "' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
+
+ conditionMap.put("t."+CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from "+
+ btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY))
+ .getData().get(0).getTableName() +" where lcstatus='" + FrameWorkDefaultValueConstant
+ .FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid +
+ "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
}
- conditionMap.put("lastr", "1");
- conditionMap.put("lastv", "1");
+ conditionMap.put("t.lastr", "1");
+ conditionMap.put("t.lastv", "1");
return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
// List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList());
// //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛�
@@ -3002,7 +3040,7 @@
* @return 澶勭悊鎴愬姛鏁版嵁鏉℃暟
*/
@Override
- public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception {
+ public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
if(listR.getData().size() == 0){
@@ -3028,7 +3066,7 @@
* @return 鏌ヨ鍑虹殑鏁版嵁
*/
@Override
- public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException {
+ public List<BaseModel> selectByTypeAndOid(String btmType, String oids) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
@@ -3041,38 +3079,42 @@
List<BaseModel> baseModels = new ArrayList<>();
//灏嗘煡璇㈠埌鐨勬暟鎹浆鎹负basemodel锛屼娇鐢ㄧ殑鍙嶅皠鏂瑰紡鏉ヨ繘琛屽垱寤虹殑
- for (Map map : maps) {
- Object obj = BaseModel.class.newInstance();
- BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
- PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
- for (PropertyDescriptor property : propertyDescriptors) {
- Method setter = property.getWriteMethod();
- if (setter != null) {
- //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
- if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
- LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
- ZoneId zoneId = ZoneId.systemDefault();
- ZonedDateTime zdt = localDateTime.atZone(zoneId);
- Date date = Date.from(zdt.toInstant());
- setter.invoke(obj,date);
- map.remove(property.getName().toUpperCase());
- } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
- else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
- && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){
- setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue());
- map.remove(property.getName().toUpperCase());
- }else if(map.get(property.getName().toUpperCase()) != null){
- setter.invoke(obj, map.get(property.getName().toUpperCase()));
- map.remove(property.getName().toUpperCase());
+ try{
+ for (Map map : maps) {
+ Object obj = BaseModel.class.newInstance();
+ BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
+ PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
+ for (PropertyDescriptor property : propertyDescriptors) {
+ Method setter = property.getWriteMethod();
+ if (setter != null) {
+ //oracle鐨勬椂闂翠负TIMESTAMP鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚data锛屽惁鍒欏皢鎶ラ敊
+ if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){
+ LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime();
+ ZoneId zoneId = ZoneId.systemDefault();
+ ZonedDateTime zdt = localDateTime.atZone(zoneId);
+ Date date = Date.from(zdt.toInstant());
+ setter.invoke(obj,date);
+ map.remove(property.getName().toUpperCase());
+ } //oracle鐨勬暟瀛椾负BigDecimal鐨勶紝闇�瑕佽繘琛岃浆鎹㈡垚Integer锛屽惁鍒欏皢鎶ラ敊
+ else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal
+ && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){
+ setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue());
+ map.remove(property.getName().toUpperCase());
+ }else if(map.get(property.getName().toUpperCase()) != null){
+ setter.invoke(obj, map.get(property.getName().toUpperCase()));
+ map.remove(property.getName().toUpperCase());
+ }
}
}
- }
- for (Object key : map.keySet()) {
- map.put(key,String.valueOf(map.get(key)));
- }
+ for (Object key : map.keySet()) {
+ map.put(key,String.valueOf(map.get(key)));
+ }
- ((BaseModel) obj).setData(map);
- baseModels.add((BaseModel) obj);
+ ((BaseModel) obj).setData(map);
+ baseModels.add((BaseModel) obj);
+ }
+ }catch (Exception e){
+ throw new VciBaseException("鏌ヨ澶辫触锛�" + e.getMessage());
}
return baseModels;
}
@@ -3148,7 +3190,7 @@
* @return 澶勭悊鐘舵��
*/
@Override
- public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception {
+ public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) {
//浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType));
if(listR.getData().size() == 0){
--
Gitblit v1.9.3