From f879ddd80a2bd267a0a575ef03f76d3ec2ae1504 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 04 一月 2024 11:42:22 +0800 Subject: [PATCH] bug列表269:集成日志查询bug修改。 270:关键属性校验,去掉多线程之后请求响应非常慢(之前报错线程阻塞的bug改成单线程导致非常慢,现在又改回ForJoinPool方式限制线程生成数量实现多线程并行,提升执行效率)。 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 75 +++++++++++++++++++++++++++++-------- 1 files changed, 59 insertions(+), 16 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 1e18849..9ea8b4d 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 @@ -68,6 +68,7 @@ import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.log.annotation.OperateLog; import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; @@ -87,6 +88,8 @@ import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; @@ -453,8 +456,14 @@ throw new VciBaseException("鏇存柊鏁版嵁鍑洪敊锛岄噸璇曪紒"+r.getMsg()); } } + // 鍒氬ソ椤哄簭鏄竴鑷寸殑锛屾墍浠ョ洿鎺ユ寜鐓odeallcode鐨勯『搴忔潵鎷夸笟鍔℃暟鎹� + int i = -1; for (CodeAllCode codeCbo : codeCbos) { codeCbo.setLcStatus(baseModelDTO.getLcStatus()); + // 濡傛灉鏄洖鏀讹紝灏遍渶瑕佸皢涓氬姟鏁版嵁瀛樺偍鍒扮爜鍊艰〃涓� + if(baseModelDTO.getLcStatus().equals(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_TAKEBACK)){ + codeCbo.setBusinessData(JSON.toJSONString(baseModels.get(++i))); + } } codeAllCodeService.updateBatchById(codeCbos); @@ -505,6 +514,7 @@ CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid()); + final BladeUser user = AuthUtil.getUser(); //1.鍒ゆ柇瑙勫垯涓櫎浜嗘祦姘寸爜娈碉紝鏄惁鏈夊叾浠栫爜娈� checkSecValueOnOrder(ruleVO, orderDTO); //2.鍒ゆ柇蹇呰緭椤� @@ -535,13 +545,13 @@ //cbo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));銆� if(authUser) { // 瑕佹眰鏄剧ず璐﹀彿锛屾墍浠ュ仛浜嗘洿鏀� - cbo.setCreator(String.valueOf(AuthUtil.getUser().getAccount())); - cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount())); + cbo.setCreator(String.valueOf(user.getAccount())); + cbo.setLastModifier(String.valueOf(user.getAccount())); }else{ cbo.setCreator(orderDTO.getCreator()); cbo.setLastModifier(orderDTO.getLastModifier()); } - cbo.setTenantId(AuthUtil.getTenantId()); + cbo.setTenantId(user.getTenantId()); if(StringUtils.isNotBlank(orderDTO.getLcStatus())||StringUtils.isNotBlank(orderDTO.getData().get("lcStatus"))){ cbo.setLcStatus(StringUtils.isNotBlank(orderDTO.getLcStatus())?orderDTO.getLcStatus():orderDTO.getData().get("lcStatus")); } @@ -554,7 +564,7 @@ cbo.setDescription(orderDTO.getDescription()); cboList.add(cbo); - List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), cboList); + List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), cboList,user); batchSaveSelectChar(templateVO, cboList); return codeList.size() > 0 ? codeList.get(0) : ""; @@ -1164,10 +1174,7 @@ "order by to_char(CREATETIME, 'mm')"; //鏌ヨ鍑洪渶瑕佸鐞嗙殑鏁版嵁 List<Map> maps = commonsMapper.selectBySql(sql); - if(maps.size() == 0){ - throw new ServiceException("浼犲叆绫诲瀷["+ datum.getName() + ":" + - datum.getId() +"]鏈煡鍒扮浉鍏崇粺璁℃暟鎹紝璇风‘璁�!!!!"); - } + //褰撳勾姣忔湀鏈堜唤涔嬪墠涔嬪拰 List<Integer> monthCount = new ArrayList<>(12); //褰撳勾姣忔湀鐨勬湀浠芥暟鎹� @@ -1175,12 +1182,16 @@ //鑾峰彇褰撳墠鏈堢殑鏁板瓧 Calendar instance = Calendar.getInstance(); int nowmonth = instance.get(Calendar.MONTH) + 1; + if(maps.size() == 0){ + nowmonth = 0; + } //浠�1鍒�12鏈堣繘琛屽鐞� for (Integer i = 1; i <= 12; i++) { //褰撳墠鏈堝悗鎵�鏈夋暟鎹缃负0 if(i>nowmonth){ monthCount.add(0); month.add(0); + continue; } //褰撳墠鏈堜唤涔嬪墠涔嬪拰 Integer count = 0; @@ -2585,12 +2596,24 @@ } DateConverter dateConverter = new DateConverter(); if (VciFieldTypeEnum.VTDateTime.equals(fieldTypeEnum)) { - //瀹為檯涓婏紝鏁版嵁搴撻兘鏄痶imestamp鐨勭被鍨�. - dateConverter.setAsText(value); - return "to_date('" + dateConverter.getAsText(VciDateUtil.DateTimeFormat) + "','" + DATETIME_FORMAT + "')"; + //瀹為檯涓婏紝鏁版嵁搴撻兘鏄痶imestamp鐨勭被鍨�. TODO:铏界劧娌¤兘瑙e喅鏌ヨ鏃ユ湡鐨勯棶棰橈紝浣嗘槸鑳芥殏鏃惰В鍐虫姤閿欓棶棰� + if(value.contains("*")){ + value = value.replace("*","%"); + return "'" + value + "'"; + }else{ + value = value.replace("*",""); + dateConverter.setAsText(value); + return "to_date('" + dateConverter.getAsText(VciDateUtil.DateTimeFormat) + "','" + DATETIME_FORMAT + "')"; + } } else if (VciFieldTypeEnum.VTDate.equals(fieldTypeEnum)) { - dateConverter.setAsText(value); - return "to_date('" + dateConverter.getAsText(VciDateUtil.DateFormat) + "','" + DATE_FORMAT + "')"; + if(value.contains("*")){ + value = value.replace("*","%"); + return "'" + value + "'"; + }else { + value = value.replace("*",""); + dateConverter.setAsText(value); + return "to_date('" + dateConverter.getAsText(VciDateUtil.DateFormat) + "','" + DATE_FORMAT + "')"; + } } else if (VciFieldTypeEnum.VTDouble.equals(fieldTypeEnum) || VciFieldTypeEnum.VTLong.equals(fieldTypeEnum) || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) { @@ -2957,7 +2980,17 @@ } conditionMap.put("t.lastr", "1"); conditionMap.put("t.lastv", "1"); - return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper); + DataGrid<Map<String, String>> mapDataGrid = queryGrid(btmTypeId, templateVO, conditionMap, pageHelper); + //澶勭悊杩斿洖鏁版嵁涓庢ā鏉挎暟鎹厤缃殑瀛楁涓嶄竴鏍烽棶棰� + templateVO.getAttributes().stream().forEach(e->{ + for (Map<String, String> datum : mapDataGrid.getData()) { + if(datum.containsKey(e.getId().toLowerCase()) && !datum.containsKey(e.getId())){ + datum.put(e.getId(),datum.get(e.getId().toLowerCase())); + datum.remove(e.getId().toLowerCase()); + } + } + }); + return mapDataGrid; // List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList()); // //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛� // List<String> finalSelectFieldList = selectFieldList; @@ -3400,6 +3433,16 @@ dataList.add(cbo); wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), true); R<List<Map<String, String>>> result = R.data(Collections.singletonList(cbo)); + //澶勭悊杩斿洖鏁版嵁涓庢ā鏉挎暟鎹厤缃殑瀛楁涓嶄竴鏍烽棶棰� + templateVO.getAttributes().stream().forEach(e->{ + for (Map<String, String> datum : result.getData()) { + if(datum.containsKey(e.getId().toLowerCase()) && !datum.containsKey(e.getId())){ + datum.put(e.getId(),datum.get(e.getId().toLowerCase())); + datum.remove(e.getId().toLowerCase()); + } + } + }); + //鎴戜滑瑕佺湅鏄惁涓嶆槸鍗囩増鐨勶紝鍗囩増鐨勮瘽锛岄渶瑕佸姣斾笉鐩哥瓑鐨勫睘鎬� /* String copy = cbo.get("copyfromversion"); // if (StringUtils.isBlank(copy)) { @@ -4174,7 +4217,7 @@ bo.setFirstV("1"); bo.setLastV("1"); bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId()); - bo.setVersionRule("".equals(listR.getData().get(0).getVersionRule())?"0":listR.getData().get(0).getVersionRule()); + bo.setVersionRule("".equals(listR.getData().get(0).getVersionRule())?"1":listR.getData().get(0).getVersionRule()); if (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())) { R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId().toLowerCase())); @@ -4195,7 +4238,7 @@ bo.setId(""); bo.setName(""); bo.setDescription(""); - bo.setOwner("1"); + bo.setOwner(AuthUtil.getUser().getUserId().toString()); // bo.setCheckinby(userName); bo.setCopyFromVersion(""); // this.initTypeAttributeValue(bo,btmTypeVO); -- Gitblit v1.9.3