diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsLawsEOService.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsLawsEOService.java index 9509383b..ce514f49 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsLawsEOService.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsLawsEOService.java @@ -36,6 +36,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import org.apache.commons.lang.StringUtils; +import org.json.JSONTokener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -117,48 +118,33 @@ public class ActSarItemsLawsEOService { // } Map attInfoMap = new HashMap<>(); - List jsonArray = new ArrayList<>(); - Object breakVal = null; - Object itemList = null; for (Map.Entry entry : standMap.entrySet()) { String field = entry.getKey().toUpperCase(); - Object value = entry.getValue(); - if (InitStandAttrUtil.queryFieldListLaws.contains(field)) { - if (value != null && value instanceof JSONArray) { - String valStr = String.valueOf(value); - List valueArr = JSONArray.parseArray(valStr,String.class); - if (valueArr != null && !valueArr.isEmpty()) { - String newValue = ""; - for (String val : valueArr) { - newValue += val + ","; - } - newValue = newValue.substring(0,newValue.length()-1); - value = newValue; + String result = ""; + if(StringUtils.isNotBlank(standMap.get(entry.getKey()).toString())){ + Object value= new JSONTokener(standMap.get(entry.getKey()).toString()).nextValue(); + if(value instanceof org.json.JSONArray){ + result = String.join(",",JSONObject.parseArray(value.toString(),String.class)); + }else { + if(!value.equals("null")){ + result =value.toString(); } } - attInfoMap.put(field,value); + } + if (InitStandAttrUtil.queryFieldListLaws.contains(field)) { + attInfoMap.put(field,result); } else { - createStandBaseField(sarLawsStandInfo,entry.getKey(),value); + createStandBaseField(sarLawsStandInfo,entry.getKey(),result); } } - //处理文件 - //此处需要处理之前的文件信息,防止文件丢失 -// attInfoMap = saveFileMsg(attInfoMap,sarStandardsInfoEO.getFileIds(),sarStandardsInfoEO.getTextStatus()); String resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue); sarLawsStandInfo.setSarStandAttrEOStr(resData); // 根据标准号判断数据是否已存在 - //2021年4月9日 此处检查当前是否存在standId String lawsNumber = ""; if(StringUtils.isNotBlank(sarLawsStandInfo.getLawsNumber()) && !"null".equals(sarLawsStandInfo.getLawsNumber())){ lawsNumber = sarLawsStandInfo.getLawsNumber(); } List lawsList = sarLawsStandInfoService.selectStandardsByStandNumber(lawsNumber); -// if (StringUtils.isBlank(sarStandardsInfoEO.getMenuId()) && "INLAND".equals(sarStandardsInfoEO.getStandType())) { -// sarStandardsInfoEO.setMenuId("64df1d5522bb49c09af2"); -// sarStandardsInfoEO.setCountry("CN"); -// } else if (StringUtils.isBlank(sarStandardsInfoEO.getMenuId()) && "FOREIGN".equals(sarStandardsInfoEO.getStandType())) { -// sarStandardsInfoEO.setMenuId("22179d54d4e640098e29"); -// } //此处判断是否是带入的标准 if(StringUtils.isNotBlank(sarLawsStandInfo.getId())) { SarLawsStandInfo query = new SarLawsStandInfo(); @@ -239,6 +225,19 @@ public class ActSarItemsLawsEOService { } } + private String getFieldsValue(Map standMap, String key){ + String str = ""; + Object json= new JSONTokener(standMap.get(key).toString()).nextValue(); + if(json instanceof org.json.JSONArray){ + str = String.join(",",JSONObject.parseArray(standMap.get(key).toString(),String.class)); + }else { + if(!json.equals("null")){ + str = standMap.get(key).toString(); + } + } + return str; + } + /*** * 标准法规入库流程中技术评估结果入库归档操作 * @param sarStandardsInfoEO diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java index 0cac71c7..4d6d8e86 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java @@ -51,6 +51,7 @@ import com.adc.da.slrs.sarUser.service.ITsUserService; import com.adc.da.slrs.sysInfo.service.SysInfoEOService; import com.adc.da.sys.constant.ValueStateEnum; import com.adc.da.sys.dao.DicTypeEODao; +import com.adc.da.sys.entity.DicTypeEO; import com.adc.da.sys.util.LoginUserUtil; import com.adc.da.util.UUIDUtils; import com.adc.da.utils.util.FieldConvertUtil; @@ -388,8 +389,18 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl sarlist) throws Exception { + //查询字典表,形成Hash映射提升速度 + List dicInfo = dicTypeEODao.getDicInfo("dic_type_code", "dic_type_name"); + Map dicMap = dicInfo.stream() + .filter(item-> !item.getDicTypeCode().isEmpty()) + .collect(Collectors.toMap(DicTypeEO::getDicTypeCode,DicTypeEO::getDicTypeName,(value1, value2 )->value2)); + for (SarLawsStandInfo row : sarlist) { attrInfoDetails(row); + row.setLawsSyqy(filterValue(dicMap,row.getLawsSyqy())); + row.setLawsSycx(filterValue(dicMap,row.getLawsSycx())); + row.setLawsLabel(filterValue(dicMap,row.getLawsLabel())); + row.setLawsYear(filterValue(dicMap,row.getLawsYear())); Map getAttrMap = row.getAttrInfoMap(); if (getAttrMap != null && getAttrMap.size() > 0) { for (Map.Entry entry : getAttrMap.entrySet()) { @@ -412,6 +423,19 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl dicMap,String value){ + List list = new ArrayList<>(); + if(StringUtils.isNotBlank(value)){ + String[] valArr = value.split(","); + for (String s : valArr) { + if (dicMap.containsKey(s)){ + list.add(dicMap.get(s)); + } + } + } + return String.join(",",list); + } + @Override public List getExportData(String exportType, String exportContent,String userId) throws Exception { SarLawsStandInfoPage page = new SarLawsStandInfoPage();