diff --git a/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java b/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java index 70d5403e..e559943a 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java +++ b/adc-da-activiti/src/main/java/com/adc/da/FeignClient/workFlowFeignClient.java @@ -399,4 +399,7 @@ public interface workFlowFeignClient { // @RequestMapping(value = "/bat-wkflow/findProcessNameByPrcNum",method = RequestMethod.POST) // List findProcessNameByPrcNum(@RequestBody String taskId); + + @RequestMapping(value = "/bat-wkflow/datas/bus-process-new/everyDayTenOlock",method = RequestMethod.GET) + List everyDayTenOlock(); } diff --git a/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java b/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java index 9051d48a..fd53ccc8 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java +++ b/adc-da-activiti/src/main/java/com/adc/da/Timer/ProcessTimer.java @@ -1,10 +1,17 @@ package com.adc.da.Timer; import com.adc.da.FeignClient.workFlowFeignClient; +import com.adc.da.common.BusMes; import com.adc.da.common.BusProcessName; +import com.adc.da.common.BusProcessNew; +import com.adc.da.common.Wrapper; +import com.adc.da.http.ResponseMessage; import com.adc.da.sys.common.EmailUtils; import com.adc.da.sys.entity.UserEO; import com.adc.da.sys.service.IUserEOService; +import com.adc.da.workFlow.controller.WorkFlowController; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; @@ -13,6 +20,7 @@ import org.springframework.stereotype.Component; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -34,6 +42,9 @@ public class ProcessTimer { @Autowired private IUserEOService userEOService; + @Autowired + private WorkFlowController workFlowController; + /*** * @Description: 自动催办,任务截至时间前3天开始每天催办 * @Author: yangxuenan @@ -46,14 +57,14 @@ public class ProcessTimer { // @Scheduled(cron = "0/20 * * * * ?") public void urging() { List busProcessNames = workFlowFeignClient.queryBusProcessNameForEnd(null); - if(null != busProcessNames && 0 < busProcessNames.size()){ - for (BusProcessName busProcessName : busProcessNames){ + if (null != busProcessNames && 0 < busProcessNames.size()) { + for (BusProcessName busProcessName : busProcessNames) { String type = busProcessName.getPrcType(); Integer typeInt = 99; - if (StringUtils.isNotEmpty(type)){ + if (StringUtils.isNotEmpty(type)) { typeInt = Integer.valueOf(type); } - type = chooseType(typeInt,type); + type = chooseType(typeInt, type); UserEO userEO = userEOService.selectByPrimaryKey(busProcessName.getCreatUserName()); String[] array = userEO.getEmail().split(","); @@ -64,30 +75,30 @@ public class ProcessTimer { try { dateTime = simpleDateFormat.parse(overTime); Date now = new Date(); - long daysBetween = (dateTime.getTime()-now.getTime()+1000000)/(60*60*24*1000); + long daysBetween = (dateTime.getTime() - now.getTime() + 1000000) / (60 * 60 * 24 * 1000); num = Integer.valueOf(String.valueOf(daysBetween)); } catch (ParseException e) { SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); try { dateTime = simpleDateFormat1.parse(overTime); Date now = new Date(); - long daysBetween = (dateTime.getTime()-now.getTime()+1000000)/(60*60*24*1000); + long daysBetween = (dateTime.getTime() - now.getTime() + 1000000) / (60 * 60 * 24 * 1000); num = Integer.valueOf(String.valueOf(daysBetween)); } catch (ParseException e1) { e.getMessage(); } } - String msg = "您好,["+ busProcessName.getPrcNum() +"]-["+ busProcessName.getPrcName() +"] 您有待办任务未及时办理,距离截至日期还有["+ String.valueOf(num) +"]天 请及时办理,请登录全球标准法规管理系统 ( http://39.98.140.126:10005/#/login ) 办理:链接 ( http://39.98.140.126:10005/#/processCenter?tabsName=ProcessCenter ) 。\n" + + String msg = "您好,[" + busProcessName.getPrcNum() + "]-[" + busProcessName.getPrcName() + "] 您有待办任务未及时办理,距离截至日期还有[" + String.valueOf(num) + "]天 请及时办理,请登录全球标准法规管理系统 ( http://39.98.140.126:10005/#/login ) 办理:链接 ( http://39.98.140.126:10005/#/processCenter?tabsName=ProcessCenter ) 。\n" + " ——来自 全球标准法规管理系统"; - String title = "GSRM——【待办任务】["+ type +"] 您有未完成的待办任务"; - mailUtil.sendMsgFeign(array,title,msg); + String title = "GSRM——【待办任务】[" + type + "] 您有未完成的待办任务"; + mailUtil.sendMsgFeign(array, title, msg); } } } - public String chooseType(Integer typeInt,String type) { + public String chooseType(Integer typeInt, String type) { switch (typeInt) { case 1: type = "法规入库及评估流程"; @@ -151,4 +162,31 @@ public class ProcessTimer { } return type; } + + @Scheduled(cron = "0 0 10 * * ? ")//每天十点执行 +// @Scheduled(cron = "*/20 * * * * ? ")//每天十点执行 + public void everyDayTenOlockScan() { + List busProcessNews=new ArrayList<>(); + busProcessNews=workFlowFeignClient.everyDayTenOlock(); + if (!busProcessNews.isEmpty()){ + for (BusProcessNew bus:busProcessNews) { + JSONObject jsonObject= JSON.parseObject(bus.getMesg()); + jsonObject.put("auto","1"); + ResponseMessage responseMessage = workFlowController.startProcessNew("19",jsonObject.getString("revisionId"),null); + BusMes busMes=new BusMes(); + busMes.setTaskIds(String.valueOf(responseMessage.getData())); + busMes.setJson(jsonObject.toJSONString()); + busMes.setUserId(jsonObject.getString("revisionId")); + Wrapper wrapper=workFlowFeignClient.completeTaskByUserId(busMes); + System.out.println("dasda"); + } + } + } + + + public static void main(String[]args){ + ProcessTimer processTimer = new ProcessTimer(); + processTimer.everyDayTenOlockScan(); + } + } diff --git a/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java b/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java index 269927bf..d7ee90bb 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java +++ b/adc-da-activiti/src/main/java/com/adc/da/common/ActDefineStartMap.java @@ -26,10 +26,26 @@ public class ActDefineStartMap { map.put("9","standardReadWkflow"); map.put("10","itemlistvalidationprocessKey"); + // 政策入库 + map.put("laws1","lawsLibraryWkflow"); //政策征求意见, 认证重点法规/政策 流程 map.put("laws2","PolicyCommentProcessWorkFlow"); map.put("laws3","KCSTPReviewProcessWorkFlow"); + //张超然 + map.put("20","StandardApplyMeetProcess"); + map.put("21","StandardMeetProcess"); + map.put("22","StandardAfterMeetProcess"); + + //李奥 + map.put("14","ParticipateRevisionFiling"); + map.put("15","JoinStandardFiling"); + map.put("16","RecommendedApprovalleo"); + //孔维一 + map.put("17","policyResearchGroupEnrollment"); + map.put("18","policyResearchGroupAttendMeeting"); + map.put("19","policyResearchGroupAfterMeeting"); + return map.get(type); } } diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsLawsEOController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsLawsEOController.java new file mode 100644 index 00000000..db5475cf --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/ActSarItemsLawsEOController.java @@ -0,0 +1,39 @@ +package com.adc.da.workFlow.controller; + + +import com.adc.da.base.web.BaseController; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarStandardsInfo.entity.ActSarItemsEO; +import com.adc.da.workFlow.service.ActSarItemsEOService; +import com.adc.da.workFlow.service.ActSarItemsLawsEOService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/${restPath}/lawss/actSarItemsLaws") +@Api(description = "|ActSarItemsEO|") +public class ActSarItemsLawsEOController extends BaseController { + + @Autowired + private ActSarItemsLawsEOService actSarItemsEOService; + +// private static final Logger logger = LoggerFactory.getLogger(AttFileEOController.class); + + @ApiOperation(value = "|SarLawsStandInfo|政策入库流程") + @PostMapping("/processCreateLaws") + public ResponseMessage processCreateLaws(String infoJson) throws Exception { + if (StringUtils.isNotBlank(infoJson)) { + actSarItemsEOService.processCreateLaws(infoJson); + return Result.success("入库成功"); + } else { + return Result.error("传入数据json不能为空"); + } + } +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java index d0efa9b9..2dd91c46 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/WorkFlowController.java @@ -122,6 +122,16 @@ public class WorkFlowController { } } + @ApiOperation(value = "定时任务启动流程-以流程定义id") + @GetMapping("/startProcessNew") + public ResponseMessage startProcessNew(@RequestParam("type") String type, @RequestParam(value="userId",required = false) String userId, @RequestParam(value="id",required = false) String id){ + if(StringUtils.isNotBlank(type)){ + return this.activiti_define_start(ActDefineStartMap.actDefineStartMap(type), userId,id); + }else { + return null; + } + } + @ApiOperation(value = "待办任务详情") @GetMapping("/todotask") public PageInfo todotask(@RequestParam("userId") String userId, @RequestParam("pId") String pId){ diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ActSarItemsEODao.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ActSarItemsEODao.java index 3d834f4a..844d2c3d 100644 --- a/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ActSarItemsEODao.java +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/dao/ActSarItemsEODao.java @@ -1,9 +1,11 @@ package com.adc.da.workFlow.dao; import com.adc.da.slrs.sarStandardsInfo.entity.ActSarItemsEO; +import org.springframework.stereotype.Repository; import java.util.List; +@Repository public interface ActSarItemsEODao { List queryByPage(ActSarItemsEO actSarItemsEO); 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 new file mode 100644 index 00000000..9a56387e --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/service/ActSarItemsLawsEOService.java @@ -0,0 +1,918 @@ +package com.adc.da.workFlow.service; + +import com.adc.da.common.PropertyTypeEnum; +import com.adc.da.common.SarConformStateEnum; +import com.adc.da.common.SarStateColorEnum; +import com.adc.da.common.SarTypeEnum; +import com.adc.da.login.util.UserUtils; +import com.adc.da.slrs.SarCompResAssess.entity.SarCompResAssess; +import com.adc.da.slrs.SarCompResAssess.service.ISarCompResAssessService; +import com.adc.da.slrs.SarCompStatusInfo.dao.SarCompStatusInfoDao; +import com.adc.da.slrs.SarCompStatusInfo.entity.SarCompStatusInfo; +import com.adc.da.slrs.SarFileSplitItems.entity.SarFileSplitItems; +import com.adc.da.slrs.SarFileSplitItems.service.ISarFileSplitItemsService; +import com.adc.da.slrs.SarStandItemVal.dao.SarStandItemValDao; +import com.adc.da.slrs.SarStandItemVal.entity.SarStandItemVal; +import com.adc.da.slrs.sarLawsAttrInfo.dao.SarLawsAttrInfoDao; +import com.adc.da.slrs.sarLawsAttrInfo.service.ISarLawsAttrInfoService; +import com.adc.da.slrs.sarLawsItemVal.dao.SarLawsItemValDao; +import com.adc.da.slrs.sarLawsItems.dao.SarLawsItemsDao; +import com.adc.da.slrs.sarLawsItems.entity.SarLawsItems; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; +import com.adc.da.slrs.sarStandAttrInfo.service.ISarStandAttrInfoService; +import com.adc.da.slrs.sarStandItems.dao.SarStandItemsDao; +import com.adc.da.slrs.sarStandItems.entity.SarStandItems; +import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; +import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; +import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService; +import com.adc.da.slrs.sysInfo.service.SysInfoEOService; +import com.adc.da.sys.constant.ValueStateEnum; +import com.adc.da.util.UUIDUtils; +import com.adc.da.utils.util.InitStandAttrUtil; +import com.adc.da.workFlow.dao.ActSarItemsEODao; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.serializer.SerializerFeature; +import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.*; + +@Service("actSarItemsLawsEOService") +@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class) +public class ActSarItemsLawsEOService { + + private static final Logger logger = LoggerFactory.getLogger(ActSarItemsLawsEOService.class); + + @Autowired + private ActSarItemsEODao actSarItemsEODao; + + @Autowired + private SarLawsItemsDao sarLawsItemsDao; + + @Autowired + private SysInfoEOService sysInfoEOService; + + @Autowired + private ISarLawsStandInfoService sarLawsStandInfoService; + + @Autowired + private ISarLawsAttrInfoService iSarLawsAttrInfoService; + + @Autowired + private ISarUpdLogService sarUpdLogEOService; + + @Autowired + private SarCompStatusInfoDao sarCompStatusInfoEODao; + + @Autowired + private ISarCompResAssessService sarCompResAssessEOService; + + @Autowired + private ISarFileSplitItemsService sarFileSplitItemsEOService; + + @Autowired + private SarLawsItemValDao sarLawsItemValDao; + + + @Value("${elas.flag}") + private boolean elasflag; + + /** + * 标准解读流程入库" + * @param standJson + * @throws Exception + */ + public void createStandardRead(String standJson) throws Exception{ + JSONObject object = JSONObject.parseObject(standJson); + String fileName = object.getString("fileName"); + String fileType = object.getString("fileType"); + String creationTime = object.getString("creationTime"); + String creationUser = object.getString("creationUser"); + String standId = object.getString("standId"); + //数组去重 + JSONArray responUserList1 = object.getJSONArray("itemList"); + for (Object obj:responUserList1) { + JSONObject object1 = (JSONObject) obj; + JSONArray preResponUserList = object1.getJSONArray("zxUserId"); + String oldNumber = object1.getString("oldNumber"); + String itemsNum = object1.getString("itemsNum"); + String itemsName = object1.getString("itemsName"); + String itemsTitle = object1.getString("itemsTitle"); + String applyArcticId = object1.getString("applyArcticId"); + String applyArctic = object1.getString("applyArctic"); + String changePoint = object1.getString("changePoint"); + String technicalRequir = object1.getString("technicalRequir"); + String onlineData = object1.getString("onlineData"); + String newData = object1.getString("newData"); + String complianceRequir = object1.getString("complianceRequir"); + String complianceState = object1.getString("complianceState"); + } + } + + /*** + * @Description: 国内外标准流程入库" + * @Author: yangxuenan + * @Date: 2020/12/7 13:48 + * @Param: [standJson] + * @Return: void + */ + public void processCreateLaws(String standJson) throws Exception{ + Map standMap = new HashMap(); + standMap = JSONObject.parseObject(standJson); + if (standMap != null && !standMap.isEmpty()) { + String prcNum = String.valueOf(standMap.get("prcNum")); + String prcName = String.valueOf(standMap.get("prcName")); + String standType = String.valueOf(standMap.get("standType")); +// String isJudge = String.valueOf(standMap.get("ifIn")); //是否经过技术评估 + SarLawsStandInfo sarLawsStandInfo = new SarLawsStandInfo(); +// if(standMap.containsKey("standId")) { +// if (standMap.get("standId") != null && !standMap.get("standId").toString().equals("")) { +// String resId = standMap.get("standId").toString(); +// //此处说明是带入的形式 +// sarStandardsInfoEO.setId(resId); +// SarCompResAssess assessInfoByResId = sarCompResAssessEOService.ssessInfoByResId(resId); +// if (assessInfoByResId != null) { +// assessInfoByResId.setProcessState("2"); +// sarCompResAssessEOService.updateByPrimaryKeySelective(assessInfoByResId); +// } +// } +// } + + 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; + } + } + attInfoMap.put(field,value); + } else { + createStandBaseField(sarLawsStandInfo,entry.getKey(),value); + } + } + //处理文件 + //此处需要处理之前的文件信息,防止文件丢失 +// 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(); + query.setId(sarLawsStandInfo.getId()); + sarLawsStandInfoService.attrInfoDetails(query); + Map attrInfoMap = query.getAttrInfoMap(); + if(attInfoMap!=null && !attInfoMap.isEmpty()){ + updateStandFileFieldData(attInfoMap,attrInfoMap); + resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue); + sarLawsStandInfo.setSarStandAttrEOStr(resData); + } + // 查询原相关流程 + String relatePro = iSarLawsAttrInfoService.selectFieldValByLawsId("XGLC",sarLawsStandInfo.getId()); + if (StringUtils.isNotBlank(relatePro)) { + String[] processSplit = relatePro.split(","); + Set processSet = new HashSet<>(); + for(String sData:processSplit){ + processSet.add(sData); + } + processSet.add(prcNum); + relatePro = StringUtils.join(processSet.toArray(), ","); + } else { + relatePro = prcNum; + } + // 编辑标准 + sarLawsStandInfoService.updateSarLawsStandInfo(sarLawsStandInfo); + // 编辑相关流程 + iSarLawsAttrInfoService.updateLawsInfo(sarLawsStandInfo.getId(),"XGLC",relatePro); + String content = "新增一条相关流程:" +prcName+" "+prcNum; + sarUpdLogEOService.createBaseLog(sarLawsStandInfo.getId(),standType+"_STAND",content); + }else if (lawsList != null && !lawsList.isEmpty()) {//Id不存在,但是标准号存在的情况 + String standId = lawsList.get(0).getId(); + SarLawsStandInfo query = new SarLawsStandInfo(); + query.setId(standId); + sarLawsStandInfoService.attrInfoDetails(query); + Map attrInfoMap = query.getAttrInfoMap(); + if(attInfoMap!=null && !attInfoMap.isEmpty()){ + updateStandFileFieldData(attInfoMap,attrInfoMap); + resData = JSON.toJSONString(attInfoMap, SerializerFeature.WriteMapNullValue); + sarLawsStandInfo.setSarStandAttrEOStr(resData); + } + // 查询原相关流程 + String relatePro = iSarLawsAttrInfoService.selectFieldValByLawsId("XGLC",standId); + if (StringUtils.isNotBlank(relatePro)) { + String[] processSplit = relatePro.split(","); + Set processSet = new HashSet<>(); + for(String sData:processSplit){ + processSet.add(sData); + } + processSet.add(prcNum); + relatePro = StringUtils.join(processSet.toArray(), ","); + } else { + relatePro = prcNum; + } + // 编辑标准 + sarLawsStandInfo.setId(standId); + sarLawsStandInfoService.updateSarLawsStandInfo(sarLawsStandInfo); + // 编辑相关流程 + iSarLawsAttrInfoService.updateLawsInfo(standId,"XGLC",relatePro); + String content = "新增一条相关流程:" +prcName+" "+prcNum; + sarUpdLogEOService.createBaseLog(standId,standType+"_STAND",content); + } else {//标准号、ID都不存在的情况 + // 新增方法 + sarLawsStandInfoService.createSarStandardsInfo(sarLawsStandInfo); + // 编辑相关流程 + iSarLawsAttrInfoService.updateLawsInfo(sarLawsStandInfo.getId(),"XGLC",prcNum); + } + List allItems = new ArrayList<>(); + //开始处理条款数据,从去重后的结果中直接处理即可 +// if(itemData!=null && !itemData.isEmpty()){ +// // allItems = +// saveStandItemsData(itemData, sarStandardsInfoEO); +// } + //技术评估结果入库 重构技术评估结果入库内容 +// if ("0".equals(isJudge)) { +// saveCompStatusInfo(sarStandardsInfoEO,breakVal,allItems,prcNum); +// } + } + } + + /*** + * 标准法规入库流程中技术评估结果入库归档操作 + * @param sarStandardsInfoEO + * @param allItems + * @param prcNum + */ + public void saveCompStatusInfo (SarStandardsInfo sarStandardsInfoEO,Object taskBreak,List allItems,String prcNum) throws Exception { + //首先将入库的标准条款通过之前的拆分库ID转换成入库后的条款的对应关系 + Map itemConvertDataMap = new HashMap<>(); + if(allItems!=null && !allItems.isEmpty()){ + for(SarStandItems itemsEO:allItems){ + itemConvertDataMap.put(itemsEO.getOldId(),itemsEO.getId()); + } + } + //获取本次入库的标准ID和类型 + String standId = sarStandardsInfoEO.getId();//标准ID + //主要时区分国内、国外 + String sarType = sarStandardsInfoEO.getStandType()+"_STAND"; + //判断填写表单是哦服存在 + if(taskBreak!=null){ + List compStatusInfoEOS = new ArrayList<>(); + //解析表单数据 + String compResultStr = String.valueOf(taskBreak); + List jsonArray = JSONArray.parseArray(compResultStr, String.class); + //判断数据是否正常 + if (jsonArray != null && !jsonArray.isEmpty()) { + //当入库时只有标准时 itemList是空的 + for (String jsonStr : jsonArray) { + if (StringUtils.isNotBlank(jsonStr)) { + Map jsonMap = JSONObject.parseObject(jsonStr); + if(jsonMap.containsKey("itemsList")){//开始读取条款集合数据处理结果 + String itemsList = jsonMap.get("itemsList").toString(); + //获取条款级别的评估集合列表 + List itemCompStrList = JSONArray.parseArray(itemsList, String.class); + if(itemCompStrList!=null && !itemCompStrList.isEmpty()){ + for(String itemCompDataStr : itemCompStrList){ + //解析每个人填写的具体评估结果 + Map itemDataMap = JSONObject.parseObject(itemCompDataStr); + if(itemDataMap.containsKey("pgForm")){ + String pgResult = itemDataMap.get("pgForm").toString(); + //新旧条款ID转换 + String oldItemId = itemDataMap.containsKey("id")?itemDataMap.get("id").toString():null; + //获取到评估表单 + SarCompStatusInfo sarCompStatusInfoEO = JSONObject.parseObject(pgResult,SarCompStatusInfo.class); + sarCompStatusInfoEO.setId(UUIDUtils.randomUUID(32)); + sarCompStatusInfoEO.setSarType(sarType); + sarCompStatusInfoEO.setSarId(standId); + //评估结果 + sarCompStatusInfoEO.setSarState(itemDataMap.containsKey("jspg")?itemDataMap.get("jspg").toString():null); + //新旧条款号转换存储 + if(StringUtils.isNotBlank(oldItemId)){ + sarCompStatusInfoEO.setSarItemId(itemConvertDataMap.get(oldItemId)); + sarCompStatusInfoEO.setSarItemState(sarCompStatusInfoEO.getSarState()); + } + sarCompStatusInfoEO.setPrcNum(prcNum); + sarCompStatusInfoEO.setColor(convertColorByState(sarCompStatusInfoEO.getSarState()));//此处需要处理 + sarCompStatusInfoEO.setPrcState(null);//技术评估不需要状态 + sarCompStatusInfoEO.setCreationTime(new Date()); + //评估人处理 + sarCompStatusInfoEO.setCompPerson(itemDataMap.containsKey("foFillUser")?itemDataMap.get("foFillUser").toString():null); + sarCompStatusInfoEO.setCompTime(new Date()); + compStatusInfoEOS.add(sarCompStatusInfoEO); + } + } + }else{ + if(jsonMap.containsKey("pgForm")){ + String pgResult = jsonMap.get("pgForm").toString(); + //获取到评估表单 + SarCompStatusInfo sarCompStatusInfoEO = JSONObject.parseObject(pgResult,SarCompStatusInfo.class); + sarCompStatusInfoEO.setId(UUIDUtils.randomUUID(32)); + sarCompStatusInfoEO.setSarType(sarType); + sarCompStatusInfoEO.setSarId(standId); + sarCompStatusInfoEO.setSarState(jsonMap.containsKey("jspg")?jsonMap.get("jspg").toString():null); + sarCompStatusInfoEO.setPrcNum(prcNum); + sarCompStatusInfoEO.setColor(convertColorByState(sarCompStatusInfoEO.getSarState()));//此处需要处理 + sarCompStatusInfoEO.setPrcState(null);//技术评估不需要状态 + sarCompStatusInfoEO.setCreationTime(new Date()); + sarCompStatusInfoEO.setCompPerson(jsonMap.containsKey("foFillUser")?jsonMap.get("foFillUser").toString():null); + sarCompStatusInfoEO.setCompTime(new Date()); + compStatusInfoEOS.add(sarCompStatusInfoEO); + } + } + }else{//只有标准的情况下 + //获取 + if(jsonMap.containsKey("pgForm")){ + String pgResult = jsonMap.get("pgForm").toString(); + //获取到评估表单 + SarCompStatusInfo sarCompStatusInfoEO = JSONObject.parseObject(pgResult,SarCompStatusInfo.class); + sarCompStatusInfoEO.setId(UUIDUtils.randomUUID(32)); + sarCompStatusInfoEO.setSarType(sarType); + sarCompStatusInfoEO.setSarId(standId); + sarCompStatusInfoEO.setSarState(jsonMap.containsKey("jspg")?jsonMap.get("jspg").toString():null); + sarCompStatusInfoEO.setPrcNum(prcNum); + sarCompStatusInfoEO.setColor(convertColorByState(sarCompStatusInfoEO.getSarState()));//此处需要处理 + sarCompStatusInfoEO.setPrcState(null);//技术评估不需要状态 + sarCompStatusInfoEO.setCreationTime(new Date()); + sarCompStatusInfoEO.setCompPerson(jsonMap.containsKey("foFillUser")?jsonMap.get("foFillUser").toString():null); + sarCompStatusInfoEO.setCompTime(new Date()); + compStatusInfoEOS.add(sarCompStatusInfoEO); + } + } + } + } + } + //最后开始将评估结果入库同时将评估结果汇总后给出标准的评估结果 + saveJSPGResultDataList(compStatusInfoEOS); + } + } + + /** + * 入库技术评估结果 + * @param compResultData + */ + private void saveJSPGResultDataList(List compResultData) throws Exception { + if(compResultData!=null && !compResultData.isEmpty()){ + //1、将数据存储到记录表中 + //2、汇总本次评估的结果 更新所有清单中的状态 此处有坑,如果标准评估后又在新的清单中添加的时候状态可能就是空的, + // 此时就会显示空,所以需要更换实现方法 + //需要中间需要增加一层技术评估的结果,但是代价太大,2021年3月21日 无法在今天修改完,需要于2021年3月22日 整体想下这块, + // 目前的实现思路时有问题的 + //正确逻辑时: 现将当前的评估结果记录到所有的技术评估结果中,然后汇总本次的评估结果内容到当前标准的技术评估汇总表中 + //汇总后形成最新的评估内容,此时有2种做法 1、不记录上一次的状态 直接更新 2、记录上一次状态,新增一条整体评估结果记录 + //在清单查询的时候 查询当前标准的最新一次评估结果,将评估结果不再清单中直接显示,而是在汇总表中的信息进行修改,这样能够达到 + //单一标准不论在任何时间添加到清单的时候都可以查看,同时在标准的技术评估状态的时候也可以直接调用即可。不用每次评估完都需要更新 + //技术清单的逻辑 + /** + * 整体表关系如下: + * 基础库: 国内标准库 海外标准库 政策库 + * 技术评估汇总表 资源的汇总结果记录 + * 详细评估内容记录表 资源本身每次评估的详细记录 + * 清单: 根据标准号到资源的汇总记录表中查询汇总结果 直接展现即可 + * 目前缺少的就是资源的汇总结果记录缺失,导致查询的时候可能汇总结果会有问题 + */ + //开始汇总数据以及状态变更 + //首先先检查当前标准在汇总表中是否存在 + Map> assessMap = new HashMap<>(); + Map compResAssessEOMap = new HashMap<>(); + for(SarCompStatusInfo data : compResultData){ + //评估结果转换 + String state = sysInfoEOService.changeCompStatus(data.getSarState()); + String itemSate = sysInfoEOService.changeCompStatus(data.getSarItemState()); + data.setSarState(state); + data.setSarItemState(itemSate); + if(StringUtils.equals("INLAND",data.getSarType())){ + data.setSarType(SarTypeEnum.INLAND_STAND.getValue()); + }else if(StringUtils.equals("FOREIGN",data.getSarType())){ + data.setSarType(SarTypeEnum.FOREIGN_STAND.getValue()); + } + SarCompResAssess info =null; + if(assessMap.containsKey(data.getSarId())){ + info = compResAssessEOMap.get(data.getSarId()); + }else{ + info= sarCompResAssessEOService.getAssessInfoByResId(data.getSarId()); + if(info==null){ + info = new SarCompResAssess(); + info.setId(UUIDUtils.randomUUID(32)); + info.setAssessTime(new Date()); + info.setCreatedTime(new Date()); + info.setModifyTime(new Date()); + info.setProcessNum(data.getPrcNum()); + info.setResId(data.getSarId()); + info.setResType(data.getSarType()); + sarCompResAssessEOService.save(info); + } + compResAssessEOMap.put(data.getSarId(),info); + } + //汇总结果 + if(!assessMap.containsKey(info.getResId())){ + Map accessData = new HashMap<>(); + accessData.put(state,1); + assessMap.put(info.getResId(),accessData); + }else{ + Map accessData = assessMap.get(info.getResId()); + if(accessData.containsKey(state)){ + Integer stateNum = accessData.get(state); + accessData.put(state,stateNum+1); + assessMap.put(info.getResId(),accessData); + }else{ + accessData.put(state,1); + assessMap.put(info.getResId(),accessData); + } + } + //入库操作 + sarCompStatusInfoEODao.insert(data); + } + //开始遍历状态集合 + for (Map.Entry entry : compResAssessEOMap.entrySet()) { + String compId = entry.getKey().toString();//汇总ID + SarCompResAssess compResAssessEO = (SarCompResAssess) entry.getValue(); + Map stringIntegerMap = assessMap.get(compId); + if(stringIntegerMap!=null){ + if(stringIntegerMap.containsKey(SarConformStateEnum.UNFIT.getValue()+"")){//只要包含不符合的就是不符合 + compResAssessEO.setAssessResult(SarConformStateEnum.UNFIT.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.YELLOW.getValue()); + }else if(stringIntegerMap.size() ==1){//只有一种情况的 + if(stringIntegerMap.containsKey(SarConformStateEnum.FIT.getValue()+"")){ + compResAssessEO.setAssessResult(SarConformStateEnum.FIT.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.GREEN.getValue()); + }else if(stringIntegerMap.containsKey(SarConformStateEnum.CHECK.getValue()+"")){ + compResAssessEO.setAssessResult(SarConformStateEnum.CHECK.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.YELLOW.getValue()); + }else if(stringIntegerMap.containsKey(SarConformStateEnum.NOT_INVOLVE.getValue()+"")){ + compResAssessEO.setAssessResult(SarConformStateEnum.NOT_INVOLVE.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.NA.getValue()); + } + }else if(stringIntegerMap.containsKey(SarConformStateEnum.CHECK.getValue()+"")){ + compResAssessEO.setAssessResult(SarConformStateEnum.CHECK.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.YELLOW.getValue()); + }else if(stringIntegerMap.containsKey(SarConformStateEnum.NOT_INVOLVE.getValue()+"")){ + compResAssessEO.setAssessResult(SarConformStateEnum.NOT_INVOLVE.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.NA.getValue()); + }else{ + compResAssessEO.setAssessResult(SarConformStateEnum.FIT.getValue()); + compResAssessEO.setAssessColor(SarStateColorEnum.GREEN.getValue()); + } +// else {//不包含不符合的并且单一情况并不存在的也就是说是 部分符合或者待确认的 +// if(stringIntegerMap.containsKey(SarConformStateEnum.FIT.getValue()+"")){ +// compResAssessEO.setAssessResult(SarConformStateEnum.PART_FIT.getValue()); +// compResAssessEO.setAssessColor(SarStateColorEnum.YELLOW.getValue()); +// }else{ +// compResAssessEO.setAssessResult(SarConformStateEnum.CHECK.getValue()); +// compResAssessEO.setAssessColor(SarStateColorEnum.NA.getValue()); +// } +// } + } + compResAssessEO.setProcessState("2"); + compResAssessEO.setModifyTime(new Date()); + if(StringUtils.equals("INLAND",compResAssessEO.getResType())){ + compResAssessEO.setResType(SarTypeEnum.INLAND_STAND.getValue()); + }else if(StringUtils.equals("FOREIGN",compResAssessEO.getResType())){ + compResAssessEO.setResType(SarTypeEnum.FOREIGN_STAND.getValue()); + } + //更新汇总后的结果 + sarCompResAssessEOService.updateById(compResAssessEO); + } + } + } + + private String convertColorByState(String stateStr){ + String colorStr = ""; + switch (stateStr){ + case "1": + colorStr = SarStateColorEnum.GREEN.getValue(); + break; + case "2": + colorStr = SarStateColorEnum.YELLOW.getValue(); + break; + case "3": + colorStr = SarStateColorEnum.YELLOW.getValue(); + case "4": + colorStr = SarStateColorEnum.NA.getValue(); + } + return colorStr; + } + + + public String changeStatus (String textStatus) { + String status = ""; + switch (textStatus) { + case "草稿": status="CA";break; + case "征求意见稿": status="ZQYJG";break; + case "报批稿": status="BPG";break; + case "送审稿": status="SSG";break; + case "发布稿(必读)": status="FBGBJBD";break; + } + return status; + } + + /** + * 处理条款信息转换 + * @param itemsEO + * @param field + * @param value + * @throws Exception + */ + public void createItemsBaseField (SarLawsItems itemsEO,String field,Object value) throws Exception{ + String valueStr = ""; + if (value != null) { + valueStr = String.valueOf(value); + } + switch (field) { + case "itemsName": itemsEO.setItemsName(valueStr); break; + case "FO": + List jsonArray = JSONArray.parseArray(valueStr,String.class); + String fo = ""; + if (jsonArray != null && !jsonArray.isEmpty()) { + for (String json : jsonArray) { + fo += json + ","; + } + fo = fo.substring(0,fo.length()-1); + itemsEO.setFoUser(fo); + } + break; + case "itemsNum": itemsEO.setItemsNum(valueStr); break; + case "termsConditions": itemsEO.setTermsConditions(valueStr); break; + case "svpps": itemsEO.setSvpps(valueStr); break; + case "role": itemsEO.setDutyEngineer(valueStr); break; + case "parts": itemsEO.setResponsibleUnit(valueStr); break; + case "FORoleId": itemsEO.setFo(valueStr); break; + case "id": itemsEO.setOldId(valueStr); break; + case "jspg": itemsEO.setJspg(valueStr); break; + case "pgForm": + if (StringUtils.isNotBlank(valueStr)) { + SarCompStatusInfo list = JSONObject.parseObject(valueStr,SarCompStatusInfo.class); + itemsEO.setPgForm(list); + }; + break; + default: break; + } + } + + /** + * 处理保存标准条款信息数据 + * @return + */ +// private List saveStandItemsData(List> itemDataList,SarLawsStandInfo sarStandardsInfoEO) throws Exception { +// String standId = sarStandardsInfoEO.getId(); +// String fileType = changeStatus(sarStandardsInfoEO.getLawsTextState()); +// List itemsEOList = new ArrayList<>();//添加的条款信息 +// List upItemsEOList = new ArrayList<>();//更新的条款数据 +// List delValItemIds = new ArrayList<>();//需要删除重新添加的条款数据集合 +// List itemValEOS = new ArrayList<>();//批量更新进去的条款参数集合 +// List UpSarFileSplitItemsList = new ArrayList<>(); +// for(Map itemData:itemDataList){ +// String itemStr = itemData.get("itemStr").toString();//条款的具体内容 +// Map itemAttrInfo = (Map) itemData.get("itemAttrInfo");//条款的属性字段 +// Map itemMap = new HashMap(); +// //此处需要查询拆分库数据,将之前的拆分数据带入到当前标准中同时检查当前分解单中是否已经包含相关的条款信息, +// // 如果是则更新,如果没有则添加 +// itemMap = JSONObject.parseObject(itemStr);; +// if (itemMap != null && !itemMap.isEmpty()) { +// if(itemMap.containsKey("resId")){ +// //存在 +// String splitItemId = String.valueOf(itemMap.get("resId")); +// if(StringUtils.isNotBlank(splitItemId)){ +// SarFileSplitItems splitItemsEO = sarFileSplitItemsEOService.getById(splitItemId); +// if(splitItemsEO!=null){ +// //拆分库有数据,检查当前的表单中是否有数据,如果有则直接获取后更新即可 +// SarLawsItems nowItemEO = sarLawsItemsDao.selectById(splitItemId); +// if(nowItemEO!=null){ +// //更新数据 +// nowItemEO.setItemsNum(splitItemsEO.getItemsNum()); +// nowItemEO.setItemsName(splitItemsEO.getItemsName()); +// nowItemEO.setApplyArctic(splitItemsEO.getApplyArctic()); +// nowItemEO.setLawsId(standId); +// nowItemEO.setTermsConditions(splitItemsEO.getItermsConditions()); +// nowItemEO.setParts(splitItemsEO.getSvpps()); +// nowItemEO.setCreationUser(UserUtils.getUserId()); +// nowItemEO.setValidFlag(0); +// if(null!=fileType){ +// nowItemEO.setFileType(fileType); +// } +// nowItemEO.setRemarks(splitItemsEO.getRemarks()); +// nowItemEO.setModifyTime(new Date()); +// +// nowItemEO.setClaimType(splitItemsEO.getClaimType()); +// nowItemEO.setBusStandCover(splitItemsEO.getBusStandCover()); +// nowItemEO.setResponsibleUnit(itemAttrInfo.get("ZRBM")); +// nowItemEO.setFo(itemAttrInfo.get("FO")); +// nowItemEO.setDutyEngineer(itemAttrInfo.get("XMPGJS")); +// nowItemEO.setSvpps(itemAttrInfo.get("SVPPS")); +// upItemsEOList.add(nowItemEO); +// }else{ +// SarLawsItems itemsEO = new SarLawsItems(); +// itemsEO.setId(splitItemId); +// itemsEO.setCreationTime(new Date()); +// itemsEO.setModifyTime(new Date()); +// itemsEO.setValidFlag(0); +// itemsEO.setLawsId(standId); +// itemsEO.setFileType(fileType); +// for (Map.Entry entry : itemMap.entrySet()) { +// String field = entry.getKey(); +// Object value = entry.getValue(); +// createItemsBaseField(itemsEO,field,value); +// } +// itemsEO.setItemsNum(splitItemsEO.getItemsNum()); +// itemsEO.setItemsName(splitItemsEO.getItemsName()); +// itemsEO.setApplyArctic(splitItemsEO.getApplyArctic()); +// itemsEO.setTermsConditions(splitItemsEO.getItermsConditions()); +// itemsEO.setParts(splitItemsEO.getSvpps()); +// itemsEO.setCreationUser(UserUtils.getUserId()); +// itemsEO.setRemarks(splitItemsEO.getRemarks()); +// itemsEO.setClaimType(splitItemsEO.getClaimType()); +// itemsEO.setBusStandCover(splitItemsEO.getBusStandCover()); +// itemsEO.setResponsibleUnit(itemAttrInfo.get("ZRBM")); +// itemsEO.setFo(itemAttrInfo.get("FO")); +// itemsEO.setDutyEngineer(itemAttrInfo.get("XMPGJS")); +// itemsEO.setSvpps(itemAttrInfo.get("SVPPS")); +// //开始处理后续逻辑 +// itemsEOList.add(itemsEO); +// } +// //apply数据 +// if(StringUtils.isNotEmpty(splitItemsEO.getApplyArctic())){ +// delValItemIds.add(splitItemsEO.getId()); +// String[] applyarr = splitItemsEO.getApplyArctic().trim().split(","); +// for(String applya:applyarr){ +// SarStandItemVal sarStandItemValEO = new SarStandItemVal(); +// sarStandItemValEO.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue()); +// sarStandItemValEO.setCreationTime(new Date()); +// sarStandItemValEO.setModifyTime(new Date()); +// sarStandItemValEO.setItemId(splitItemsEO.getId()); +// sarStandItemValEO.setId(UUIDUtils.randomUUID20()); +// sarStandItemValEO.setPropertyType(PropertyTypeEnum.APPLY_ARCTIC.getValue()); +// sarStandItemValEO.setPropertyVal(applya); +// itemValEOS.add(sarStandItemValEO); +// } +// } +// //TODO 开始处理拆分库数据 +// splitItemsEO.setModifyTime(new Date()); +// splitItemsEO.setResponsibleUnit(itemAttrInfo.get("ZRBM")); +// splitItemsEO.setFo(itemAttrInfo.get("FO")); +// splitItemsEO.setDutyEngineer(itemAttrInfo.get("XMPGJS")); +// splitItemsEO.setSvpps(itemAttrInfo.get("SVPPS")); +// UpSarFileSplitItemsList.add(splitItemsEO); +// }else{ +// logger.error("拆分库中找不到对应数据了,数据不见了 /(ㄒoㄒ)/~~"+itemStr); +// } +// }else{ +// logger.error("流程中携带的拆分库ID不见了 Σ(っ °Д °;)っ "+itemStr); +// } +// }else{ +// //不存在 说明数据出现问题了 +// logger.error("流程中携带的拆分库ID,数据不见了 /(ㄒoㄒ)/~~"+itemStr); +// +// } +// } +// } +// //更新拆分库数据 +// if(UpSarFileSplitItemsList!=null && !UpSarFileSplitItemsList.isEmpty()){ +// for(SarFileSplitItems items : UpSarFileSplitItemsList){ +// sarFileSplitItemsEOService.updateById(items); +// } +// } +// //执行批量新增操作 +// if(itemsEOList != null && !itemsEOList.isEmpty()){ +// sarLawsItemsDao.insertForeach(itemsEOList); +// +// } +// //执行批量修改操作 +// if(upItemsEOList != null && !upItemsEOList.isEmpty()){ +// sarLawsItemsDao.updateForeach(upItemsEOList); +// +// } +// //执行适用车型批量操作 +// if(itemValEOS != null && !itemValEOS.isEmpty()){ +// sarLawsItemValDao.deleteByItemsIds(delValItemIds); +// sarLawsItemValDao.insertForeach(itemValEOS); +// } +// return itemsEOList; +// } + + private void updateStandFileFieldData(Map addAttInfoMap,Map oldAttInfoMap){ + if(oldAttInfoMap.containsKey("CA")){ + String fileStr = (String) oldAttInfoMap.get("CA"); + if(StringUtils.isNotBlank(fileStr)){ + String newFileStr =addAttInfoMap.containsKey("CA")?(String)addAttInfoMap.get("CA"):null; + if(StringUtils.isNotBlank(newFileStr)){ + String[] fileSplit = fileStr.split(","); + String[] newFileSplit = newFileStr.split(","); + Set fileSet = new HashSet<>(); + for(String sData:fileSplit){ + fileSet.add(sData); + } + for(String sData:newFileSplit){ + fileSet.add(sData); + } + addAttInfoMap.put("CA",StringUtils.join(fileSet.toArray(), ",")); + }else{ + addAttInfoMap.put("CA",fileStr); + } + } + }else if(oldAttInfoMap.containsKey("ZQYJG")){ + String fileStr = (String) oldAttInfoMap.get("ZQYJG"); + if(StringUtils.isNotBlank(fileStr)){ + String newFileStr =addAttInfoMap.containsKey("ZQYJG")?(String)addAttInfoMap.get("ZQYJG"):null; + if(StringUtils.isNotBlank(newFileStr)){ + String[] fileSplit = fileStr.split(","); + String[] newFileSplit = newFileStr.split(","); + Set fileSet = new HashSet<>(); + for(String sData:fileSplit){ + fileSet.add(sData); + } + for(String sData:newFileSplit){ + fileSet.add(sData); + } + addAttInfoMap.put("ZQYJG",StringUtils.join(fileSet.toArray(), ",")); + }else{ + addAttInfoMap.put("ZQYJG",fileStr); + } + } + }else if(oldAttInfoMap.containsKey("BPG")){ + String fileStr = (String) oldAttInfoMap.get("BPG"); + if(StringUtils.isNotBlank(fileStr)){ + String newFileStr =addAttInfoMap.containsKey("BPG")?(String)addAttInfoMap.get("BPG"):null; + if(StringUtils.isNotBlank(newFileStr)){ + String[] fileSplit = fileStr.split(","); + String[] newFileSplit = newFileStr.split(","); + Set fileSet = new HashSet<>(); + for(String sData:fileSplit){ + fileSet.add(sData); + } + for(String sData:newFileSplit){ + fileSet.add(sData); + } + addAttInfoMap.put("BPG",StringUtils.join(fileSet.toArray(), ",")); + }else{ + addAttInfoMap.put("BPG",fileStr); + } + } + }else if(oldAttInfoMap.containsKey("SSG")){ + String fileStr = (String) oldAttInfoMap.get("SSG"); + if(StringUtils.isNotBlank(fileStr)){ + String newFileStr =addAttInfoMap.containsKey("SSG")?(String)addAttInfoMap.get("SSG"):null; + if(StringUtils.isNotBlank(newFileStr)){ + String[] fileSplit = fileStr.split(","); + String[] newFileSplit = newFileStr.split(","); + Set fileSet = new HashSet<>(); + for(String sData:fileSplit){ + fileSet.add(sData); + } + for(String sData:newFileSplit){ + fileSet.add(sData); + } + addAttInfoMap.put("SSG",StringUtils.join(fileSet.toArray(), ",")); + }else{ + addAttInfoMap.put("SSG",fileStr); + } + } + }else if(oldAttInfoMap.containsKey("ZBJBD")){ + String fileStr = (String) oldAttInfoMap.get("ZBJBD"); + if(StringUtils.isNotBlank(fileStr)){ + String newFileStr =addAttInfoMap.containsKey("ZBJBD")?(String)addAttInfoMap.get("ZBJBD"):null; + if(StringUtils.isNotBlank(newFileStr)){ + String[] fileSplit = fileStr.split(","); + String[] newFileSplit = newFileStr.split(","); + Set fileSet = new HashSet<>(); + for(String sData:fileSplit){ + fileSet.add(sData); + } + for(String sData:newFileSplit){ + fileSet.add(sData); + } + addAttInfoMap.put("ZBJBD",StringUtils.join(fileSet.toArray(), ",")); + }else{ + addAttInfoMap.put("ZBJBD",fileStr); + } + } + }else if(oldAttInfoMap.containsKey("FBGBJBD")){ + String fileStr = (String) oldAttInfoMap.get("FBGBJBD"); + if(StringUtils.isNotBlank(fileStr)){ + String newFileStr =addAttInfoMap.containsKey("FBGBJBD")?(String)addAttInfoMap.get("FBGBJBD"):null; + if(StringUtils.isNotBlank(newFileStr)){ + String[] fileSplit = fileStr.split(","); + String[] newFileSplit = newFileStr.split(","); + Set fileSet = new HashSet<>(); + for(String sData:fileSplit){ + fileSet.add(sData); + } + for(String sData:newFileSplit){ + fileSet.add(sData); + } + addAttInfoMap.put("FBGBJBD",StringUtils.join(fileSet.toArray(), ",")); + }else{ + addAttInfoMap.put("FBGBJBD",fileStr); + } + } + } + } + + public Map saveFileMsg (Map attInfoMap,String fileIds,String textStatus) { + switch (textStatus) { + case "草案": attInfoMap.put("CA",fileIds);break; + case "征求意见稿": attInfoMap.put("ZQYJG",fileIds);break; + case "报批稿": attInfoMap.put("BPG",fileIds);break; + case "送审稿": attInfoMap.put("SSG",fileIds);break; + case "增补件(必读)":attInfoMap.put("ZBJBD",fileIds);break; + case "发布稿(必读)": attInfoMap.put("FBGBJBD",fileIds);break; + } + return attInfoMap; + } + + /** + * 处理标准基础库字段 + * @param sarLawsStandInfo + * @param field + * @param value + * @throws Exception + */ + public void createStandBaseField (SarLawsStandInfo sarLawsStandInfo,String field,Object value) throws Exception{ + String valueStr = ""; + if (value != null) { + valueStr = String.valueOf(value); + } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + switch (field) { + case "country": sarLawsStandInfo.setCountry(valueStr); break; + case "id": sarLawsStandInfo.setId(valueStr); break; + case "lawsType": sarLawsStandInfo.setLawsType(valueStr); break; + case "lawsNumber": sarLawsStandInfo.setLawsNumber(valueStr); break; + case "lawsName": sarLawsStandInfo.setLawsName(valueStr); break; + case "lawsEnName": sarLawsStandInfo.setLawsEnName(valueStr); break; + case "lawsNo": sarLawsStandInfo.setLawsNo(valueStr); break; + case "issueTime": + if (StringUtils.isNotBlank(valueStr)) { + sarLawsStandInfo.setIssueTime(valueStr); + } + break; + case "issueCompany": sarLawsStandInfo.setIssueCompany(valueStr); break; + case "commentCycleStart": + if (StringUtils.isNotBlank(valueStr)) { + sarLawsStandInfo.setCommentCycleStart(valueStr); + } + break; + case "commentCycleEnd": + if (StringUtils.isNotBlank(valueStr)) { + sarLawsStandInfo.setCommentCycleEnd(valueStr); + } + break; + case "lawsTextState": sarLawsStandInfo.setLawsTextState(valueStr); break; + case "lawsSyqy": sarLawsStandInfo.setLawsSyqy(valueStr); break; + case "lawsSycx": sarLawsStandInfo.setLawsSycx(valueStr); break; + case "isRelateAccess": sarLawsStandInfo.setIsRelateAccess(valueStr); break; + case "lawsYear": sarLawsStandInfo.setLawsYear(valueStr); break; + case "lawsNotisyncNum": sarLawsStandInfo.setLawsNotisyncNum(valueStr); break; + case "lawsBulletin": sarLawsStandInfo.setLawsBulletin(valueStr); break; + case "lawsLabel": sarLawsStandInfo.setLawsLabel(valueStr); break; + case "lawsRemark": sarLawsStandInfo.setLawsRemark(valueStr); break; + case "prcNum": sarLawsStandInfo.setProcessNum(valueStr); break; + case "menuId": sarLawsStandInfo.setMenuId(valueStr); break; + case "fileWord": + if (StringUtils.isNotBlank(sarLawsStandInfo.getFileIds()) && StringUtils.isNotBlank(valueStr)) { + valueStr = sarLawsStandInfo.getFileIds() + "," + valueStr; + } + sarLawsStandInfo.setFileIds(valueStr); break; + case "filePdf": + if (StringUtils.isNotBlank(sarLawsStandInfo.getFileIds()) && StringUtils.isNotBlank(valueStr)) { + valueStr = sarLawsStandInfo.getFileIds() + "," + valueStr; + } + sarLawsStandInfo.setFileIds(valueStr); + break; + default: break; + } + } + +} diff --git a/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java b/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java index 965a977c..5206abd3 100644 --- a/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java +++ b/adc-da-jwtLogin/src/main/java/com/adc/da/login/rest/LoginRestController.java @@ -96,7 +96,7 @@ public class LoginRestController { if(userEO.getDisableFlag()==1){ return Result.error("r0011", "帐号已禁用"); } - String token = jwtUtils.generateToken(account); + String token = jwtUtils.generateToken(userEO.getUsid()); userEO.setToken(token); // 加密重要信息 BASE64Encoder encoder = new BASE64Encoder(); diff --git a/adc-da-main/src/main/resources/application-dev.properties b/adc-da-main/src/main/resources/application-dev.properties index 3d67866a..3a1561dc 100644 --- a/adc-da-main/src/main/resources/application-dev.properties +++ b/adc-da-main/src/main/resources/application-dev.properties @@ -3,9 +3,10 @@ # 数据库配置 #============================================= spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver -spring.datasource.url = jdbc:mysql://10.100.5.111:3306/foton_slrs?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false -spring.datasource.username = tempuser -spring.datasource.password = Fting&8g35g#geg2 +spring.datasource.url = jdbc:mysql://39.100.23.127:3306/foton_slrs_test2?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false +#spring.datasource.url = jdbc:mysql://10.96.10.54/foton_slrs_test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false +spring.datasource.username = root +spring.datasource.password = root @@ -15,10 +16,10 @@ spring.application.name=FotonLAWSSystem application.code=20200101 application.center=1 #============================================== -#Eureka +#Eruept eureka.client.allow-redirects=true eureka.client.register-with-eureka=true -eureka.client.service-url.defaultZone=http://10.100.5.117:4201/eureka/ +eureka.client.service-url.defaultZone=http://62.234.136.153:8761/eureka/ #============================================== # 邮箱配置1 @@ -34,18 +35,22 @@ spring.mail.properties.smtp.starttls.required=false spring.mail.properties.mail.smtp.ssl.enable=false spring.mail.port=587 -#============================================== -# MQ配置 -#============================================== -spring.rabbitmq.host=10.100.5.119 +# ============================================== +# rabbitMQ +# ============================================== +#spring.rabbitmq.host=10.2.186.93 +#spring.rabbitmq.port=5672 +#spring.rabbitmq.username=ca +#spring.rabbitmq.password=cs986432 +spring.rabbitmq.host=62.234.118.181 spring.rabbitmq.port=5672 spring.rabbitmq.username=admin -spring.rabbitmq.password=foton@admin +spring.rabbitmq.password=admin spring.rabbitmq.listener.simple.acknowledge-mode= manual # 生产者 默认关闭 发版 需改为 true -spring.rabbitmq.listener.direct.auto-startup=true +spring.rabbitmq.listener.direct.auto-startup=false # 消费者 默认关闭 发版 需改为 true -spring.rabbitmq.listener.simple.auto-startup=true +spring.rabbitmq.listener.simple.auto-startup=false #消费失败消息干掉 spring.rabbitmq.listener.simple.default-requeue-rejected= true #5秒 @@ -53,22 +58,21 @@ spring.rabbitmq.listener.simple.retry.initial-interval= 5000 spring.rabbitmq.listener.simple.retry.enabled= true #最大重试5次 spring.rabbitmq.listener.simple.retry.max-attempts= 5 -# ============================================== # 文档存储路径指向 # ============================================== -file.path=/data/slrs/file +file.path=/usr/laws/file/ # 云端OCR识别集成配置参数 #OCR请求识别URL地址 OCR.handleFileUrl = http://61.136.1.103:8091/WebService.asmx/FileConversion # OCR回调接口地址 配置客户本地的IP及端口号 -OCR.callBackUrl = https://slrs.foton.com.cn/api/ocr/OCRRestful/OcrHandleResult +OCR.callBackUrl = http://62.234.136.153:8033/api/ocr/OCRRestful/OcrHandleResult OCR.userId =dayuzhou1234 OCR.authCode =123456 OCR.publicKey =EC4KKA6ZDTCPAOCRBC5M # OCR文件存储路径 -OCR.ocrPath=/data/slrs/ocrResultFile +OCR.ocrPath=/opt/foton-slrs/front/dist/file/ # OCR文件请求下载或在线预览时URL -OCR.ocrDownPath=/data/slrs/ocrResultFile +OCR.ocrDownPath=http://62.234.136.153:8038/file/ OCR.times=20 OCR.convertType=BOTH \ No newline at end of file diff --git a/adc-da-main/src/main/resources/application.properties b/adc-da-main/src/main/resources/application.properties index 75fa37d5..6f42d8db 100644 --- a/adc-da-main/src/main/resources/application.properties +++ b/adc-da-main/src/main/resources/application.properties @@ -9,12 +9,12 @@ spring.profiles.active=dev server.compression.enabled=true server.compression.mime-types=application/json,application/xml,text/html,text/plain,text/css,application/x-javascript # 端口号设置 -server.port=4202 +server.port=9999 #主服务session超时 server.servlet.session.timeout =600 #tomcat /resource/local/version-manager 创建tomcat指定临时目录 -server.tomcat.basedir=/data/slrs/temp +server.tomcat.basedir=/resource/local/version-manager # http-only server.session.cookie.http-only=true @@ -30,14 +30,20 @@ logging.level.org.springframework=info # 请求前缀 restPath=/api +#server.servlet.context-path=/api #是否将自己注册到Eureka Server上,默认为true eureka.client.register-with-eureka=true ##是否从Eureka Server上获取注册信息,默认为true eureka.client.fetch-registry=true -eureka.instance.prefer-ip-address=true -eureka.client.service-url.defaultZone=http://10.100.5.117:4201/eureka/ + +#eureka.client.service-url.defaultZone=http://10.5.116.172:8672/eureka/ +#eureka.client.service-url.defaultZone=http://127.0.0.1:8671/eureka/ +#eureka.client.service-url.defaultZone=http://10.5.116.172:8672/eureka/ + +eureka.client.service-url.defaultZone=http://62.234.136.153:8761/eureka/ +#eureka.client.service-url.defaultZone=http://10.96.10.171:8761/eureka/ # 请求连接的超时时间 默认的时间为 1 秒 ribbon.ConnectTimeout=500000 @@ -131,9 +137,9 @@ verifyCodeMode=1 # 文件上传管控及配置 # ============================================================================= # file模块上传文件的服务器地址 -file.path=/data/slrs/file -# 文件下载地址参数(弃用) -file.downloadUrl= +file.path=D:/uploadfile/bus +# 文件下载地址参数 +file.downloadUrl=http://39.98.140.126:10001/uploadPath #上传文件白名单-以,分隔 upload.file.white.lists = doc,docx,xls,xlsx,pdf,PDF,png,jpg,pptx,ppt @@ -141,13 +147,14 @@ upload.file.white.lists = doc,docx,xls,xlsx,pdf,PDF,png,jpg,pptx,ppt # elasticsearch 配置 # ============================================================================= elasticsearch.clustername=elasticsearch -elasticsearch.ip=10.100.5.122 +elasticsearch.ip=172.17.0.1 elasticsearch.port=9300 elasticsearch.poolSize=5 elas.flag=true # 文档转换TCP通讯地址 convert.host=127.0.0.1 +#convert.host=0.0.0.0 # ============================================================================= # scheduled 配置 diff --git a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java index 6fa51b04..f3db7cf5 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java +++ b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java @@ -96,7 +96,11 @@ public class SearchCenterController extends BaseController> } return Result.success(getPageInfo(searchInfoEO.getPager(), result)); } else { - result = searchCenterService.searchSarBykey(searchInfoEO); + if (searchInfoEO.getQueryStatus() != null && StringUtils.isNotBlank(searchInfoEO.getQueryStatus()) && searchInfoEO.getQueryStatus().equals("advancedSearch") && null != searchInfoEO.getSelectValue() && StringUtils.isNotBlank(searchInfoEO.getSelectValue())) { + result = searchCenterService.searchSarBykey(searchInfoEO); + }else { + result = searchCenterService.searchSarConditionBykey(searchInfoEO); + } // 非动态消息的需要查询为我推荐 for (int i = 0; i < result.size(); i++) { String collectId = personCollectEOService.queryCollectByUserAndId(result.get(i).get("id").toString()); diff --git a/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java b/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java index e48419ea..222fae10 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java +++ b/adc-da-search/src/main/java/com/adc/da/search/entity/SeniorSearchInfoEO.java @@ -31,6 +31,9 @@ public class SeniorSearchInfoEO extends BasePage { @ApiModelProperty(value = "标准分类") private String standType; + @ApiModelProperty(value = "搜索分类") + private String type; + @ApiModelProperty(value = "国家地区") private String country; @@ -239,6 +242,32 @@ public class SeniorSearchInfoEO extends BasePage { private String stand_status; private String isHigh; + private String queryStatus; + + + private String lawsType; + private String lawsNumber; + private String lawsName; + private String lawsEnName; + private String lawsNo; + private String issueCompany; + private String commentCycleDate; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date commentCycleStart; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date commentCycleEnd; + private String lawsTextState; + private String lawsSyqy; + private String lawsSycx; + private String lawsYear; + private String lawsNotisyncNum; + private String lawsBulletin; + private String lawsLabel; + private String lawsRemark; + private String CYSDLAWS; + diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java b/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java index 328e50e4..0fc72fc6 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/SearchCenterService.java @@ -11,6 +11,8 @@ public interface SearchCenterService { List> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception; + List> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception; + /** * 查询结果集searchResponse装换成List形式 * @param searchResponse 需要转换的数据 diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java index fc907922..99ae7e92 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -37,6 +37,7 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.util.stream.Stream; @Component @Slf4j @@ -57,19 +58,11 @@ public class SearchCenterServiceImpl implements SearchCenterService { private static final String ISSUE_TIME = "issue_time_data"; private static final String PUT_TIME = "put_time"; private static final String EPOCH_MILLIS = "epoch_millis"; - String numbershowStr = "numbershow"; - String nameshowStr = "nameshow"; - String nameshowSplit = "nameshowSplit"; - String numbershowSplit = "numbershowSplit"; - String replacedStandNumStr = "replaced_stand_num"; - String replaceStandNumStr = "replace_stand_num"; - String content = "content"; //关键字检索 @Override public List> searchSarBykey(SeniorSearchInfoEO searchInfoEO) throws Exception { //判断是否高级查询 isHight = true(searchInfoEO.getIsHigh()为空)时,证明不是高级查询 - boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh()); List> result = new ArrayList<>(); SearchRequestBuilder searchRequestBuilder; BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); @@ -78,7 +71,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) - .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) .addSort("issueTime", SortOrder.DESC) .setSize(searchInfoEO.getPageSize()); @@ -114,16 +107,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { .should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*")); break; case "laws": - multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), - numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num", - "synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJG","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC","accessCountry").minimumShouldMatch("100%"); - boolQueryMust.must(multiQueryBuilder); - boolQueryShould.should(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery(numbershowSplit, "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery(nameshowSplit, "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery(content, "*"+searchInfoEO.getSelectValue()+"*")) - .should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*")) + boolQueryShould.should(QueryBuilders.wildcardQuery("CYSDShow", "*"+searchInfoEO.getSelectValue()+"*")) .should(QueryBuilders.wildcardQuery("SYCLLXShow", "*"+searchInfoEO.getSelectValue()+"*")) .should(QueryBuilders.wildcardQuery("accessCountry", "*"+searchInfoEO.getSelectValue()+"*")) .should(QueryBuilders.wildcardQuery("standstateshow", "*"+searchInfoEO.getSelectValue()+"*")) @@ -201,6 +185,140 @@ public class SearchCenterServiceImpl implements SearchCenterService { return result; } + // 条件 + @Override + public List> searchSarConditionBykey(SeniorSearchInfoEO searchInfoEO) throws Exception { + //判断是否高级查询 isHight = true(searchInfoEO.getIsHigh()为空)时,证明不是高级查询 + boolean isHight = StringUtils.isBlank(searchInfoEO.getIsHigh()); + List> result = new ArrayList<>(); + SearchRequestBuilder searchRequestBuilder; + BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); + BoolQueryBuilder boolQueryShould = QueryBuilders.boolQuery(); + BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery(); + + + searchRequestBuilder = client.prepareSearch(searchInfoEO.getSelectIndex()) + .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) + .setFrom((searchInfoEO.getPage()-1)*searchInfoEO.getPageSize()) + .addSort("issueTime", SortOrder.DESC) + .setSize(searchInfoEO.getPageSize()); + + if(searchInfoEO.getSelectIndex().equals("stand")) { + boolQueryShould = queryStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + } else if(searchInfoEO.getSelectIndex().equals("laws")){ + boolQueryShould = queryLawsMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + } else if(searchInfoEO.getSelectIndex().equals("bussstand")){ + boolQueryShould = queryBussStandMsg(searchInfoEO,boolQueryMust,searchRequestBuilder); + } + + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && StringUtils.isBlank(searchInfoEO.getIsHigh())){ + QueryBuilder multiQueryBuilder; + switch (searchInfoEO.getSelectIndex()){ + case "stand": + if (isRqFormat(searchInfoEO.getSelectValue())) { + Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder); + } +// boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standNatureName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("textStatusName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.matchPhraseQuery("content", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*")); + break; + case "laws": +// boolQueryShould.should(QueryBuilders.wildcardQuery("lawsTypeName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("issueCompany.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsTextStateName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("isRelateAccessName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsYearName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsBulletin.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsLabel.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("lawsRemark.keyword", "*"+searchInfoEO.getSelectValue()+"*")); + if (isRqFormat(searchInfoEO.getSelectValue())) { + Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder); + RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery("commentCycleStart_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder2); + RangeQueryBuilder rangeQueryBuilder3 = QueryBuilders.rangeQuery("commentCycleEnd_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder3); + } + break; + case "bussstand": +// boolQueryShould.should(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_code.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*")) +// .should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getSelectValue()+"*")); + if (isRqFormat(searchInfoEO.getSelectValue())) { + Long starttime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + Long endtime = dateFormatToStr(searchInfoEO.getSelectValue()).getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder); + RangeQueryBuilder rangeQueryBuilder2 = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryShould.should(rangeQueryBuilder2); + } + break; + default: break; + } + } + + if(boolQueryShould!=null){ + boolQueryBuilder.must(QueryBuilders.matchQuery("validFlag", 0)); + if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ + if (StringUtils.isNotBlank(searchInfoEO.getType())) { + boolQueryShould.must(QueryBuilders.wildcardQuery("type.keyword", "*"+searchInfoEO.getType()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandType())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsSyqy())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSyqy.keyword", "*"+searchInfoEO.getLawsSyqy()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsSycx())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSycx.keyword", "*"+searchInfoEO.getLawsSycx()+"*")); + } + boolQueryBuilder.must(boolQueryShould); + }else { + boolQueryBuilder.must(boolQueryShould); + } + + //在结果中检索 + if (StringUtils.isNotEmpty(searchInfoEO.getSelectValue()) && !isRqFormat(searchInfoEO.getSelectValue())) { + QueryBuilder multiQuery = queryInResult(searchInfoEO); + boolQueryBuilder.must(multiQuery); + } + + searchRequestBuilder.setQuery(boolQueryBuilder); + + // 获取查询到的结果 + result = countStandSearchResult(searchRequestBuilder,searchInfoEO); + } + + return result; + } + private Date dateFormatToStr(String dateStr){ Date date = new Date(); try { @@ -262,53 +380,51 @@ public class SearchCenterServiceImpl implements SearchCenterService { collectAttrMap.put("CLLX",array); } + if(searchInfoEO.getCYSDLAWS() != null && StringUtils.isNotBlank(searchInfoEO.getCYSDLAWS())){ + List fieldList = Arrays.asList(searchInfoEO.getCYSDLAWS() .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + JSONArray array= JSONArray.parseArray(JSON.toJSONString(fieldList)); + collectAttrMap.put("CYSDLAWS",array); + } + } - String fieldInfo = InitStandAttrSearchUtil.queryField; - String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws; - String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss; - List fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); - List fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); - List fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); - List fieldList = new ArrayList<>(); - fieldList.addAll(fieldInfoList); - fieldList.addAll(fieldLawsInfoList); - fieldList.addAll(fieldBussInfoList); + List fieldList = getStringField(searchInfoEO); // 自动匹配动态属性字段 es 查询 for (String field : fieldList) { // 关键字查询属性字段 String keyWordField = field + ".keyword"; String keyWordField2 = field + "Name.keyword"; - if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ - boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*")); - }else { - if(collectAttrMap.containsKey(field)){ - List fields = new ArrayList<>(); - Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue(); - if(json instanceof org.json.JSONArray){ - fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class); - }else { - if(!json.equals("null")){ - fields.add(collectAttrMap.get(field).toString()); - } - } - if(!fields.isEmpty()){ - if(fields.size() > 1){ - BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); - fields.forEach(s -> { - boolQueryBuilderShould.should(QueryBuilders.wildcardQuery(keyWordField, "*"+s+"*")); - }); - boolQueryBuilder.must(boolQueryBuilderShould); - }else { - boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+fields.get(0)+"*")); - } - + if(collectAttrMap.containsKey(field)){ + List fields = new ArrayList<>(); + Object json= new JSONTokener(collectAttrMap.get(field).toString()).nextValue(); + if(json instanceof org.json.JSONArray){ + fields = JSONObject.parseArray(collectAttrMap.get(field).toString(),String.class); + }else { + if(!json.equals("null")){ + fields.add(collectAttrMap.get(field).toString()); } } + if(!fields.isEmpty()){ + if(fields.size() > 1){ + BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); + fields.forEach(s -> { + boolQueryBuilderShould.should(QueryBuilders.wildcardQuery(keyWordField, "*"+s+"*")); + }); + boolQueryBuilder.must(boolQueryBuilderShould); + }else { + boolQueryBuilderMust.must(QueryBuilders.wildcardQuery(keyWordField, "*"+fields.get(0)+"*")); + } + + } } +// if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){ +//// boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*")); +// }else { +// +// } } if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())) { - boolQueryBuilder.should(boolQueryBuilderMust); +// boolQueryBuilder.should(boolQueryBuilderMust); if(searchInfoEO.getQCDW() != null && StringUtils.isNotBlank(searchInfoEO.getQCDW())){ List list = Arrays.asList(searchInfoEO.getQCDW().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); if(list.size() > 1){ @@ -353,62 +469,81 @@ public class SearchCenterServiceImpl implements SearchCenterService { return boolQueryBuilder; } + private List getStringField(SeniorSearchInfoEO searchInfoEO) { + String fieldInfo = InitStandAttrSearchUtil.queryField; + String fieldLawsInfo = InitStandAttrSearchUtil.queryFieldLaws; + String fieldBussInfo = InitStandAttrSearchUtil.queryFieldBuss; + List fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + List fieldLawsInfoList = Arrays.asList(fieldLawsInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + List fieldBussInfoList = Arrays.asList(fieldBussInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + List fieldList = new ArrayList<>(); + if(StringUtils.isNotBlank(searchInfoEO.getSelectIndex())){ + if(searchInfoEO.getSelectIndex().equals("stand")){ + fieldList.addAll(fieldInfoList); + }else if(searchInfoEO.getSelectIndex().equals("bussstand")){ + fieldList.addAll(fieldBussInfoList); + }else if(searchInfoEO.getSelectIndex().equals("laws")){ + fieldList.addAll(fieldLawsInfoList); + } + } + return fieldList; + } + //检索国内外标准数据 public BoolQueryBuilder queryStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ String nameshowStr = "nameshow"; // 高级搜索项,只针对标准 - if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){ - // 高级搜索项,只针对标准 - if (StringUtils.isNotBlank(searchInfoEO.getStandType())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { - List list = Arrays.asList(searchInfoEO.getStandSort().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); - if(list.size() > 1){ - BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); - list.forEach(s -> { - boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+s+" "+"*")); - }); - boolQueryBuilder.must(boolQueryBuilderShould); - }else { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*")); - } - } - if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandName())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getStandName()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*")); + // 高级搜索项,只针对标准 + if (StringUtils.isNotBlank(searchInfoEO.getStandType())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standType.keyword", "*"+searchInfoEO.getStandType()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + List list = Arrays.asList(searchInfoEO.getStandSort().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + if(list.size() > 1){ + BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); + list.forEach(s -> { + boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+s+" "+"*")); + }); + boolQueryBuilder.must(boolQueryBuilderShould); + }else { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getStandSort()+" "+"*")); } + } + if (StringUtils.isNotBlank(searchInfoEO.getStandNumber())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandNumber()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standName.keyword", "*"+searchInfoEO.getStandName()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*")); + } - if (searchInfoEO.getIssueTime() != null) { - Long starttime = searchInfoEO.getIssueTime().getTime(); - Long endtime = searchInfoEO.getIssueTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); - } + if (StringUtils.isNotBlank(searchInfoEO.getTextStatus())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getTextStatus()+"*")); + } - if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*")); - } + if (searchInfoEO.getIssueTime() != null) { + Long starttime = searchInfoEO.getIssueTime().getTime(); + Long endtime = searchInfoEO.getIssueTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } - if (StringUtils.isNotBlank(searchInfoEO.getStandNature())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getStandNature()+"*")); - } + if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*")); + } - if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getStandSystem()+"*")); - } + if (StringUtils.isNotBlank(searchInfoEO.getStandNature())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getStandNature()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getStandSystem()+"*")); } querySeniorMsg(searchInfoEO,boolQueryBuilder); @@ -417,205 +552,112 @@ public class SearchCenterServiceImpl implements SearchCenterService { //检索国内外政策数据 public BoolQueryBuilder queryLawsMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ - String numbershowStr = "numbershow"; - String nameshowStr = "nameshow"; - String replacedStandNumStr = "replaced_stand_num"; - String replaceStandNumStr = "replace_stand_num"; - //国家,国内外标准,国内外法规有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getCountry())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getCountry().equals("all") && !searchInfoEO.getCountry().equals("[]")) { -// String[] arrlist = searchInfoEO.getCountry().split(","); -// boolQueryBuilder.must(QueryBuilders.termsQuery("country.keyword", arrlist)); - boolQueryBuilder.must(QueryBuilders.matchQuery("country", searchInfoEO.getCountry())); - } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsType())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsType.keyword", "*"+searchInfoEO.getLawsType()+"*")); } - //标准性质,国内外标准,法规有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getNature())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getNature().equals("all") && !searchInfoEO.getNature().equals("[]")) { - String[] arrlist = searchInfoEO.getNature().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("nature.keyword", arrlist)); - } + if (StringUtils.isNotBlank(searchInfoEO.getLawsNumber())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsNumber.keyword", "*"+searchInfoEO.getLawsNumber()+"*")); } - if (StringUtils.isNotBlank(searchInfoEO.getSYCLLX())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getSYCLLX().equals("all") && !searchInfoEO.getSYCLLX().equals("[]") ) { - String[] arrlist = searchInfoEO.getSYCLLX().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("SYCLLX.keyword", arrlist)); - } + if (StringUtils.isNotBlank(searchInfoEO.getLawsName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsName.keyword", "*"+searchInfoEO.getLawsName()+"*")); } - if (StringUtils.isNotBlank(searchInfoEO.getWSSFCY())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getWSSFCY().equals("all") && !searchInfoEO.getWSSFCY().equals("[]") ) { - String[] arrlist = searchInfoEO.getWSSFCY().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("WSSFCY.keyword", arrlist)); - } + if (StringUtils.isNotBlank(searchInfoEO.getLawsEnName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsEnName.keyword", "*"+searchInfoEO.getLawsEnName()+"*")); } - if (StringUtils.isNotBlank(searchInfoEO.getCBCD())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getCBCD().equals("all") && !searchInfoEO.getCBCD().equals("[]") ) { - String[] arrlist = searchInfoEO.getCBCD().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("CBCD.keyword", arrlist)); - } + if (StringUtils.isNotBlank(searchInfoEO.getLawsNo())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsNo.keyword", "*"+searchInfoEO.getLawsNo()+"*")); } - if (StringUtils.isNotBlank(searchInfoEO.getZRLX())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getZRLX().equals("all") && !searchInfoEO.getZRLX().equals("[]") ) { - String[] arrlist = searchInfoEO.getZRLX().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("ZRLX.keyword", arrlist)); - } - } - //编号,国内外标准,国内外法规,企业标准 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getNumberShow())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery(numbershowStr, "*"+searchInfoEO.getNumberShow()+"*")); - } - //名称,国内外标准,国内外法规,企业标准 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getNameShow())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery(nameshowStr, "*"+searchInfoEO.getNameShow()+"*")); - } - //发布部门 - if (StringUtils.isNotBlank(searchInfoEO.getIssueUnit())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("issueUnit", searchInfoEO.getIssueUnit())); - } - //文件状态,国内外标准,国内外法规,企业标准 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getStandState())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getStandState().equals("all") && !searchInfoEO.getStandState().equals("[]")) { - String[] arrlist = searchInfoEO.getStandState().split(","); - boolQueryBuilder.must(QueryBuilders.termsQuery("statecode.keyword", arrlist)); - //boolQueryBuilder.must(QueryBuilders.matchQuery("statecode", searchInfoEO.getStandState())); - } - } - //代替文件号 - if (StringUtils.isNotBlank(searchInfoEO.getReplaceStandNum())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("replace_laws_num", searchInfoEO.getReplaceStandNum())); - } - //适用车型,国内外标准,国内外法规,企业标准 有此属性 录入可多选 - if (StringUtils.isNotBlank(searchInfoEO.getApplyArctic())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getApplyArctic().equals("all") && !searchInfoEO.getApplyArctic().equals("[]")) { - boolQueryBuilder.must(QueryBuilders.matchQuery("apply_arctic", searchInfoEO.getApplyArctic())); - } - } - //能源种类,国内外标准,国内外法规,企业标准 有此属性 录入可多选 - if (StringUtils.isNotBlank(searchInfoEO.getEnergyKind())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getEnergyKind().equals("all") && !searchInfoEO.getEnergyKind().equals("[]") ) { - boolQueryBuilder.must(QueryBuilders.matchQuery("energy_kind", searchInfoEO.getEnergyKind())); - } - } - //适用认证,国内外标准,国内外法规 有此属性 录入可多选 - if (StringUtils.isNotBlank(searchInfoEO.getApplyAuth())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getApplyAuth().equals("all") && !searchInfoEO.getApplyAuth().equals("[]")) { - boolQueryBuilder.must(QueryBuilders.matchQuery("apply_auth", searchInfoEO.getApplyAuth())); - } - } - //责任部门 - if (StringUtils.isNotBlank(searchInfoEO.getResponsibleUnit())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("responsibleUnit", searchInfoEO.getResponsibleUnit())); - } - //发布日期 + if (searchInfoEO.getIssueTime() != null) { Long starttime = searchInfoEO.getIssueTime().getTime(); Long endtime = searchInfoEO.getIssueTime().getTime(); RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); boolQueryBuilder.filter(rangeQueryBuilder); } - //实施日期,国内外标准,国内外法规,企业标准 有此属性 - if (searchInfoEO.getPutTime() != null) { - Long starttime = searchInfoEO.getPutTime().getTime(); - Long endtime = searchInfoEO.getPutTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + if (StringUtils.isNotBlank(searchInfoEO.getIssueCompany())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("issueCompany.keyword", "*"+searchInfoEO.getIssueCompany()+"*")); + } + if (searchInfoEO.getIssueTime() != null) { + Long startTime = searchInfoEO.getIssueTime().getTime(); + Long endTime = searchInfoEO.getIssueTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(startTime).to(endTime).includeLower(true).includeUpper(true); boolQueryBuilder.filter(rangeQueryBuilder); } - //内容摘要 - if (StringUtils.isNotBlank(searchInfoEO.getSynopsis())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("synopsis", searchInfoEO.getSynopsis())); - } - //标准英文名称 - if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("standEnName", searchInfoEO.getStandEnName())); - } - //新定型车实施日期 - if (searchInfoEO.getNewcarPutTime() != null) { - Long starttime = searchInfoEO.getNewcarPutTime().getTime(); - Long endtime = searchInfoEO.getNewcarPutTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("newcarPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + if (searchInfoEO.getCommentCycleStart() != null) { + Long startTime = searchInfoEO.getCommentCycleStart().getTime(); + Long endTime = searchInfoEO.getCommentCycleStart().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("commentCycleStart_data").format(EPOCH_MILLIS).from(startTime).to(endTime).includeLower(true).includeUpper(true); boolQueryBuilder.filter(rangeQueryBuilder); } - //在产车实施日期 - if (searchInfoEO.getProductPutTime() != null) { - Long starttime = searchInfoEO.getProductPutTime().getTime(); - Long endtime = searchInfoEO.getProductPutTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("productPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + if (searchInfoEO.getCommentCycleEnd() != null) { + Long startTime = searchInfoEO.getCommentCycleEnd().getTime(); + Long endTime = searchInfoEO.getCommentCycleEnd().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("commentCycleEnd_data").format(EPOCH_MILLIS).from(startTime).to(endTime).includeLower(true).includeUpper(true); boolQueryBuilder.filter(rangeQueryBuilder); } - //新生产车实施日期 - if (searchInfoEO.getNewproductPutTime() != null) { - Long starttime = searchInfoEO.getNewproductPutTime().getTime(); - Long endtime = searchInfoEO.getNewproductPutTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("newproductPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); - } - //新生产车实施日期 - if (searchInfoEO.getRegisterPutTime() != null) { - Long starttime = searchInfoEO.getRegisterPutTime().getTime(); - Long endtime = searchInfoEO.getRegisterPutTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("registerPutTime").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); - } - //被代替标准号 - if (StringUtils.isNotBlank(searchInfoEO.getReplacedStandNum())) { - boolQueryBuilder.must(QueryBuilders.matchQuery(replacedStandNumStr, searchInfoEO.getReplacedStandNum())); - } - //关键词 - if (StringUtils.isNotBlank(searchInfoEO.getTags())) { - boolQueryBuilder.must(QueryBuilders.matchQuery("standTag", searchInfoEO.getTags())); - } - //所属类别,国内外标准, 有此属性 - if (StringUtils.isNotBlank(searchInfoEO.getCategory())) { - // 如果等于All,相当于不限制,查询全部 - if (!searchInfoEO.getCategory().equals("all") && !searchInfoEO.getCategory().equals("[]")) { - boolQueryBuilder.must(QueryBuilders.matchQuery("category", searchInfoEO.getCategory())); + + if (StringUtils.isNotBlank(searchInfoEO.getLawsTextState())) { + List list = Arrays.asList(searchInfoEO.getLawsTextState().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + if(list.size() > 1){ + BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); + list.forEach(s -> { + boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("lawsTextState.keyword", "*"+s+"*")); + }); + boolQueryBuilder.must(boolQueryBuilderShould); + }else { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsTextState.keyword", "*"+searchInfoEO.getLawsTextState()+"*")); } } - //发布时间范围 - if (searchInfoEO.getIssueTimeSt() != null || searchInfoEO.getIssueTimeEd() != null) { - Long starttime = 0L; - Long endtime = 0L; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - if (searchInfoEO.getIssueTimeSt() != null) { - starttime = searchInfoEO.getIssueTimeSt().getTime(); - } else { - starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + if (StringUtils.isNotBlank(searchInfoEO.getLawsSyqy())) { + List list = Arrays.asList(searchInfoEO.getLawsSyqy().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + if(list.size() > 1){ + BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); + list.forEach(s -> { + boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("lawsSyqy.keyword", "*"+s+"*")); + }); + boolQueryBuilder.must(boolQueryBuilderShould); + }else { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSyqy.keyword", "*"+searchInfoEO.getLawsSyqy()+"*")); } - if (searchInfoEO.getIssueTimeEd() != null) { - endtime = searchInfoEO.getIssueTimeEd().getTime(); - } else { - endtime = sdf.parse("2999-01-01 00:00:00").getTime(); - } - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); } - if (searchInfoEO.getPutTimeSt() != null || searchInfoEO.getPutTimeEd() != null) { - Long starttime = 0L; - Long endtime = 0L; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - if (searchInfoEO.getPutTimeSt() != null) { - starttime = searchInfoEO.getPutTimeSt().getTime(); - } else { - starttime = sdf.parse("1970-01-01 00:00:00").getTime(); + if (StringUtils.isNotBlank(searchInfoEO.getLawsSycx())) { + List list = Arrays.asList(searchInfoEO.getLawsSycx().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + if(list.size() > 1){ + BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); + list.forEach(s -> { + boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("lawsSycx.keyword", "*"+s+"*")); + }); + boolQueryBuilder.must(boolQueryBuilderShould); + }else { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsSycx.keyword", "*"+searchInfoEO.getLawsSycx()+"*")); } - if (searchInfoEO.getPutTimeEd() != null) { - endtime = searchInfoEO.getPutTimeEd().getTime(); - } else { - endtime = sdf.parse("2999-01-01 00:00:00").getTime(); - } - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(PUT_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); } + + if (StringUtils.isNotBlank(searchInfoEO.getIsRelateAccess())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("isRelateAccess.keyword", "*"+searchInfoEO.getIsRelateAccess()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsYear())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsYear.keyword", "*"+searchInfoEO.getLawsYear()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsNotisyncNum())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsNotisyncNum.keyword", "*"+searchInfoEO.getLawsNotisyncNum()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsBulletin())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsBulletin.keyword", "*"+searchInfoEO.getLawsBulletin()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsLabel())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsLabel.keyword", "*"+searchInfoEO.getLawsLabel()+"*")); + } + + if (StringUtils.isNotBlank(searchInfoEO.getLawsRemark())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("lawsRemark.keyword", "*"+searchInfoEO.getLawsRemark()+"*")); + } + querySeniorMsg(searchInfoEO,boolQueryBuilder); return boolQueryBuilder; } @@ -625,51 +667,49 @@ public class SearchCenterServiceImpl implements SearchCenterService { * boolQueryBuilder :must * */ public BoolQueryBuilder queryBussStandMsg(SeniorSearchInfoEO searchInfoEO, BoolQueryBuilder boolQueryBuilder, SearchRequestBuilder searchRequestBuilder) throws Exception{ - if(searchInfoEO.getSelectValue() == null || searchInfoEO.getSelectValue().equals("")){ - // 高级搜索项,只针对标准 - if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandName())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getStandName()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*")); - } - if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) { - List list = Arrays.asList(searchInfoEO.getTextStatusBuss().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); - if(list.size() > 1){ - BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); - list.forEach(s -> { - boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+s+"*")); - }); - boolQueryBuilder.must(boolQueryBuilderShould); - }else { - boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getTextStatusBuss()+"*")); - } - } + // 高级搜索项,只针对标准 + if (StringUtils.isNotBlank(searchInfoEO.getStandSort())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standSort.keyword", "*"+searchInfoEO.getStandSort()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandCode())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standNumber.keyword", "*"+searchInfoEO.getStandCode()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandYear())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standYear.keyword", "*"+searchInfoEO.getStandYear()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("stand_name.keyword", "*"+searchInfoEO.getStandName()+"*")); + } + if (StringUtils.isNotBlank(searchInfoEO.getStandEnName())) { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getStandEnName()+"*")); + } - if (searchInfoEO.getIssueTime() != null) { - Long starttime = searchInfoEO.getIssueTime().getTime(); - Long endtime = searchInfoEO.getIssueTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); + if (StringUtils.isNotBlank(searchInfoEO.getTextStatusBuss())) { + List list = Arrays.asList(searchInfoEO.getTextStatusBuss().split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + if(list.size() > 1){ + BoolQueryBuilder boolQueryBuilderShould = new BoolQueryBuilder(); + list.forEach(s -> { + boolQueryBuilderShould.should(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+s+"*")); + }); + boolQueryBuilder.must(boolQueryBuilderShould); + }else { + boolQueryBuilder.must(QueryBuilders.wildcardQuery("textStatusBuss.keyword", "*"+searchInfoEO.getTextStatusBuss()+"*")); } + } - if (searchInfoEO.getPutTime() != null) { - Long starttime = searchInfoEO.getPutTime().getTime(); - Long endtime = searchInfoEO.getPutTime().getTime(); - RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); - boolQueryBuilder.filter(rangeQueryBuilder); - } + if (searchInfoEO.getIssueTime() != null) { + Long starttime = searchInfoEO.getIssueTime().getTime(); + Long endtime = searchInfoEO.getIssueTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(ISSUE_TIME).format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); + } + if (searchInfoEO.getPutTime() != null) { + Long starttime = searchInfoEO.getPutTime().getTime(); + Long endtime = searchInfoEO.getPutTime().getTime(); + RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("put_time_data").format(EPOCH_MILLIS).from(starttime).to(endtime).includeLower(true).includeUpper(true); + boolQueryBuilder.filter(rangeQueryBuilder); } querySeniorMsg(searchInfoEO,boolQueryBuilder); return boolQueryBuilder; @@ -679,22 +719,45 @@ public class SearchCenterServiceImpl implements SearchCenterService { public QueryBuilder queryInResult(SeniorSearchInfoEO searchInfoEO){ // 记录搜索记录到数据库中 QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery(""); + BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); + List fieldList = getStringField(searchInfoEO); + List fieldNameList = new ArrayList<>(); + String[] standStr = {"content","standSort","standNumber","standYear","stand_name","standEnName","standNatureName", + "textStatusName","isRelateAccessName","numbershow","standSystem"}; + String[] lawsStr = {"content","lawsType","lawsNumber","lawsName","lawsEnName","lawsNo","issueCompany","lawsTextState","lawsSyqy","lawsSycx","isRelateAccess","lawsYear","lawsNotisyncNum","lawsBulletin","lawsLabel","lawsRemark"}; + String[] bussstandStr = {"content","standSort","stand_code","standYear","stand_name","standEnName","nameshow","standstateshow","numbershow","textStatusBuss"}; + for (String field : fieldList) { + // 关键字查询属性字段 + String keyWordField2 = field + "Name"; + fieldNameList.add(keyWordField2); + } switch (searchInfoEO.getSelectIndex()){ case "stand": - multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), - numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standSortShow","standstateshow","countryShow","standEnName", - "synopsis","baseSearchContent",content,"CYSDShow","CLLXShow","standstateshow","ZRLXShow","stand_name","stand_number","citeStand","DTBJH","FGXXSXXXShow","CBBH","YYBJ","XGLC","synopsis","isRelateAccess","GKDWShow","CYSDShow","FBJGShow","ZRLXShow","GXHBQShow","GZZXXName","YQLXShow","FGWHRName","ZRBMName","XGBMShow","SVPPSName","FOShow","XMPGJSShow","BDTBZBH","BYYBJ","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ").minimumShouldMatch("100%"); + List listStrings = Stream.of(standStr).collect(Collectors.toList()); + listStrings.addAll(fieldNameList); + String[] fieldArr = listStrings.stream().toArray(String[]::new); + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldArr + ).minimumShouldMatch("100%"); +// boolQueryBuilder.should(); +// for (String field : fieldList) { +// // 关键字查询属性字段 +// String keyWordField2 = field + "Name.keyword"; +// boolQueryBuilder.should(QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),keyWordField2).minimumShouldMatch("100%")); +// } break; case "laws": - multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), - numbershowSplit,nameshowSplit,nameshowStr,numbershowStr,"numberExpNull","standstateshow","countryShow", "natureShow", "replace_laws_num", - "synopsis","standEnName",replacedStandNumStr,"baseSearchContent",content,"CYSDShow","SYCLLXShow","standstateshow","ZRLXShow","stand_number","isRelateAccess","YQLXShow","SYCLLXShow","GXHBQShow","ZCGCSShow","FBJGShow","SVPPSName","XGBMShow","ZRBMShow","FOShow","GKGLBMShow","WSSFCYShow","replaceLawsNum","replacedLawsNum","XMPGJSShow","issue_time","ZCCSSRQ","XCXSSRQ","EOPSSRQ","XGLC").minimumShouldMatch("100%"); + List listStringLaws = Stream.of(lawsStr).collect(Collectors.toList()); + listStringLaws.addAll(fieldNameList); + String[] fieldLawsArr = listStringLaws.stream().toArray(String[]::new); + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldLawsArr + ).minimumShouldMatch("100%"); break; case "bussstand": - multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(), - numbershowSplit,nameshowSplit,numbershowStr,nameshowStr,"numberExpNull","standstateshow", "standEnName",replaceStandNumStr, - replacedStandNumStr,"countryShow","synopsis","standSortShow","ZQCBMShow","ZQCBM","stand_status", - "baseSearchContent",content,"numbershow","nameshow","standstateshow","issue_time","replaceStandNum","replacedStandNum","QBMJShow","QBSQShow","XHQBMShow","SVPPSName","XGBMName","ZYQCRShow","ZRBMShow","ZQCBMName","QTQCRShow","content","FSRQString","FZRQString","put_time","XGLC","WFSPJSName").minimumShouldMatch("100%"); + List listStringBussstand = Stream.of(bussstandStr).collect(Collectors.toList()); + listStringBussstand.addAll(fieldNameList); + String[] fieldBussstandArr = listStringBussstand.stream().toArray(String[]::new); + multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),fieldBussstandArr + ).minimumShouldMatch("100%"); break; default: break; } @@ -716,7 +779,7 @@ public class SearchCenterServiceImpl implements SearchCenterService { String[] seniortypeStand = {"standSort", "statecode","CYSD","ZRLX","CLLX","CBCD","textStatus","textStatusName"}; seniortype = seniortypeStand.clone(); } else if("laws".equals(searchInfoEO.getSelectIndex())){ - String[] seniortypeLaws = {"country","statecode","SYCLLX","ZRLX","WSSFCY"}; + String[] seniortypeLaws = {"lawsSyqy","lawsSycx","CYSDLAWS"}; seniortype = seniortypeLaws.clone(); } else if ("bussstand".equals(searchInfoEO.getSelectIndex())) { String[] seniortypeBuss = {"textStatusBuss","QCDW"}; @@ -752,19 +815,19 @@ public class SearchCenterServiceImpl implements SearchCenterService { for (String itemkeyname: keynamelist){ // put 之前判断是否已存在该key ,如果不存在,直接放入值,如果存在,需要进行一个累加 if(submap.containsKey(itemkeyname)){ - submap.put(itemkeyname, (long)submap.get(itemkeyname)+ bucket.getDocCount()); + submap.put(itemkeyname.trim(), (long)submap.get(itemkeyname)+ bucket.getDocCount()); } else { - submap.put(itemkeyname, bucket.getDocCount()); + submap.put(itemkeyname.trim(), bucket.getDocCount()); } } } else { if(submap.containsKey(keyname)){ - submap.put(keyname, (long)submap.get(keyname)+ bucket.getDocCount()); + submap.put(keyname.trim(), (long)submap.get(keyname)+ bucket.getDocCount()); } else { - submap.put(keyname, bucket.getDocCount()); + submap.put(keyname.trim(), bucket.getDocCount()); } } } diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java index 21240490..e6593226 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java @@ -243,34 +243,42 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { attrInfoMap.put(key, "null"); } } - fullTextSearchEO.put("title",attrInfoMap.get("numbershow")+" "+attrInfoMap.get("nameshow")); + fullTextSearchEO.put("title",attrInfoMap.get("lawsNumber")+" "+attrInfoMap.get("lawsNumber")); StringBuilder contentBuilder = new StringBuilder(); - contentBuilder.append("适用区域: ").append(attrInfoMap.get("countryShow")).append(" "); - contentBuilder.append("政策状态: ").append(attrInfoMap.get("standstateshow")).append(" "); - contentBuilder.append("政策号: ").append(attrInfoMap.get("numbershow")).append(" "); - contentBuilder.append("政策名称: ").append(attrInfoMap.get("nameshow")).append(" "); - contentBuilder.append("英文名称: ").append(attrInfoMap.get("standEnName")).append(" "); + contentBuilder.append("政策分类: ").append(attrInfoMap.get("lawsTypeName")).append(" "); + contentBuilder.append("政策编号: ").append(attrInfoMap.get("lawsNumber")).append(" "); + contentBuilder.append("中文名称: ").append(attrInfoMap.get("lawsName")).append(" "); + contentBuilder.append("英文名称: ").append(attrInfoMap.get("lawsEnName")).append(" "); + contentBuilder.append("政策文号: ").append(attrInfoMap.get("lawsNo")).append(" "); // contentBuilder.append("发布日期:"+attrInfoMap.get("issueTime")+" "); - contentBuilder.append("纳入标准法规清单的国家/地区: ").append(attrInfoMap.get("accessCountry")).append(" "); - contentBuilder.append("代替政策编号: ").append(attrInfoMap.get("replaceLawsNum")).append(" "); - contentBuilder.append("重要度: ").append(attrInfoMap.get("isRelateAccess")).append(" "); - contentBuilder.append("要求类型: ").append(attrInfoMap.get("YQLXShow")).append(" "); - contentBuilder.append("适用车辆类型: ").append(attrInfoMap.get("SYCLLXShow")).append(" "); -// contentBuilder.append("监管类型:"+attrInfoMap.get("")+" "); - contentBuilder.append("监管类型: ").append(attrInfoMap.get("ZRLXShow")).append(" "); - contentBuilder.append("个性化标签: ").append(attrInfoMap.get("GXHBQShow")).append(" "); - contentBuilder.append("新车型实施日期(文本): ").append(attrInfoMap.get("XCXSSRQ")).append(" "); - contentBuilder.append("在产车实施日期(文本): ").append(attrInfoMap.get("ZCCSSRQ")).append(" "); - contentBuilder.append("EOP实施日期(文本): ").append(attrInfoMap.get("EOPSSRQ")).append(" "); - contentBuilder.append("维护工程师: ").append(attrInfoMap.get("ZCGCSShow")).append(" "); - contentBuilder.append("组织标准起草的执行机构/单位: ").append(attrInfoMap.get("FBJGShow")).append(" "); - contentBuilder.append("SVPPS: ").append(attrInfoMap.get("SVPPSName")).append(" "); - contentBuilder.append("相关部门: ").append(attrInfoMap.get("XGBMShow")).append(" "); - contentBuilder.append("责任部门: ").append(attrInfoMap.get("ZRBMShow")).append(" "); - contentBuilder.append("FO: ").append(attrInfoMap.get("FOShow")).append(" "); - contentBuilder.append("归口管理部门: ").append(attrInfoMap.get("GKGLBMShow")).append(" "); - contentBuilder.append("我司是否参与: ").append(attrInfoMap.get("WSSFCYShow")).append(" "); - contentBuilder.append("相关流程: ").append(attrInfoMap.get("XGLC")).append(" "); + contentBuilder.append("地区: ").append(attrInfoMap.get("country")).append(" "); + contentBuilder.append("发文日期: ").append(attrInfoMap.get("issueTime")).append(" "); + contentBuilder.append("发文单位: ").append(attrInfoMap.get("issueCompany")).append(" "); + contentBuilder.append("征集意见周期-起始时间: ").append(attrInfoMap.get("commentCycleStart")).append(" "); + contentBuilder.append("征集意见周期-结束时间: ").append(attrInfoMap.get("commentCycleEnd")).append(" "); + contentBuilder.append("文本状态: ").append(attrInfoMap.get("lawsTextStateName")).append(" "); + contentBuilder.append("适用区域: ").append(attrInfoMap.get("lawsSyqyName")).append(" "); + contentBuilder.append("适用车型: ").append(attrInfoMap.get("lawsSycxName")).append(" "); + contentBuilder.append("是否纳入认证清单: ").append(attrInfoMap.get("isRelateAccessName")).append(" "); + contentBuilder.append("年度: ").append(attrInfoMap.get("lawsYearName")).append(" "); + contentBuilder.append("福田转发通知文号: ").append(attrInfoMap.get("lawsNotisyncNum")).append(" "); + contentBuilder.append("信息简报: ").append(attrInfoMap.get("lawsBulletin")).append(" "); + contentBuilder.append("标签: ").append(attrInfoMap.get("lawsLabel")).append(" "); + contentBuilder.append("备注: ").append(attrInfoMap.get("lawsRemark")).append(" "); + contentBuilder.append("实施日期(文本): ").append(attrInfoMap.get("SSRQLAWSName")).append(" "); + contentBuilder.append("新车型实施日期(文本): ").append(attrInfoMap.get("XCXSSRQLAWSName")).append(" "); + contentBuilder.append("在产车实施日期(文本): ").append(attrInfoMap.get("ZCXSSRQLAWSName")).append(" "); + contentBuilder.append("发布机构: ").append(attrInfoMap.get("FBJGLAWSName")).append(" "); + contentBuilder.append("我司参与深度: ").append(attrInfoMap.get("CYSDLAWSName")).append(" "); + contentBuilder.append("投稿人: ").append(attrInfoMap.get("TGRLAWSName")).append(" "); + contentBuilder.append("投稿单位: ").append(attrInfoMap.get("TGRLAWSName")).append(" "); + contentBuilder.append("能源类型: ").append(attrInfoMap.get("NYLXLAWSName")).append(" "); + contentBuilder.append("适用认证: ").append(attrInfoMap.get("YYRZLAWSName")).append(" "); + contentBuilder.append("责任部门: ").append(attrInfoMap.get("ZRBMLAWSName")).append(" "); + contentBuilder.append("责任工程师: ").append(attrInfoMap.get("ZRGCSLAWSName")).append(" "); + contentBuilder.append("代替文件号: ").append(attrInfoMap.get("DTWJHLAWSName")).append(" "); + contentBuilder.append("被代替文件号: ").append(attrInfoMap.get("BDTWJHLAWSName")).append(" "); + contentBuilder.append("引用标准&政策: ").append(attrInfoMap.get("YYBZZCLAWSName")).append(" "); // contentBuilder.append("相关资料:"+attrInfoMap.get("")+" "); if (attrInfoMap.containsKey("content")){ if (null !=attrInfoMap.get("content") && StringUtils.isNotBlank(String.valueOf(attrInfoMap.get("content")))){ @@ -285,10 +293,10 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService { StringBuilder textContent = replaceAll(contentBuilder, "null", "--"); fullTextSearchEO.put("textContent",textContent.toString()); - if (null != attrInfoMap.get("issue_time") && !"".equals(attrInfoMap.get("issue_time")) && !"null".equals(attrInfoMap.get("issue_time"))) { - fullTextSearchEO.put("issue_time", attrInfoMap.get("issue_time")); + if (null != attrInfoMap.get("issueTime") && !"".equals(attrInfoMap.get("issueTime")) && !"null".equals(attrInfoMap.get("issueTime"))) { + fullTextSearchEO.put("issue_time", attrInfoMap.get("issueTime")); }else { - fullTextSearchEO.put("issue_time", ""); + fullTextSearchEO.put("issue_time", "--"); } }else if ("bussstand".equals(attrInfoMap.get("type"))){ diff --git a/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java b/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java index 84b94060..3caafc2e 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java +++ b/adc-da-search/src/main/java/com/adc/da/search/util/InitStandAttrSearchUtil.java @@ -11,6 +11,7 @@ import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -37,9 +38,7 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { standTypeList.add(SarTypeEnum.STAND.getValue()); standTypeList.add(SarTypeEnum.INLAND_STAND.getValue()); standTypeList.add(SarTypeEnum.FOREIGN_STAND.getValue()); - lawsTypeList.add(SarTypeEnum.LAWS.getValue()); - lawsTypeList.add(SarTypeEnum.INLAND_LAWS.getValue()); - lawsTypeList.add(SarTypeEnum.FOREIGN_LAWS.getValue()); + lawsTypeList.add(SarTypeEnum.LAWS_STAND.getValue()); standStateList.add("DRAFT"); standStateList.add("ADVICE"); standStateList.add("RADYSUBMIT"); @@ -78,6 +77,7 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { public static List numFieldListLaws = new ArrayList<>(); // 属性表数字类型字段 public static List lawsInlandAttrFieldList = new ArrayList<>(); // 属性表数字类型字段 public static List lawsForeignAttrFieldList = new ArrayList<>(); // 全部政策字段属性 + public static List lawsStandAttrFieldList = new ArrayList<>(); // 全部政策字段属性 public static Map selectFieldMapLaws = new HashMap<>(); // 下拉属性字段及选项值 // 企标属性字段信息 @@ -95,7 +95,7 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { - logger.info("项目启动时加载-搜索中心-查询标准属性类!"); + logger.info("项目启动时加载--查询标准属性类!"); // 属性表需要查询的字段 StringBuilder fieldInfoBuilder = new StringBuilder(); StringBuilder fieldInfoBuilderLaws = new StringBuilder(); @@ -108,7 +108,7 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { qw.orderByAsc("ORDER_NUM"); List getDetailsList = sarStandAttrDetailsEOService.list(qw); if (getDetailsList != null && !getDetailsList.isEmpty()) { - logger.info("项目启动时加载-搜索中心-查询标准属性类--查询到" + getDetailsList.size() + "条属性字段数据!"); + logger.info("项目启动时加载--查询标准属性类--查询到" + getDetailsList.size() + "条属性字段数据!"); for (SarStandAttrDetails detailsEO : getDetailsList) { String sarType = detailsEO.getSarType(); String attrType = detailsEO.getAttrType(); @@ -137,12 +137,16 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { numFieldList.add(detailsEO.getAttrField()); } } else if (lawsTypeList.contains(sarType)) { - if (!SarTypeEnum.FOREIGN_LAWS.getValue().equals(sarType)) { - lawsInlandAttrFieldList.add(detailsEO); - } - if (!SarTypeEnum.INLAND_LAWS.getValue().equals(sarType)) { + if (SarTypeEnum.FOREIGN_LAWS.getValue().equals(sarType)) { lawsForeignAttrFieldList.add(detailsEO); } + if (SarTypeEnum.LAWS_STAND.getValue().equals(sarType)) { + lawsStandAttrFieldList.add(detailsEO); + } + + if (SarTypeEnum.INLAND_LAWS.getValue().equals(sarType)) { + lawsInlandAttrFieldList.add(detailsEO); + } fieldInfoBuilderLaws.append(detailsEO.getAttrField() + ","); fieldInfoNameBuilderLaws.append(detailsEO.getAttrName() + ","); queryFieldListLaws.add(detailsEO.getAttrField()); @@ -193,9 +197,9 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { if (StringUtils.isNotBlank(queryFieldBuss)) { queryFieldBuss = queryFieldBuss.substring(0,queryFieldBuss.length()-1); } - logger.info("项目启动时加载-搜索中心-查询标准属性类--查询到属性字段为:" + queryField); - logger.info("项目启动时加载-搜索中心-查询政策属性类--查询到属性字段为:" + queryFieldLaws); - logger.info("项目启动时加载-搜索中心-查询企标属性类--查询到属性字段为:" + queryFieldBuss); + logger.info("项目启动时加载--查询标准属性类--查询到属性字段为:" + queryField); + logger.info("项目启动时加载--查询政策属性类--查询到属性字段为:" + queryFieldLaws); + logger.info("项目启动时加载--查询企标属性类--查询到属性字段为:" + queryFieldBuss); queryFieldNames = fieldInfoNameBuilder.toString(); queryFieldNamesLaws = fieldInfoNameBuilderLaws.toString(); queryFieldNamesBuss = fieldInfoNameBuilderBuss.toString(); @@ -208,11 +212,11 @@ public class InitStandAttrSearchUtil implements ApplicationRunner { if (StringUtils.isNotBlank(queryFieldNamesBuss)) { queryFieldNamesBuss = queryFieldNamesBuss.substring(0,queryFieldNamesBuss.length()-1); } - logger.info("项目启动时加载-搜索中心-查询标准属性类--查询到属性字段名称为:" + queryFieldNames); - logger.info("项目启动时加载-搜索中心-查询政策属性类--查询到属性字段名称为:" + queryFieldNamesLaws); - logger.info("项目启动时加载-搜索中心-查询企标属性类--查询到属性字段名称为:" + queryFieldNamesBuss); + logger.info("项目启动时加载--查询标准属性类--查询到属性字段名称为:" + queryFieldNames); + logger.info("项目启动时加载--查询政策属性类--查询到属性字段名称为:" + queryFieldNamesLaws); + logger.info("项目启动时加载--查询企标属性类--查询到属性字段名称为:" + queryFieldNamesBuss); } else { - logger.error("项目启动时加载-搜索中心-查询标准属性类--未查询到属性字段数据!"); + logger.error("项目启动时加载--查询标准属性类--未查询到属性字段数据!"); } } diff --git a/adc-da-search/src/main/java/com/adc/da/search/util/SarTypeEnum.java b/adc-da-search/src/main/java/com/adc/da/search/util/SarTypeEnum.java index 6a0731ca..6ffdf0e8 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/util/SarTypeEnum.java +++ b/adc-da-search/src/main/java/com/adc/da/search/util/SarTypeEnum.java @@ -11,6 +11,7 @@ public enum SarTypeEnum { FOREIGN_STAND("FOREIGN_STAND","国外标准法规"),FOREIGN_LAWS("FOREIGN_LAWS","国外政策"), STAND("STAND","国内外标准法规"), LAWS("LAWS","国内外政策"), + LAWS_STAND("LAWS_STAND","国内外政策"), BUSINESS("BUSINESS","企业标准"), BUSS("BUSS","企业标准"), SPLIT("SPLIT","标准拆分"), diff --git a/adc-da-slrs/src/main/java/com/adc/da/common/SarTypeEnum.java b/adc-da-slrs/src/main/java/com/adc/da/common/SarTypeEnum.java index cc804198..d41522ac 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/common/SarTypeEnum.java +++ b/adc-da-slrs/src/main/java/com/adc/da/common/SarTypeEnum.java @@ -11,6 +11,7 @@ public enum SarTypeEnum { FOREIGN_STAND("FOREIGN_STAND","国外标准法规"),FOREIGN_LAWS("FOREIGN_LAWS","国外政策"), STAND("STAND","国内外标准法规"), LAWS("LAWS","国内外政策"), + LAWS_STAND("LAWS_STAND","国内外政策"), BUSINESS("BUSINESS","企业标准"), BUSS("BUSS","企业标准"), SPLIT("SPLIT","标准拆分"), diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/CreateStandMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/CreateStandMQService.java index 1ac295d6..d72f08db 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/mq/CreateStandMQService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/CreateStandMQService.java @@ -2,6 +2,7 @@ package com.adc.da.mq; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; import com.adc.da.slrs.sarLawsInfo.entity.SarLawsInfo; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; import net.sf.json.JSONObject; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; @@ -32,15 +33,17 @@ public class CreateStandMQService { this.rabbitTemplate.convertAndSend("stand-exchange_SQ_GSAR_RELEASE", "stand-key_SQ_GSAR_RELEASE", standMap); } - public void sendLawsMQ(SarLawsInfo sarLawsInfoEO, String addOrUpdate) throws Exception{ - JSONObject json = JSONObject.fromObject(sarLawsInfoEO); - String sarLawsInfoStr = json.toString(); + public void sendLawsMQ(SarLawsStandInfo sarLawsStandInfo, String addOrUpdate) throws Exception{ +// JSONObject json = JSONObject.fromObject(sarLawsStandInfo); + com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(sarLawsStandInfo); + + String sarLawsInfoStr = object.toString(); Map lawsMap = new HashMap(); lawsMap.put("sarLaws", sarLawsInfoStr); lawsMap.put("addOrUpdate", addOrUpdate); //发送消息队列 - this.rabbitTemplate.convertAndSend("laws-exchange_SQ_GSAR", "laws-key_SQ_GSAR", lawsMap); + this.rabbitTemplate.convertAndSend("laws-exchange_SQ_GSAR_RELEASE", "laws-key_SQ_GSAR_RELEASE", lawsMap); } public void sendBussStandMQ(Object sarBussionessStandEO, String addOrUpdate) throws Exception{ diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java new file mode 100644 index 00000000..9ec25207 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/SendLawsMQService.java @@ -0,0 +1,324 @@ +package com.adc.da.mq; + +import com.adc.da.slrs.otSvpps.service.IOtSvppsService; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; +import com.adc.da.slrs.sysInfo.service.SysInfoEOService; +import com.adc.da.sys.dao.DicTypeEODao; +import com.adc.da.utils.util.InitStandAttrUtil; +import com.alibaba.fastjson.JSON; +import com.rabbitmq.client.Channel; +import net.sf.json.JSONObject; +import org.apache.commons.lang.StringUtils; +import org.json.JSONTokener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.messaging.Message; +import org.springframework.stereotype.Component; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +@Component +public class SendLawsMQService { + + @Autowired + private ISarStandardsInfoService sarStandardsInfoService; + + @Autowired + private SysInfoEOService sysInfoEOService; + + @Autowired + private DicTypeEODao dicTypeEODao; + + private static final Logger logger = LoggerFactory.getLogger(SendLawsMQService.class); + + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(value = "createLawsMQ_SQ_GSAR_RELEASE", durable = "true"), + exchange = @Exchange(value = "laws-exchange_SQ_GSAR_RELEASE", ignoreDeclarationExceptions = "true"), + key = "laws-key_SQ_GSAR_RELEASE")) + public void createMQ(Map bussMap, Message message, Channel channel) throws Exception{ + try{ + try{ + Thread.sleep(5000); + insertOrUpdateBussInfo(bussMap); + }catch(InterruptedException e){ + logger.error(e.toString()); + Thread.currentThread().interrupt(); + } + } catch (Exception e) { + logger.error("搜索中心国内外政策消息队列进入转换前失败!"); + logger.error(e.getMessage(),e); + } finally { + Long tag = (Long) message.getHeaders().get(AmqpHeaders.DELIVERY_TAG); + channel.basicAck(tag,false); + logger.debug("消息确认成功!!!!!!!!!"); + } + } + + public void insertOrUpdateBussInfo(Map bussMap) throws Exception { + String addOrUpdate = bussMap.get("addOrUpdate").toString(); + String sarBuss = bussMap.get("sarLaws").toString(); + JSONObject jsonobject = JSONObject.fromObject(sarBuss); + SarLawsStandInfo infoEO = com.alibaba.fastjson.JSONObject.parseObject(sarBuss,SarLawsStandInfo.class); + + if(infoEO.getMapItems() == null || infoEO.getMapItems().isEmpty()){ + if(jsonobject.get("mapItems") != null){ + infoEO.setMapItems(net.sf.json.JSONObject.fromObject(jsonobject.get("mapItems"))); + } + } +// SarLawsStandInfo infoEO = (SarLawsStandInfo) JSONObject.toBean(jsonobject,SarLawsStandInfo.class); + + String FZRQFSRQ = null; + if ("updateFromAct".equals(addOrUpdate)){ + addOrUpdate = "update"; + FZRQFSRQ = "1"; + } + + String sarStandAttrEOStr = infoEO.getSarStandAttrEOStr(); + Map attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr); + Map infoMap = infoEO.getAttrInfoCaseMap(); + Map infoEOMapItems = infoEO.getMapItems(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + //修改索引信息表 + // 往索引表中插入数据 + String baseSearchContent = ""; + String getCodeName = ""; + Map saveMap = new HashMap<>(); + saveMap.put("standType","laws"); + //发布日期 高级查询 + saveMap.put("issueTime",dateFormatToStr(infoEO.getIssueTime())); + Date issue_time_data = null; + if (StringUtils.isNotBlank(infoEO.getIssueTime())) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + issue_time_data = format.parse(dateFormatToStr(infoEO.getIssueTime())+" 00:00:00"); + } catch (ParseException ignored) { + } + } + if (issue_time_data != null) { + saveMap.put("issue_time_data",issue_time_data.getTime()); + }else{ + saveMap.put("issue_time_data",-1000000000000000000L); + } + + //征集意见周期-起始时间 + saveMap.put("commentCycleStart",dateFormatToStr(infoEO.getCommentCycleStart())); + Date commentCycleStart_data = null; + if (StringUtils.isNotBlank(infoEO.getCommentCycleStart())) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + commentCycleStart_data = format.parse(dateFormatToStr(infoEO.getCommentCycleStart())+" 00:00:00"); + } catch (ParseException ignored) { + } + } + if (commentCycleStart_data != null) { + saveMap.put("commentCycleStart_data",commentCycleStart_data.getTime()); + }else{ + saveMap.put("commentCycleStart_data",-1000000000000000000L); + } + + //征集意见周期-结束时间 + saveMap.put("commentCycleEnd",dateFormatToStr(infoEO.getCommentCycleEnd())); + Date commentCycleEnd_data = null; + if (StringUtils.isNotBlank(infoEO.getCommentCycleStart())) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + commentCycleEnd_data = format.parse(dateFormatToStr(infoEO.getCommentCycleStart())+" 00:00:00"); + } catch (ParseException ignored) { + } + } + if (commentCycleEnd_data != null) { + saveMap.put("commentCycleEnd_data",commentCycleEnd_data.getTime()); + }else{ + saveMap.put("commentCycleEnd_data",-1000000000000000000L); + } + + saveMap.put("id",infoEO.getId()); + String lawsTypeName = ""; + if(infoEO.getLawsTextState() != null && StringUtils.isNotBlank(infoEO.getLawsType())){ + List valArr = Arrays.asList(infoEO.getLawsType().split(",")); + lawsTypeName = dicTypeEODao.getDicNamesByCodes(valArr); + } + saveMap.put("lawsType",infoEO.getLawsType()); + saveMap.put("lawsTypeName",lawsTypeName); + saveMap.put("lawsNumber",infoEO.getLawsNumber()); + saveMap.put("lawsName",infoEO.getLawsName()); + saveMap.put("lawsEnName",infoEO.getLawsEnName()); + saveMap.put("lawsNo",infoEO.getLawsNo()); + saveMap.put("issueCompany",infoEO.getIssueCompany()); + String lawsSyqyName = ""; + if(infoEO.getLawsTextState() != null && StringUtils.isNotBlank(infoEO.getLawsSyqy())){ + List valArr = Arrays.asList(infoEO.getLawsSyqy().split(",")); + lawsSyqyName = dicTypeEODao.getDicNamesByCodes(valArr); + } + saveMap.put("lawsSyqy",infoEO.getLawsSyqy()); + saveMap.put("lawsSyqyName",lawsSyqyName); + String lawsSycxName = ""; + if(infoEO.getLawsTextState() != null && StringUtils.isNotBlank(infoEO.getLawsSycx())){ + List valArr = Arrays.asList(infoEO.getLawsSycx().split(",")); + lawsSycxName = dicTypeEODao.getDicNamesByCodes(valArr); + } + saveMap.put("lawsSycx",infoEO.getLawsSycx()); + saveMap.put("lawsSycxName",lawsSycxName); + String isRelateAccessName = ""; + if(infoEO.getIsRelateAccess() != null && StringUtils.isNotBlank(infoEO.getIsRelateAccess())){ + if(infoEO.getIsRelateAccess().equals("1")){ + isRelateAccessName = "是"; + }else { + isRelateAccessName = "否"; + } + } + saveMap.put("isRelateAccess",infoEO.getIsRelateAccess()); + saveMap.put("isRelateAccessName",isRelateAccessName); + String lawsYearName = ""; + if(infoEO.getLawsTextState() != null && StringUtils.isNotBlank(infoEO.getLawsYear())){ + List valArr = Arrays.asList(infoEO.getLawsYear().split(",")); + lawsYearName = dicTypeEODao.getDicNamesByCodes(valArr); + } + saveMap.put("lawsYear",infoEO.getLawsYear()); + saveMap.put("lawsYearName",lawsYearName); + saveMap.put("lawsNotisyncNum",infoEO.getLawsNotisyncNum()); + saveMap.put("lawsBulletin",infoEO.getLawsBulletin()); + String lawsLabelName = ""; + if(infoEO.getLawsTextState() != null && StringUtils.isNotBlank(infoEO.getLawsLabel())){ + List valArr = Arrays.asList(infoEO.getLawsLabel().split(",")); + lawsLabelName = dicTypeEODao.getDicNamesByCodes(valArr); + } + saveMap.put("lawsLabel",infoEO.getLawsLabel()); + saveMap.put("lawsLabelName",lawsLabelName); + saveMap.put("lawsRemark",infoEO.getLawsRemark()); + String lawsTextStateName = ""; + if(infoEO.getLawsTextState() != null && StringUtils.isNotBlank(infoEO.getLawsTextState())){ + List valArr = Arrays.asList(infoEO.getLawsTextState().split(",")); + lawsTextStateName = dicTypeEODao.getDicNamesByCodes(valArr); + } + saveMap.put("lawsTextState",infoEO.getLawsTextState()); + saveMap.put("lawsTextStateName",lawsTextStateName); + //新加字段 + saveMap.put("country",infoEO.getCountry()); + if(StringUtils.isNotEmpty(infoEO.getCountry())){ + String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getCountry()); + saveMap.put("countryShow",codeName); + } + // 自定义属性字段 + if (attrInfoMap != null && !attrInfoMap.isEmpty()) { + attrInfoMap = sysInfoEOService.changeSelectInfo(attrInfoMap, "laws",baseSearchContent); + saveMap.putAll(attrInfoMap); + } + + saveMap.put("type","laws"); + saveMap.put("validFlag","0"); + saveMap.put("content",infoEO.getFileIds()); + + String fieldInfo = InitStandAttrUtil.queryFieldLaws; + List fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList()); + + // 动态存储属性字段 + for (String field : fieldInfoList) { + saveMap.put(field,attrInfoMap.getOrDefault(field,"")); + String fieldValue = ""; + String fieldFilter = field.toLowerCase(); + if(infoMap.get(fieldFilter) != null && StringUtils.isNotBlank(infoMap.get(fieldFilter).toString())){ + Object json= new JSONTokener(infoMap.get(fieldFilter).toString()).nextValue(); + if(!json.toString().equals("null")){ + fieldValue = infoMap.get(fieldFilter).toString(); + } + } + saveMap.put(field+"Name",fieldValue); + } + + if(infoEOMapItems != null && !infoEOMapItems.isEmpty()){ + saveMap.put("mapItems",infoEOMapItems); + } + + //当建立代替时,产生的没有文件的问题 + if (StringUtils.isBlank(String.valueOf(saveMap.get("content")))) { + String context = filterStringIsNotBlank(String.valueOf(saveMap.get("ZCWBLAWS")),true) + + filterStringIsNotBlank(String.valueOf(saveMap.get("GCWBLAWS")),true) + + filterStringIsNotBlank(String.valueOf(saveMap.get("JDWJLAWS")),true) + + filterStringIsNotBlank(String.valueOf(saveMap.get("GLWJLAWS")),true); + context = context.replace(",,", ","); + saveMap.put("content", context); + } + if("add".equals(addOrUpdate)){ + sarStandardsInfoService.insertIntoIndexForMap(saveMap); + } else { + sarStandardsInfoService.updateIntoIndexForMap(saveMap); + } + } + + private String filterStringIsNotBlank(String str,boolean boo){ + String f = ","; + return (str == null || str.equals("") || str.equals("null")) ? "" : (boo ? str+f : str); + } + + private String dateFormatToStr(String dateStr){ + if(dateStr == null || dateStr.equals("")){ + return ""; + } + String dateToStr = ""; + try { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateToStr = dateFormat.format(dateFormat.parse(dateStr.trim().substring(0,10))); + }catch (Exception e){ + e.getMessage(); + } + return dateToStr; + } + + public Map dealNumberMsg (Map saveMap,SarBussionessStand infoEO,String getCodeName) { + /*if(StringUtils.isNotEmpty(infoEO.getStandYear())){ + String num = getCodeName + " " + infoEO.getStandCode() + "-" + infoEO.getStandYear(); + saveMap.put("numbershow",num); + int index = infoEO.getStandCode().indexOf("."); + int index1 = infoEO.getStandCode().indexOf(":"); + String numberExpNull = ""; + if(index > -1){ + numberExpNull = getCodeName + infoEO.getStandCode() + "-" + num.replaceAll(" ","") + + "-" + getCodeName + infoEO.getStandCode().substring(0,index) + "-" + infoEO.getStandCode().substring(0,index); + }else if(index1 > -1){ + numberExpNull = getCodeName + infoEO.getStandCode() + "-" + num.replaceAll(" ","") + + "-" + getCodeName + infoEO.getStandCode().substring(0,index1) + "-" + infoEO.getStandCode().substring(0,index1); + }else{ + numberExpNull = getCodeName + infoEO.getStandCode() + "-" + num.replaceAll(" ",""); + } + } else { + String number = getCodeName + " " + infoEO.getStandCode(); + saveMap.put("numbershow",number); + String numberExpNull = ""; + int index = infoEO.getStandCode().indexOf("."); + if(index > -1){ + numberExpNull = getCodeName + infoEO.getStandCode() + "-" + number.replaceAll(" ","") + + "-" + getCodeName + infoEO.getStandCode().substring(0,index) + "-" + infoEO.getStandCode().substring(0,index); + }else{ + numberExpNull = getCodeName + infoEO.getStandCode() + "-" + number.replaceAll(" ",""); + } + saveMap.put("numberExpNull",numberExpNull); + }*/ + String number = infoEO.getStandCode(); + saveMap.put("numbershow",number); + String numberExpNull = ""; + int index = infoEO.getStandCode().indexOf("."); + if(index > -1){ + numberExpNull = infoEO.getStandCode() + "-" + number.replaceAll(" ","") + + "-" + infoEO.getStandCode().substring(0,index) + "-" + infoEO.getStandCode().substring(0,index); + }else{ + numberExpNull = infoEO.getStandCode() + "-" + number.replaceAll(" ",""); + } + saveMap.put("numberExpNull",numberExpNull); + return saveMap; + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarCompStatusInfo/dao/SarCompStatusInfoDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarCompStatusInfo/dao/SarCompStatusInfoDao.java index 01af8442..c6b254db 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/SarCompStatusInfo/dao/SarCompStatusInfoDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/SarCompStatusInfo/dao/SarCompStatusInfoDao.java @@ -2,6 +2,7 @@ package com.adc.da.slrs.SarCompStatusInfo.dao; import com.adc.da.slrs.SarCompStatusInfo.entity.SarCompStatusInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; /** *

@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @author super_liu * @since 2021-06-21 */ +@Repository public interface SarCompStatusInfoDao extends BaseMapper { } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index 229c613b..9e0b430d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -865,10 +865,10 @@ public class SarBussionessStandServiceImpl extends ServiceImpl getAttrMap = row.getAttrInfoMap(); + Map getAttrMap = row.getAttrInfoCaseMap(); if (getAttrMap != null && getAttrMap.size() > 0) { for (Map.Entry entry : getAttrMap.entrySet()) { - String name = entry.getKey(); + String name = entry.getKey().toUpperCase(); String value = ""; List valArr = new ArrayList<>(); if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListBuss != null && InitStandAttrUtil.selectionFieldListBuss.size() > 0 && InitStandAttrUtil.selectionFieldListBuss.contains(name)) { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/dao/SarLawsAttrInfoDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/dao/SarLawsAttrInfoDao.java index 8707ba7e..00da5665 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/dao/SarLawsAttrInfoDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/dao/SarLawsAttrInfoDao.java @@ -4,6 +4,7 @@ import com.adc.da.slrs.sarLawsAttrInfo.entity.SarLawsAttrInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; import java.util.Map; @@ -15,6 +16,7 @@ import java.util.Map; * @author super_liu * @since 2021-06-04 */ +@Repository public interface SarLawsAttrInfoDao extends BaseMapper { void deleteLawsAttr(@Param("fieldInfo") String fieldInfo); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/entity/SarLawsAttrInfo.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/entity/SarLawsAttrInfo.java index 77f0c880..9e52cac7 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/entity/SarLawsAttrInfo.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/entity/SarLawsAttrInfo.java @@ -3,12 +3,16 @@ package com.adc.da.slrs.sarLawsAttrInfo.entity; import com.adc.da.base.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; +import java.util.Date; + import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; /** *

@@ -43,68 +47,80 @@ public class SarLawsAttrInfo extends BaseEntity { @ApiModelProperty(value = "创建时间") @TableField("CREATION_TIME") - private LocalDateTime creationTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; @ApiModelProperty(value = "修改时间") @TableField("MODIFY_TIME") - private LocalDateTime modifyTime; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; - @TableField("SYCLLX") - private String sycllx; + @TableField("SSRQLAWS") + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String ssrqlaws; - @TableField("SVPPS") - private String svpps; + @TableField("XCXSSRQLAWS") + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String xcxssrqlaws; - @TableField("XCXSSRQ") - private String xcxssrq; + @TableField("ZCXSSRQLAWS") + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String zcxssrqlaws; - @TableField("ZCCSSRQ") - private String zccssrq; + @TableField("ZCWBLAWS") + private String zcwblaws; - @TableField("EOPSSRQ") - private String eopssrq; + @TableField("GCWBLAWS") + private String gcwblaws; - @TableField("XGBM") - private String xgbm; + @TableField("JDWJLAWS") + private String jdwjlaws; - @TableField("ZRBM") - private String zrbm; + @TableField("FBJGLAWS") + private String fbjglaws; - @TableField("FO") - private String fo; + @TableField("CYSDLAWS") + private String cysdlaws; - @TableField("ZRLX") - private String zrlx; + @TableField("TGRLAWS") + private String tgrlaws; - @TableField("YQLX") - private String yqlx; + @TableField("TGDWLAWS") + private String tgdwlaws; - @TableField("GXHBQ") - private String gxhbq; + @TableField("NYLXLAWS") + private String nylxlaws; - @TableField("ZCGCS") - private String zcgcs; + @TableField("YYRZLAWS") + private String yyrzlaws; - @TableField("GKGLBM") - private String gkglbm; + @TableField("ZRBMLAWS") + private String zrbmlaws; - @TableField("FBJG") - private String fbjg; + @TableField("ZRGCSLAWS") + private String zrgcslaws; - @TableField("WSSFCY") - private String wssfcy; + @TableField("DTWJHLAWS") + private String dtwjhlaws; - @TableField("ZCWB") - private String zcwb; + @TableField("BDTWJHLAWS") + private String bdtwjhlaws; - @TableField("GCGJ") - private String gcgj; - - @TableField("GLWJ") - private String glwj; + @TableField("YYBZZCLAWS") + private String yybzzclaws; @TableField("XGLC") private String xglc; + @TableField("CHJLLAWS") + private String chjllaws; + + @TableField("GLWJLAWS") + private String glwjlaws; + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/ISarLawsAttrInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/ISarLawsAttrInfoService.java index e6e1feb1..3cc07d2c 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/ISarLawsAttrInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/ISarLawsAttrInfoService.java @@ -13,4 +13,7 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ISarLawsAttrInfoService extends IService { + String selectFieldValByLawsId(String field,String standId); + + int updateLawsInfo(String standId,String field,String value); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java index 8aa2bd74..48ec8683 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java @@ -17,4 +17,13 @@ import org.springframework.stereotype.Service; @Service public class SarLawsAttrInfoServiceImpl extends ServiceImpl implements ISarLawsAttrInfoService { + @Override + public String selectFieldValByLawsId (String field,String standId) { + return this.baseMapper.selectFieldValByLawsId(field,standId); + } + + @Override + public int updateLawsInfo(String standId,String field,String value){ + return this.baseMapper.updateLawsInfo(standId,field,value); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/controller/SarLawsFileController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/controller/SarLawsFileController.java new file mode 100644 index 00000000..1205d921 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/controller/SarLawsFileController.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.sarLawsFile.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.sarLawsFile.entity.SarLawsFile; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

+ * 前端控制器 + *

+* +* @author super_liu +* @since 2021-10-28 +*/ +@RestController +@Api(description = "|SarLawsFile|") +@RequestMapping("/sarLawsFile/sar-laws-file") +public class SarLawsFileController extends BaseController { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/dao/SarLawsFileDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/dao/SarLawsFileDao.java new file mode 100644 index 00000000..534dff86 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/dao/SarLawsFileDao.java @@ -0,0 +1,40 @@ +package com.adc.da.slrs.sarLawsFile.dao; + +import com.adc.da.slrs.sarLawsFile.entity.SarLawsFile; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Repository +public interface SarLawsFileDao extends BaseMapper { + + List selectFileBylawsId(String lawsId); + + List selectFileBylawsIdAndId(SarLawsFile laws); + + List selectFileByAttId(String attId); + + List selectFileMsgByAttId(String attId); + + List selectFileByResId(SarLawsFile sarBussStandFileEO); + + int deleteBylawsId(String standId); + + int insertForeach(List list); //批量新增 + + int insertSelective(SarLawsFile sarBussStandFile); + + int updateByPrimaryKeySelective(SarLawsFile sarBussStandFile); + + int deleteByPrimaryKey(String value); + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/entity/SarLawsFile.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/entity/SarLawsFile.java new file mode 100644 index 00000000..7cdd6112 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/entity/SarLawsFile.java @@ -0,0 +1,98 @@ +package com.adc.da.slrs.sarLawsFile.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsFile对象", description="") +public class SarLawsFile extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableField("ID") + private String id; + + @ApiModelProperty(value = "政策ID") + @TableField("LAWS_ID") + private String lawsId; + + @ApiModelProperty(value = "政策文件分类") + @TableField("LAWS_FILE_CLASSIFY") + private String lawsFileClassify; + + @ApiModelProperty(value = "文件主键") + @TableField("ATT_ID") + private String attId; + + @ApiModelProperty(value = "文件名称") + @TableField("FILE_NAME") + private String fileName; + + @ApiModelProperty(value = "文件后缀") + @TableField("FILE_SUFFIX") + private String fileSuffix; + + @ApiModelProperty(value = "使用模式(SOURCE_FILE原文件,WEB_FILE转换后文件)") + @TableField("USE_MODEL") + private String useModel; + + @ApiModelProperty(value = "加密密码") + @TableField("PASSWORD") + private String password; + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + + @ApiModelProperty(value = "转换原文件id") + @TableField("ORI_ATT_ID") + private String oriAttId; + + + @TableField(exist = false) + private List idList = new ArrayList<>(); + + @TableField(exist = false) + private String useModule; + @TableField(exist = false) + private String resId; + @TableField(exist = false) + private Integer pageCount; + @TableField(exist = false) + private String fileOldName; +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/service/ISarLawsFileService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/service/ISarLawsFileService.java new file mode 100644 index 00000000..333c80c8 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/service/ISarLawsFileService.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarLawsFile.service; + +import com.adc.da.slrs.sarLawsFile.entity.SarLawsFile; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +public interface ISarLawsFileService extends IService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/service/impl/SarLawsFileServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/service/impl/SarLawsFileServiceImpl.java new file mode 100644 index 00000000..5586e2af --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsFile/service/impl/SarLawsFileServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarLawsFile.service.impl; + +import com.adc.da.slrs.sarLawsFile.entity.SarLawsFile; +import com.adc.da.slrs.sarLawsFile.dao.SarLawsFileDao; +import com.adc.da.slrs.sarLawsFile.service.ISarLawsFileService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Service +public class SarLawsFileServiceImpl extends ServiceImpl implements ISarLawsFileService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsInfo/dao/SarLawsInfoDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsInfo/dao/SarLawsInfoDao.java index 7defe663..817149b8 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsInfo/dao/SarLawsInfoDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsInfo/dao/SarLawsInfoDao.java @@ -2,9 +2,12 @@ package com.adc.da.slrs.sarLawsInfo.dao; import com.adc.da.slrs.sarLawsInfo.entity.SarLawsInfo; import com.adc.da.slrs.sarLawsInfo.page.SarLawsInfoEOPage; +import com.adc.da.slrs.sarStandardsInfo.entity.RecommendVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; +import java.util.Date; import java.util.List; /** @@ -15,6 +18,7 @@ import java.util.List; * @author super_liu * @since 2021-06-01 */ +@Repository public interface SarLawsInfoDao extends BaseMapper { Integer selectLawsColumn(@Param("columnName") String columnName); @@ -22,4 +26,85 @@ public interface SarLawsInfoDao extends BaseMapper { List queryByPage(SarLawsInfoEOPage page); Integer queryByCount(SarLawsInfoEOPage page); + + /** + * @return com.adc.da.lawss.entity.SarLawsInfo + * @Author yangxuenan + * @Description 通过id查询详细信息 + * Date 2018/9/21 16:42 + * @Param [id] + **/ + SarLawsInfo selectInfoById(String id); + + /** + * @return java.util.List + * @Author yangxuenan + * @Description 分页查询配置法规 + * Date 2018/9/30 17:02 + * @Param [page] + **/ + List queryConfigLawsByPage(SarLawsInfoEOPage page); + + int queryConfigLawsByCount(SarLawsInfoEOPage page); + + + //liwenxuan:标准法规更新数量及清单:国内法规 + Integer selectCounterLawsCountINLAND(Date visitTime); + + //liwenxuan:标准法规更新数量及清单:国内法规All + Integer selectCounterLawsCountINLANDAll(); + + //liwenxuan:标准法规更新数量及清单:国外法规 + Integer selectCounterLawsCountFOREIGN(Date visitTime); + + //liwenxuan:标准法规更新数量及清单:国外法规All + Integer selectCounterLawsCountFOREIGNAll(); + + /** + * 功能描述: 通过文件号查询详细信息 + * + * @param: [Number] + * @return: com.adc.da.lawss.entity.SarLawsInfo + * @auther: SYT + * @date: 2018/10/11 20:34 + */ + List selectInfoByNumber(@Param("number") String number, @Param("resName") String resName, @Param("type") String type); + + + /** + * 搜索中心查询相关推荐 + * + * @param: + * @auther: gaoyan + * @date: 2018/11/10 9:22 + */ + List selectRecommendLaws(SarLawsInfoEOPage pagenew); + + List selectCloseLaws(SarLawsInfoEOPage pagenew); + + /** + * 功能描述: 查询所有小于当前时间的即将实施的条目 + * + * @param: [lawsEO] + * @return: java.util.List + * @auther: SYT + * @date: 2018/11/16 15:24 + */ + List queryByPutTimeList(SarLawsInfo lawsEO); + + int updateSarStandReplaced(SarLawsInfo lawsInfoEO); + + int updateRelacedNumByNumber(SarLawsInfoEOPage lawsInfoEO); + + List selectLawsInfoByIdAndRole(SarLawsInfoEOPage lawsEOPage); + + int queryByCountForES(SarLawsInfoEOPage lawsEOPage); + + List queryByPageForES(SarLawsInfoEOPage lawsEOPage); + + int updateByPrimaryKeyForSynchron(SarLawsInfo SarLawsInfo); + + int deleteByPrimaryKeyFlag(String id); + + SarLawsInfo selectByPrimaryKeyAndTime(SarLawsInfo lawsEO); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/controller/SarLawsItemValController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/controller/SarLawsItemValController.java new file mode 100644 index 00000000..2476d097 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/controller/SarLawsItemValController.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.sarLawsItemVal.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.sarLawsItemVal.entity.SarLawsItemVal; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

+ * 前端控制器 + *

+* +* @author super_liu +* @since 2021-10-28 +*/ +@RestController +@Api(description = "|SarLawsItemVal|") +@RequestMapping("/sarLawsItemVal/sar-laws-item-val") +public class SarLawsItemValController extends BaseController { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/dao/SarLawsItemValDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/dao/SarLawsItemValDao.java new file mode 100644 index 00000000..8de561b3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/dao/SarLawsItemValDao.java @@ -0,0 +1,18 @@ +package com.adc.da.slrs.sarLawsItemVal.dao; + +import com.adc.da.slrs.sarLawsItemVal.entity.SarLawsItemVal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Repository +public interface SarLawsItemValDao extends BaseMapper { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/entity/SarLawsItemVal.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/entity/SarLawsItemVal.java new file mode 100644 index 00000000..bda17ee6 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/entity/SarLawsItemVal.java @@ -0,0 +1,59 @@ +package com.adc.da.slrs.sarLawsItemVal.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsItemVal对象", description="") +public class SarLawsItemVal extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "法规条目ID") + @TableField("LAWS_ITEM_ID") + private String lawsItemId; + + @ApiModelProperty(value = "参数类型") + @TableField("PROPERTY_TYPE") + private String propertyType; + + @ApiModelProperty(value = "参数内容") + @TableField("PROPERTY_VAL") + private String propertyVal; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private BigDecimal validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + private LocalDateTime creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + private LocalDateTime modifyTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/service/ISarLawsItemValService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/service/ISarLawsItemValService.java new file mode 100644 index 00000000..db17c23b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/service/ISarLawsItemValService.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarLawsItemVal.service; + +import com.adc.da.slrs.sarLawsItemVal.entity.SarLawsItemVal; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +public interface ISarLawsItemValService extends IService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/service/impl/SarLawsItemValServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/service/impl/SarLawsItemValServiceImpl.java new file mode 100644 index 00000000..5390b598 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItemVal/service/impl/SarLawsItemValServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarLawsItemVal.service.impl; + +import com.adc.da.slrs.sarLawsItemVal.entity.SarLawsItemVal; +import com.adc.da.slrs.sarLawsItemVal.dao.SarLawsItemValDao; +import com.adc.da.slrs.sarLawsItemVal.service.ISarLawsItemValService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Service +public class SarLawsItemValServiceImpl extends ServiceImpl implements ISarLawsItemValService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/dao/SarLawsItemsDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/dao/SarLawsItemsDao.java index 16940b4a..5691cdc6 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/dao/SarLawsItemsDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/dao/SarLawsItemsDao.java @@ -2,10 +2,12 @@ package com.adc.da.slrs.sarLawsItems.dao; import com.adc.da.slrs.sarLawsInfo.page.SarLawsItemsEOPage; import com.adc.da.slrs.sarLawsItems.entity.SarLawsItems; +import com.adc.da.slrs.sarStandItems.entity.FindSarItemsPageReqDTO; import com.adc.da.slrs.sarStandItems.entity.SarStandItems; import com.adc.da.slrs.sarStandItems.page.SarStandItemsEOPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; import java.util.List; import java.util.Set; @@ -18,11 +20,16 @@ import java.util.Set; * @author super_liu * @since 2021-06-02 */ +@Repository public interface SarLawsItemsDao extends BaseMapper { + List querySarItemAndInterpretation(FindSarItemsPageReqDTO page); + Set selectClaimTypesByStandId(@Param("standId") String standId, @Param("fileType") String fileType, @Param("idList") String[] idList); Set selectSvppsByStandId(@Param("standId") String standId, @Param("fileType") String fileType, @Param("idList") String[] idList); List queryByList(SarLawsItemsEOPage page); + + int deleteByStandIdAndFileType(@Param("standId") String standId, @Param("fileType") String fileType); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/entity/SarLawsItems.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/entity/SarLawsItems.java index 830afa22..a8c25912 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/entity/SarLawsItems.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsItems/entity/SarLawsItems.java @@ -2,6 +2,8 @@ package com.adc.da.slrs.sarLawsItems.entity; import com.adc.da.base.entity.BaseEntity; import java.math.BigDecimal; + +import com.adc.da.slrs.SarCompStatusInfo.entity.SarCompStatusInfo; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.util.Date; @@ -122,6 +124,16 @@ public class SarLawsItems extends BaseEntity { @TableField("FILE_TYPE") private String fileType; + @ApiModelProperty(value = "新车型实施日期") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("XCXSSRQLAWS") + private Date xcxssrqlaws; + + @ApiModelProperty(value = "在产车实施日期") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @TableField("ZCXSSRQLAWS") + private Date zcxssrqlaws; + @TableField(exist = false) private String applyArcticShow; @TableField(exist = false) @@ -155,5 +167,20 @@ public class SarLawsItems extends BaseEntity { @TableField(exist = false) private String wczrsh; + @TableField(exist = false) + private String emergyKindShow; + //新加字段 + @TableField(exist = false) + private String foUser;//FO + //新加字段带show + @TableField(exist = false) + private String oldId; + @TableField(exist = false) + private SarCompStatusInfo pgForm; + + //责任工程师 + @TableField(exist = false) + private String responsibleEngineer; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/controller/SarLawsMenuController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/controller/SarLawsMenuController.java new file mode 100644 index 00000000..8914f59b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/controller/SarLawsMenuController.java @@ -0,0 +1,81 @@ +package com.adc.da.slrs.sarLawsMenu.controller; + + +import com.adc.da.slrs.sarBussStandMenu.service.ISarBussStandMenuService; +import com.adc.da.slrs.sarLawsMenu.service.ISarLawsMenuService; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.adc.da.sys.util.UUIDUtils; +import com.adc.da.util.http.ResponseMessage; +import com.adc.da.util.http.Result; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.sarLawsMenu.entity.SarLawsMenu; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +import java.util.List; + +/** +*

+ * 前端控制器 + *

+* +* @author super_liu +* @since 2021-10-28 +*/ +@RestController +@Api(description = "|SarLawsMenu|") +@RequestMapping("/${restPath}/lawss/sarLawsMenu") +public class SarLawsMenuController extends BaseController { + + @Autowired + private ISarLawsMenuService lawsMenuService; + + @Autowired + private ITsResourceService sarMenuEOService; + + @ApiOperation(value = "|SarBussStandMenuEO|修改") + @PutMapping("/removeStandInfo") +// @RequiresPermissions("lawss:sarStandMenu:update") + public ResponseMessage removeStandInfo(@RequestBody SarLawsMenu standardsInfoEO) throws Exception { + String[] idList = standardsInfoEO.getIdlist(); + int count = 0; + if(idList != null){ + for(String id : idList){ + SarLawsMenu menuEO = new SarLawsMenu(); + menuEO.setLawsId(id); + menuEO.setMenuId(standardsInfoEO.getMenuId()); + //删除所选目录下关联 + String oldMenuId = standardsInfoEO.getOldMenuId(); + if (StringUtils.isEmpty(oldMenuId)) { + oldMenuId = standardsInfoEO.getMenuId(); + } + menuEO.setOldMenuId(oldMenuId); + count += lawsMenuService.deleteByMenuId(menuEO); + //查询是否还有与其他节点的关联,若没有则增加与根节点的关联 + List getList = lawsMenuService.selectAllMenuByStandId(menuEO); + if (getList == null || getList.isEmpty()) { + // 查询根节点 + TsResource sarMenuEO = new TsResource(); + sarMenuEO.setSorDivide("LAWS_STAND"); + List getRootMenu = sarMenuEOService.queryMenuByDis(sarMenuEO); + menuEO.setMenuId(getRootMenu.get(0).getId()); + menuEO.setId(UUIDUtils.randomUUID20()); + menuEO.setValidFlag(0); + lawsMenuService.save(menuEO); + } + } + } + if(count>0){ + return Result.success("0","移除成功!",true); + } else { + return Result.error("移除失败!"); + } + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/dao/SarLawsMenuDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/dao/SarLawsMenuDao.java new file mode 100644 index 00000000..40ea0076 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/dao/SarLawsMenuDao.java @@ -0,0 +1,37 @@ +package com.adc.da.slrs.sarLawsMenu.dao; + +import com.adc.da.slrs.sarBussStandMenu.entity.NewmenuOldmenuVO; +import com.adc.da.slrs.sarLawsMenu.entity.SarLawsMenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Repository +public interface SarLawsMenuDao extends BaseMapper { + List selectByLawsInfo(SarLawsMenu sarLawsMenuEO); + + int updateMenuidByMenuid(NewmenuOldmenuVO var1); + + List selectByLawsId(String lawsId); + + void deleteByLawsId(String lawsId); + + List selectMenuByMenuParentId(SarLawsMenu sarLawsMenuEO); + + int updateByLawsIdAndMenuId(SarLawsMenu sarLawsMenuEO); + + int deleteByLawsIdAndMenuId(SarLawsMenu sarLawsMenuEO); + + List selectAllMenuByStandId(SarLawsMenu sarStandMenuEO); + + int deleteByMenuId(SarLawsMenu sarLawsMenuEO); +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/entity/SarLawsMenu.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/entity/SarLawsMenu.java new file mode 100644 index 00000000..357bf9bd --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/entity/SarLawsMenu.java @@ -0,0 +1,57 @@ +package com.adc.da.slrs.sarLawsMenu.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsMenu对象", description="") +public class SarLawsMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "法规ID") + @TableField("LAWS_ID") + private String lawsId; + + @ApiModelProperty(value = "目录ID") + @TableField("MENU_ID") + private String menuId; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @TableField(exist = false) + private String oldMenuId; + + @TableField(exist = false) + private String[] idlist; + + @TableField(exist = false) + private List menuIds; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/entity/SarLawsMenuEOPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/entity/SarLawsMenuEOPage.java new file mode 100644 index 00000000..57a5d015 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/entity/SarLawsMenuEOPage.java @@ -0,0 +1,87 @@ +package com.adc.da.slrs.sarLawsMenu.entity; + +import com.adc.da.sys.common.BasePage; + + +/** + * 功能:SAR_LAWS_MENU SarLawsMenuEOPage
+ * 作者:code generator
+ * 日期: 2018-09-03
+ * 版权所有:版权归北京卡达克数据技术中心所有。
+ */ +public class SarLawsMenuEOPage extends BasePage { + + private String validFlag; + private String validFlagOperator = "="; + private String menuId; + private String menuIdOperator = "="; + private String lawsId; + private String lawsIdOperator = "="; + private String id; + private String idOperator = "="; + + public String getValidFlag() { + return this.validFlag; + } + + public void setValidFlag(String validFlag) { + this.validFlag = validFlag; + } + + public String getValidFlagOperator() { + return this.validFlagOperator; + } + + public void setValidFlagOperator(String validFlagOperator) { + this.validFlagOperator = validFlagOperator; + } + + public String getMenuId() { + return this.menuId; + } + + public void setMenuId(String menuId) { + this.menuId = menuId; + } + + public String getMenuIdOperator() { + return this.menuIdOperator; + } + + public void setMenuIdOperator(String menuIdOperator) { + this.menuIdOperator = menuIdOperator; + } + + public String getLawsId() { + return this.lawsId; + } + + public void setLawsId(String lawsId) { + this.lawsId = lawsId; + } + + public String getLawsIdOperator() { + return this.lawsIdOperator; + } + + public void setLawsIdOperator(String lawsIdOperator) { + this.lawsIdOperator = lawsIdOperator; + } + + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIdOperator() { + return this.idOperator; + } + + public void setIdOperator(String idOperator) { + this.idOperator = idOperator; + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/service/ISarLawsMenuService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/service/ISarLawsMenuService.java new file mode 100644 index 00000000..57958324 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/service/ISarLawsMenuService.java @@ -0,0 +1,22 @@ +package com.adc.da.slrs.sarLawsMenu.service; + +import com.adc.da.slrs.sarLawsMenu.entity.SarLawsMenu; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +public interface ISarLawsMenuService extends IService { + + List selectAllMenuByStandId(SarLawsMenu sarStandMenuEO); + + int deleteByMenuId (SarLawsMenu sarStandMenuEO); + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/service/impl/SarLawsMenuServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/service/impl/SarLawsMenuServiceImpl.java new file mode 100644 index 00000000..717da250 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsMenu/service/impl/SarLawsMenuServiceImpl.java @@ -0,0 +1,37 @@ +package com.adc.da.slrs.sarLawsMenu.service.impl; + +import com.adc.da.slrs.sarLawsMenu.entity.SarLawsMenu; +import com.adc.da.slrs.sarLawsMenu.dao.SarLawsMenuDao; +import com.adc.da.slrs.sarLawsMenu.service.ISarLawsMenuService; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Service +public class SarLawsMenuServiceImpl extends ServiceImpl implements ISarLawsMenuService { + + @Autowired + private ITsResourceService sarMenuEOService; + + public int deleteByMenuId (SarLawsMenu sarStandMenuEO){ + List menuIds = sarMenuEOService.getChildMenuList(sarStandMenuEO.getOldMenuId()); + sarStandMenuEO.setMenuIds(menuIds); + return this.baseMapper.deleteByMenuId(sarStandMenuEO); + } + + @Override + public List selectAllMenuByStandId(SarLawsMenu sarStandMenuEO){ + return this.baseMapper.selectAllMenuByStandId(sarStandMenuEO); + } +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java new file mode 100644 index 00000000..d3aefe07 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/controller/SarLawsStandInfoController.java @@ -0,0 +1,304 @@ +package com.adc.da.slrs.sarLawsStandInfo.controller; + + +import com.adc.da.common.ReadExcel; +import com.adc.da.excel.poi.excel.ExcelExportUtil; +import com.adc.da.exception.AdcDaBaseException; +import com.adc.da.person.service.IPersonCollectEOService; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; +import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.adc.da.slrs.sarStandardsInfo.entity.SarAdvanceSearchVO; +import com.adc.da.http.PageInfo; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.slrs.sarStandardsInfo.entity.StandardsInfoExcelVO; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.sys.entity.DicTypeEO; +import com.adc.da.sys.service.IDicTypeEOService; +import com.adc.da.util.utils.StringUtils; +import com.adc.da.utils.util.LawsStandExportUtil; +import com.adc.da.utils.util.SarAdvanceSearchUtil; +import com.adc.da.utils.util.StandExportUtil; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.util.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import io.swagger.annotations.Api; +import com.adc.da.base.web.BaseController; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Date; +import java.util.List; + +/** +*

+ * 前端控制器 + *

+* +* @author super_liu +* @since 2021-10-25 +*/ +@RestController +@Api(description = "|SarLawsStandInfo|") +@RequestMapping("/${restPath}/lawss/sarLawsInfo") +public class SarLawsStandInfoController extends BaseController { + + private static final Logger logger = LoggerFactory.getLogger(SarLawsStandInfoController.class); + + @Autowired + private ISarLawsStandInfoService sarLawsInfoEOService; + + @Autowired + private IPersonCollectEOService personCollectEOService; + + @Autowired + private ITsResourceService iTsResourceService; + + + @Autowired + private ITsUserService tsUserService; + + @Autowired + private IDicTypeEOService dicTypeEOService; + + @ApiOperation(value = "|SarLawsInfoEO|分页查询") + @GetMapping("/page") + /*@RequiresPermissions("lawss:sarLawsInfo:page")*/ + public ResponseMessage> page(SarLawsStandInfoPage page) throws Exception { + if (null != page.getNowOrderBy()) { + switch (page.getNowOrderBy()) { + case 1: + page.setOrderByA("a.issueTime");//发布日期 + break; + case 2: + page.setOrderByA("SAR_LAWS_ATTR_INFO.XCXSSRQLAWS");//新车型实施日期 + break; + case 3: + page.setOrderByA("SAR_LAWS_ATTR_INFO.ZCXSSRQLAWS");//在产车实施日期 + break; + case 4: + page.setOrderByA("a.LAWS_TEXT_STATE");//文本状态 + break; + case 5: + page.setOrderByA("paixu"); + break; + case 6: + page.setOrderByA("SAR_LAWS_ATTR_INFO.SSRQ"); + break; + default: + page.setNowOrder(null); + break; + } + if (null != page.getNowOrder()) { + switch (page.getNowOrder()) { + case 1: + page.setOrder1("desc"); + break; + case 2: + page.setOrder1("asc"); + default: + page.setOrder1(null); + break; + } + } + } + + + if (com.adc.da.util.utils.StringUtils.isNotBlank(page.getAdvanceSearchVOStr())) { + List searchList = JSONObject.parseArray(page.getAdvanceSearchVOStr(),SarAdvanceSearchVO.class); + String advanceStr = SarAdvanceSearchUtil.createSql(searchList,"SAR_LAWS_ATTR_INFO"); + if (StringUtils.isNotBlank(advanceStr)) { + page.setAdvanceSearchStr(advanceStr); + } else { + page.setAdvanceSearchStr(null); + } + } + + List rows = sarLawsInfoEOService.getSarStandardsInfoPage(page); + return Result.success(getPageInfo(page.getPager(), rows)); + } + + @ApiOperation(value = "|SarLawsInfoEO|分页查询") + @GetMapping("/pageLaws") + /*@RequiresPermissions("lawss:sarLawsInfo:page")*/ + public ResponseMessage> pageLaws(SarLawsStandInfoPage page) throws Exception { + if (null != page.getNowOrderBy()) { + switch (page.getNowOrderBy()) { + case 1: + page.setOrderByA("a.issueTime");//发布日期 + break; + case 2: + page.setOrderByA("SAR_LAWS_ATTR_INFO.XCXSSRQLAWS");//新车型实施日期 + break; + case 3: + page.setOrderByA("SAR_LAWS_ATTR_INFO.ZCXSSRQLAWS");//在产车实施日期 + break; + case 4: + page.setOrderByA("a.LAWS_TEXT_STATE");//文本状态 + break; + case 5: + page.setOrderByA("paixu"); + break; + case 6: + page.setOrderByA("SAR_LAWS_ATTR_INFO.SSRQ"); + break; + default: + page.setNowOrder(null); + break; + } + if (null != page.getNowOrder()) { + switch (page.getNowOrder()) { + case 1: + page.setOrder1("desc"); + break; + case 2: + page.setOrder1("asc"); + default: + page.setOrder1(null); + break; + } + } + } + + + if (com.adc.da.util.utils.StringUtils.isNotBlank(page.getAdvanceSearchVOStr())) { + List searchList = JSONObject.parseArray(page.getAdvanceSearchVOStr(),SarAdvanceSearchVO.class); + String advanceStr = SarAdvanceSearchUtil.createSql(searchList,"SAR_LAWS_ATTR_INFO"); + if (StringUtils.isNotBlank(advanceStr)) { + page.setAdvanceSearchStr(advanceStr); + } else { + page.setAdvanceSearchStr(null); + } + } + + List rows = sarLawsInfoEOService.getSarStandardsInfoPageBak(page); + return Result.success(getPageInfo(page.getPager(), rows)); + } + + @ApiOperation(value = "|SarLawsStandInfo|详情") + @GetMapping("/getStandInfoById") + //@RequiresPermissions("lawss:sarStandardsInfo:get") + public ResponseMessage find(String id) throws Exception { + SarLawsStandInfo result = sarLawsInfoEOService.selectStandardsInfoByKey(id); + return Result.success(result); + } + + @ApiOperation(value = "|SarLawsStandInfo|详情") + @GetMapping("/getStandInfoUpdateById") + //@RequiresPermissions("lawss:sarStandardsInfo:get") + public ResponseMessage getStandInfoUpdateById(String id) throws Exception { + SarLawsStandInfo result = sarLawsInfoEOService.selectStandardsInfoUpdateByKey(id); + String collectId = personCollectEOService.queryCollectByUserAndId(id); + result.setCollectId(collectId); + return Result.success(result); + } + + @ApiOperation(value = "|SarLawsStandInfo|导出excel") + @GetMapping(value = "/exportStandardsInfoExcel") + public void exportStandardsInfoExcel(String exportContent, String exportType, String exportName,String userId, HttpServletResponse response, + HttpServletRequest request) throws Exception { + OutputStream os = null; + Workbook workbook = null; + try { + if(StringUtils.isEmpty(exportName)||exportName.equals("null")){ + exportName="政策库"; + } + response.setHeader("Content-Disposition", + "attachment; filename=" + ReadExcel.encodeFileName(exportName+".xlsx",request)); + response.setContentType("application/force-download"); + // 导出所有数据 + List data = sarLawsInfoEOService.getExportData(exportType,exportContent,userId); + workbook = LawsStandExportUtil.exportDatas(data); + + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + throw new AdcDaBaseException("下载文件失败,请重试"); + } finally { + IOUtils.closeQuietly(os); + } + } + + @ApiOperation(value = "|SarLawsStandInfo|确认配置标准") + @PostMapping("/saveStandardsMenu") + //@RequiresPermissions("lawss:sarBussionessStand:saveStandardsMenu") + public ResponseMessage saveStandardsMenu(@RequestBody SarLawsStandInfoPage standardsInfoEO){ + if ("wdsc".equals(standardsInfoEO.getMenuId()) || "gxhbq".equals(standardsInfoEO.getMenuId())) { + return Result.error("所选节点不支持配置标准"); + } else { + SarLawsStandInfoPage standlist = sarLawsInfoEOService.updateStandardsMenu(standardsInfoEO); + return Result.success(standardsInfoEO); + } + } + + @ApiOperation(value = "|SarLawsStandInfo|企业标准修改") + @PostMapping(value = "/updateSarLawsStandInfo") + public ResponseMessage updateSarLawsStandInfo(@RequestBody SarLawsStandInfo sarLawsStandInfo) throws Exception { + sarLawsStandInfo.setModifyTime(new Date()); + sarLawsInfoEOService.updateSarLawsStandInfo(sarLawsStandInfo); + return Result.success("","修改成功",sarLawsStandInfo); + } + + @ApiOperation(value = "|SarLawsStandInfo|删除") + @PostMapping("deleteSarLawsStandInfo") + public ResponseMessage delete(String ids) throws Exception { + SarLawsStandInfoPage sarLawsStandInfoPage = new SarLawsStandInfoPage(); + sarLawsStandInfoPage.setIdlist(ids.split(",")); + ResponseMessage result = sarLawsInfoEOService.deleteSarLawsStandInfo(sarLawsStandInfoPage); + logger.info("delete from SAR_BUSSIONESS_STAND where id = {}", ids); + return result; + } + + /** + * 新增过程中验证标准号 + * + * @param page + * @return + */ + @ApiOperation(value = "|SarLawsStandInfo|验证输入的标准号") + @PostMapping("/validateStandNumber") + //@RequiresPermissions("lawss:sarStandardsInfo:selectReplaceStandNum") + public ResponseMessage validateStandNumber(SarLawsStandInfoPage page) throws Exception { + String sortName = ""; + String standNumShow = ""; + List getDicCode = dicTypeEOService.getDicEOByDicTypeCode(page.getStandSort()); + if(getDicCode!= null && getDicCode.size()>0){ + sortName = getDicCode.get(0).getDicTypeName(); + } + if (StringUtils.isNotEmpty(page.getLawsNumber())) { + List standlist = sarLawsInfoEOService.selectStandardsByStandNumber(page.getLawsNumber()); + if (standlist.size() > 0) { + if (StringUtils.isNotEmpty(page.getId())) { + // 如果是修改,判断id是否一样 + for (int i = 0; i < standlist.size(); i++) { + if (standlist.get(i).getId().equals(page.getId())) { + continue; + } else { + return Result.error(standNumShow + "政策编号已存在"); + } + } + return Result.success(); + } else { + return Result.error(standNumShow + "政策编号已存在"); + } + } else { + return Result.success(); + } + } else { + return Result.success(); + } + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java new file mode 100644 index 00000000..8ca5a2a3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/dao/SarLawsStandInfoDao.java @@ -0,0 +1,30 @@ +package com.adc.da.slrs.sarLawsStandInfo.dao; + +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author super_liu + * @since 2021-10-25 + */ +@Repository +public interface SarLawsStandInfoDao extends BaseMapper { + + List getSarStandardsInfoPage(SarLawsStandInfoPage page); + + int getSarStandardsInfoCount(SarLawsStandInfoPage page); + + List selectStandardsInfoByKey(String id); + + List getSarStandardsExportInfo(SarLawsStandInfoPage page); + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfo.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfo.java new file mode 100644 index 00000000..9a388dc4 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfo.java @@ -0,0 +1,261 @@ +package com.adc.da.slrs.sarLawsStandInfo.entity; + +import com.adc.da.att.vo.AttFileVo; +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; + +import com.adc.da.slrs.sarStandAttrDetails.entity.SarStandAttrDetails; +import com.adc.da.slrs.sarStandItems.entity.SarStandItems; +import com.adc.da.slrs.standardSplit.entity.SarStandAttrDetailsEO; +import com.adc.da.sys.entity.DicTypeEO; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.util.*; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import oracle.sql.DATE; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-10-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsStandInfo对象", description="") +public class SarLawsStandInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "政策分类 共四级,逐级选择-配置管理中维护") + @TableField("LAWS_TYPE") + private String lawsType; + + @ApiModelProperty(value = "政策编号") + @TableField("LAWS_NUMBER") + private String lawsNumber; + + @ApiModelProperty(value = "中文名称") + @TableField("LAWS_NAME") + private String lawsName; + + @ApiModelProperty(value = "英文名称") + @TableField("LAWS_EN_NAME") + private String lawsEnName; + + @ApiModelProperty(value = "政策文号") + @TableField("LAWS_NO") + private String lawsNo; + + @ApiModelProperty(value = "发文日期") + @TableField("ISSUE_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String issueTime; + + @ApiModelProperty(value = "发文单位") + @TableField("ISSUE_COMPANY") + private String issueCompany; + + @ApiModelProperty(value = "征集意见周期-起始时间") + @TableField("COMMENT_CYCLE_START") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String commentCycleStart; + + @ApiModelProperty(value = "征集意见周期-结束时间") + @TableField("COMMENT_CYCLE_END") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String commentCycleEnd; + + @ApiModelProperty(value = "文件状态-配置管理中维护") + @TableField("LAWS_TEXT_STATE") + private String lawsTextState; + + @ApiModelProperty(value = "适用区域-配置管理中维护") + @TableField("LAWS_SYQY") + private String lawsSyqy; + + @ApiModelProperty(value = "适用车型-配置管理中维护") + @TableField("LAWS_SYCX") + private String lawsSycx; + + @ApiModelProperty(value = "是/否(选择否,只有政策、政策中文名称是必填项目)") + @TableField("IS_RELATE_ACCESS") + private String isRelateAccess; + + @ApiModelProperty(value = "年度-可在配置管理中维护,根据发布日期自动带入可手动修改") + @TableField("LAWS_YEAR") + private String lawsYear; + + @ApiModelProperty(value = "福田转发通知文号") + @TableField("LAWS_NOTISYNC_NUM") + private String lawsNotisyncNum; + + @ApiModelProperty(value = "信息简报 xxx期次xxx板块") + @TableField("LAWS_BULLETIN") + private String lawsBulletin; + + @ApiModelProperty(value = "标签-可在配置管理中维护") + @TableField("LAWS_LABEL") + private String lawsLabel; + + @ApiModelProperty(value = "备注") + @TableField("LAWS_REMARK") + private String lawsRemark; + + @ApiModelProperty(value = "国家地区") + @TableField("COUNTRY") + private String country; + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + + @ApiModelProperty(value = "参数1") + @TableField("PARAM1") + private Long param1; + + @ApiModelProperty(value = "参数2") + @TableField("PARAM2") + private String param2; + + // 非表字段 + @ApiModelProperty(value = "代替文件号") + @TableField(exist = false) + private String replaceFileNum; + + @ApiModelProperty(value = "被代替文件号") + @TableField(exist = false) + private String replacedFileNum; + + @TableField(exist = false) + private String processNum;//流程编号 + + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private String firstPutTime; + + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String putTimeShow; + + @TableField(exist = false) + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String issueTimeShow; + + @TableField(exist = false) + private String issueTimeStr; + + @TableField(exist = false) + private String putTimeStr; + + //目录ID 非标准信息表中的字段 + @TableField(exist = false) + private String menuId; + + @TableField(exist = false) + private String menuParentId; + + @TableField(exist = false) + private String standStatusShow; // 标准状态下拉框 --单选 + + @TableField(exist = false) + private String standNatrueShow; + + @TableField(exist = false) + private String standSortShow; + + @TableField(exist = false) + private String applyCountryShow; + + @TableField(exist = false) + private List standFileList = new ArrayList(); + + @TableField(exist = false) + private List opinionFilesList = new ArrayList(); + + @TableField(exist = false) + private List relevanceFileList = new ArrayList(); + + @TableField(exist = false) + private String collectId; + + //文件的类型 + @TableField(exist = false) + private String standFileClassify; + + //文件的下载id + @TableField(exist = false) + private String attId; + + //记录是否修改了替代文件号 + @TableField(exist = false) + private int upReplaceNumFlag; + //记录是否修改了文件号 + @TableField(exist = false) + private int upNumFlag; + // 数据库新加的字段 + + @TableField(exist = false) + private String remark;//备注 + + @TableField(exist = false) + private Map attrInfoMap = new LinkedHashMap<>(); //属性表字段与值 + + @TableField(exist = false) + private Map attrInfoCaseMap = new LinkedHashMap<>(); //属性表字段与值小写前端带入渲染 + + @TableField(exist = false) + private String sarStandAttrEOStr; //新增修改时属性表信息 + + @TableField(exist = false) + private String fileIds; //全部文件ID + + @TableField(exist = false) + private List attrInfoList = new ArrayList<>(); + + @TableField(exist = false) + private String standTextStatusShow; // 标准文本状态显示名称 + // 以下为非表中字段 + @TableField(exist = false) + private String countryShow; //国家地区显示名称 + @TableField(exist = false) + private String standStateShow; // 标准状态显示名称 + @TableField(exist = false) + private String standNatureShow; // 标准性质显示名称 + @TableField(exist = false) + private List dicTypeList = new ArrayList(); // 记录标准涉及到的所有数据字典数据 + + @TableField(exist = false) + private List itemsList = new ArrayList<>(); + @ApiModelProperty(value = "分解单条款内容") + @TableField(exist = false) + private Map mapItems = new TreeMap<>(); + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java new file mode 100644 index 00000000..483337b0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/entity/SarLawsStandInfoPage.java @@ -0,0 +1,256 @@ +package com.adc.da.slrs.sarLawsStandInfo.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.adc.da.base.page.BasePage; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import oracle.sql.DATE; + +import java.util.Date; +import java.util.List; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-10-25 + */ +@Data +public class SarLawsStandInfoPage extends BasePage { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + private String id; + + @ApiModelProperty(value = "政策分类 共四级,逐级选择-配置管理中维护") + private String lawsType; + + @ApiModelProperty(value = "政策编号") + private String lawsNumber; + + @ApiModelProperty(value = "中文名称") + private String lawsName; + + @ApiModelProperty(value = "英文名称") + private String lawsEnName; + + @ApiModelProperty(value = "政策文号") + private String lawsNo; + + @ApiModelProperty(value = "发文日期") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String issueTime; + + @ApiModelProperty(value = "发文单位") + private String issueCompany; + + @ApiModelProperty(value = "征集意见周期-起始时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String commentCycleStart; + + @ApiModelProperty(value = "征集意见周期-结束时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + private String commentCycleEnd; + + @ApiModelProperty(value = "文件状态-配置管理中维护") + private String lawsTextState; + + @ApiModelProperty(value = "适用区域-配置管理中维护") + private String lawsSyqy; + + @ApiModelProperty(value = "适用车型-配置管理中维护") + private String lawsSycx; + + @ApiModelProperty(value = "是/否(选择否,只有政策、政策中文名称是必填项目)") + private String isRelateAccess; + + @ApiModelProperty(value = "年度-可在配置管理中维护,根据发布日期自动带入可手动修改") + private String lawsYear; + + @ApiModelProperty(value = "福田转发通知文号") + private String lawsNotisyncNum; + + @ApiModelProperty(value = "信息简报 xxx期次xxx板块") + private String lawsBulletin; + + @ApiModelProperty(value = "标签-可在配置管理中维护") + private String lawsLabel; + + @ApiModelProperty(value = "备注") + private String lawsRemark; + + @ApiModelProperty(value = "国家地区") + private String country; + + @TableField("CREATION_USER") + private String creationUser; + + @ApiModelProperty(value = "是否有效") + private String validFlag; + + @ApiModelProperty(value = "创建时间") + private String creationTime; + + @ApiModelProperty(value = "修改时间") + private String modifyTime; + + @ApiModelProperty(value = "参数1") + private String param1; + + @ApiModelProperty(value = "参数2") + private String param2; + + private String[] commentCycleDate; + private String modifyTime1; + private String modifyTime2; + private String modifyTimeOperator = "="; + private String creationTime1; + private String creationTime2; + private String creationTimeOperator = "="; + private String validFlagOperator = "="; + private String putUser; + private String putUserOperator = "="; + private String citationUser; + private String citationUserOperator = "="; + private String responsibleUnit; + private String responsibleUnitOperator = "="; + private String standFile; + private String standFileOperator = "="; + private String tags; + private String tagsOperator = "="; + private String standStatus; + private String standStatusOperator = "="; + private String replacedStandNum; + private String replacedStandNumOperator = "="; + private String replaceStandNum; + private String replaceStandNumOperator = "="; + private String quoteStand; + private String quoteStandOperator = "="; + private String firstPutTime; + private String firstPutTime1; + private String firstPutTime2; + private String firstPutTimeOperator = "="; + private String putYear; + private String putYear1; + private String putYear2; + private String putYearOperator = "="; + private String putTime; + private String putTime1; + private String putTime2; + private String putTimeOperator = "="; + private String issueTime1; + private String issueTime2; + private String issueTimeOperator = "="; + private String energyKind; + private String energyKindOperator = "="; + private String applyArctic; + private String applyArcticOperator = "="; + private String standEnName; + private String standEnNameOperator = "="; + private String standName; + private String standNameOperator = "="; + private String standCode; + private String standCodeOperator = "="; + private String classifyCode; + private String classifyCodeOperator = "="; + private String standSubclass; + private String standSubclassOperator = "="; + private String standGenera; + private String standGeneraOperator = "="; + private String idOperator = "="; + private String menuId; + private List menuIdList; + private String[] idlist; + //为了在sql中区分修改操作 + private String updateFlag; + // 数据库新增字段 + private String applyCountry; + private String standYear; + private String applyCountryOperator = "="; + private String standNature; + private String standNatureOperator = "="; + private String synopsis; + private String synopsisOperator = "="; + private String standSort; + private String standSortOperator = "="; + private String opinionFile; + private String opinionFileOperator = "="; + private String relevanceFile; + private String relevanceFileOperator = "="; + private String remark; + private String remarkOperator = "="; + + private List roleIds; + private String rootMenuId; + private String orgName; + private List menuRoleList; + private String[] replacedStandNumList; + private String numberName; + + // 树结构增加搜索条件 + private String collectMenuId; + private String advanceSearchVOStr; + private String advanceSearchStr; + private List menuAllChildrenIdList; + private String userId; + + private String zqcrId; + + private String textStatusBuss; + + // 新增字段 + private String FZRQBUSS; + private String FSRQBUSS; + private String FBGBUSS; + private String BZSMBUSS; + private String LSBBBUSS; + private String QTWJBUSS; + private String QCDW; + private String QCRBUSS; + private String WJSCRYBUSS; + private String SYCXCLASS; + private String NYLXCLASS; + private String SYCPXCLASS; + private String TXLBBUSS; + private String VPPSBMBUSS; + private String VPPSCNBUSS; + private String DTQBBHBUSS; + private String BDTQBBHBUSS; + private String XGJLBUSS; + private String XGLC; + private String GLWJBUSS; + private String XCSJBUSS; + + //页面排序 + private String paixu; + private String shunxu; + private String sql; + + // 树结构增加搜索条件 + @TableField(exist = false) + private String labelMenuId; + @TableField(exist = false) + private String ids; + @TableField(exist = false) + private String proType; + @TableField(exist = false) + private Integer nowOrder; + @TableField(exist = false) + private Integer nowOrderBy; + @TableField(exist = false) + private String orderByA = "a.issue_time"; + @TableField(exist = false) + private String orderBy1 = "SAR_LAWS_STAND_INFO.issue_time"; + @TableField(exist = false) + private String order1 = "desc"; + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java new file mode 100644 index 00000000..a4a7b022 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/ISarLawsStandInfoService.java @@ -0,0 +1,45 @@ +package com.adc.da.slrs.sarLawsStandInfo.service; + +import com.adc.da.http.ResponseMessage; +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; +import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; +import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author super_liu + * @since 2021-10-25 + */ +public interface ISarLawsStandInfoService extends IService { + + void createSarStandardsInfo(SarLawsStandInfo sarLawsStandInfo) throws Exception; + + void attrInfoDetails (SarLawsStandInfo row) throws Exception; + + List selectStandardsByStandNumber(String replaceStandNum); + + ResponseMessage deleteSarLawsStandInfo(SarLawsStandInfoPage page) throws Exception; + + SarLawsStandInfo updateSarLawsStandInfo(SarLawsStandInfo sarLawsStandInfo) throws Exception; + + SarLawsStandInfoPage updateStandardsMenu(SarLawsStandInfoPage standardsInfoEO); + + List getExportData(String exportType, String exportContent,String userId) throws Exception; + + List getSarStandardsInfoPage(SarLawsStandInfoPage page) throws Exception; + + List getSarStandardsInfoPageBak(SarLawsStandInfoPage page) throws Exception; + + SarLawsStandInfo selectStandardsInfoByKey(String id) throws Exception; + + SarLawsStandInfo selectStandardsInfoUpdateByKey(String id) throws Exception; + +} 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 new file mode 100644 index 00000000..b3c824b4 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsStandInfo/service/impl/SarLawsStandInfoServiceImpl.java @@ -0,0 +1,1027 @@ +package com.adc.da.slrs.sarLawsStandInfo.service.impl; + +import com.adc.da.att.entity.AttFileEO; +import com.adc.da.att.service.IAttFileEOService; +import com.adc.da.common.SarStandStateEnum; +import com.adc.da.common.SarTypeEnum; +import com.adc.da.common.SelectionTypeEnum; +import com.adc.da.common.UseModuleEnum; +import com.adc.da.http.ResponseMessage; +import com.adc.da.http.Result; +import com.adc.da.login.util.UserUtils; +import com.adc.da.mq.CreateMQService; +import com.adc.da.mq.CreateStandMQService; +import com.adc.da.person.dao.PersonCollectEODao; +import com.adc.da.person.entity.TsPersonCollect; +import com.adc.da.person.page.PersonCollectEOPage; +import com.adc.da.person.service.IPersonCollectEOService; +import com.adc.da.search.entity.StandLawsEO; +import com.adc.da.search.service.StandLawsSearchService; +import com.adc.da.slrs.otConvertMq.dao.OtConvertMqDao; +import com.adc.da.slrs.otConvertMq.entity.OtConvertMq; +import com.adc.da.slrs.sarBussStandAttrInfo.dao.SarBussStandAttrInfoDao; +import com.adc.da.slrs.sarBussStandFile.dao.SarBussStandFileDao; +import com.adc.da.slrs.sarBussStandItems.dao.SarBussStandItemsDao; +import com.adc.da.slrs.sarBussStandMenu.dao.SarBussStandMenuDao; +import com.adc.da.slrs.sarBussStandVal.dao.SarBussStandValDao; +import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao; +import com.adc.da.slrs.sarLawsAttrInfo.dao.SarLawsAttrInfoDao; +import com.adc.da.slrs.sarLawsAttrInfo.entity.SarLawsAttrInfo; +import com.adc.da.slrs.sarLawsFile.dao.SarLawsFileDao; +import com.adc.da.slrs.sarLawsFile.entity.SarLawsFile; +import com.adc.da.slrs.sarLawsInfo.dao.SarLawsInfoDao; +import com.adc.da.slrs.sarLawsItems.dao.SarLawsItemsDao; +import com.adc.da.slrs.sarLawsItems.entity.SarLawsItems; +import com.adc.da.slrs.sarLawsMenu.dao.SarLawsMenuDao; +import com.adc.da.slrs.sarLawsMenu.entity.SarLawsMenu; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.dao.SarLawsStandInfoDao; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; +import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; +import com.adc.da.slrs.sarLawsVal.dao.SarLawsValDao; +import com.adc.da.slrs.sarLawsVal.entity.SarLawsVal; +import com.adc.da.slrs.sarResource.entity.TsResource; +import com.adc.da.slrs.sarResource.service.ITsResourceService; +import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao; +import com.adc.da.slrs.sarStandItems.entity.FindSarItemsPageReqDTO; +import com.adc.da.slrs.sarStandardsInfo.dao.SarStandardsInfoDao; +import com.adc.da.slrs.sarStandardsInfo.entity.SarAdvanceSearchVO; +import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService; +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.util.LoginUserUtil; +import com.adc.da.util.UUIDUtils; +import com.adc.da.utils.util.FieldConvertUtil; +import com.adc.da.utils.util.InitStandAttrUtil; +import com.adc.da.utils.util.SarAdvanceSearchUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import net.sf.json.JSONObject; +import org.apache.commons.lang.StringUtils; +import org.json.JSONTokener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.sql.Clob; +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author super_liu + * @since 2021-10-25 + */ +@Service +public class SarLawsStandInfoServiceImpl extends ServiceImpl implements ISarLawsStandInfoService { + + + @Value("${elas.flag}") + private boolean elasflag; //ES是否启用 + + @Value("${file.path}") + private String filePath;//文件存储路径 + + @Autowired + private IPersonCollectEOService personCollectEOService; + + @Autowired + private ITsResourceService iTsResourceService; + + @Autowired + private ITsUserService tsUserService; + + @Autowired + private IAttFileEOService attFileEOService; + + @Autowired + private DicTypeEODao dicTypeEODao; + + @Autowired + private SysInfoEOService sysInfoEOService; + + @Autowired + private SarLawsMenuDao sarLawsMenuDao; + + @Autowired + private OtConvertMqDao otConvertEODao; + + @Autowired + private CreateMQService convertMq; + + @Autowired + private SarLawsValDao sarBussStandValEODao; + + @Autowired + private SarLawsFileDao sarBussStandFileEODao; + + @Autowired + private CreateStandMQService createStandMQService; + + @Autowired + private ISarUpdLogService sarUpdLogEOService; + + @Autowired + private ITsResourceService sarMenuEOService; + + @Autowired + private PersonCollectEODao personCollectEODao; + + @Autowired + private SarLawsAttrInfoDao sarLawsAttrInfoDao; + + @Autowired + private SarLawsItemsDao sarLawsItemsDao; + + @Autowired + private StandLawsSearchService standLawsSearchService; + + @Override + public List getSarStandardsInfoPage(SarLawsStandInfoPage page) throws Exception { + //查询当前登录人角色拥有权限的菜单 + String userId = UserUtils.getUserId(); + if(page.getMenuId() != null && page.getUserId() != null && StringUtils.isNotBlank(userId)){ + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("ID",page.getMenuId()); + qw.isNull("PARENT_ID"); + List children = iTsResourceService.list(qw); + if(children.isEmpty() && !page.getMenuId().equals("nomenu")){ + List getMenuIdList = tsUserService.getResourceUserId(userId); + if (!getMenuIdList.isEmpty()) { + page.setMenuRoleList(getMenuIdList); + } else { + page.setMenuRoleList(null); + } + List ids = iTsResourceService.getChildMenuList(page.getMenuId()); + if (ids != null && !ids.isEmpty()) { + page.setMenuAllChildrenIdList(ids); + } + } + } + Integer rowCount = this.baseMapper.getSarStandardsInfoCount(page); + page.getPager().setRowCount(rowCount); + List rows = this.baseMapper.getSarStandardsInfoPage(page); + attrInfoCollect(rows); + return rows; + } + + @Override + public List getSarStandardsInfoPageBak(SarLawsStandInfoPage page) throws Exception { + //查询当前登录人角色拥有权限的菜单 + String userId = UserUtils.getUserId(); + if(page.getMenuId() != null && page.getUserId() != null && StringUtils.isNotBlank(userId)){ + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("ID",page.getMenuId()); + qw.isNull("PARENT_ID"); + List children = iTsResourceService.list(qw); + if(children.isEmpty() && !page.getMenuId().equals("nomenu")){ + List getMenuIdList = tsUserService.getResourceUserId(userId); + if (!getMenuIdList.isEmpty()) { + page.setMenuRoleList(getMenuIdList); + } else { + page.setMenuRoleList(null); + } + List ids = iTsResourceService.getChildMenuList(userId); + if (ids != null && !ids.isEmpty()) { + page.setMenuAllChildrenIdList(ids); + } + } + } + Integer rowCount = this.baseMapper.getSarStandardsInfoCount(page); + page.getPager().setRowCount(rowCount); + List rows = this.baseMapper.getSarStandardsInfoPage(page); + attrInfo(rows); + return rows; + } + + + /*** + * @Description: 处理属性表数据 + * @Param: [sarlist] + * @Return: void + */ + public void attrInfo (List sarlist) throws Exception { + for(SarLawsStandInfo row : sarlist){ + attrInfoDetails(row); + } + } + + public void attrInfoCollect (List sarlist) throws Exception { + List collectResIds = sarlist.stream().map(SarLawsStandInfo::getId).collect(Collectors.toList()); + Map collectMap = personCollectEOService.queryCollectByUserAndIds(collectResIds); + for (SarLawsStandInfo row : sarlist) { + if(collectMap != null && collectMap.get(row.getId()) != null){ + row.setCollectId(collectMap.get(row.getId())); + } + } + } + + + @Override + public SarLawsStandInfo selectStandardsInfoByKey(String id) throws Exception{ + List sarLawsStandInfoList = this.baseMapper.selectStandardsInfoByKey(id); + SarLawsStandInfo sarLawsStandInfo = new SarLawsStandInfo(); + if(!sarLawsStandInfoList.isEmpty()) { + List newStandList = new ArrayList<>(); + newStandList.add(sarLawsStandInfoList.get(0)); + attrInfoShowDetails(newStandList); + sarLawsStandInfo = newStandList.get(0); + } + return sarLawsStandInfo; + } + + @Override + public SarLawsStandInfo selectStandardsInfoUpdateByKey(String id) throws Exception{ + List sarLawsStandInfoList = this.baseMapper.selectStandardsInfoByKey(id); + SarLawsStandInfo sarLawsStandInfo = new SarLawsStandInfo(); + if(!sarLawsStandInfoList.isEmpty()) { + List newStandList = new ArrayList<>(); + newStandList.add(sarLawsStandInfoList.get(0)); + attrInfo(newStandList); + sarLawsStandInfo = newStandList.get(0); + } + return sarLawsStandInfo; + } + + public void attrInfoDetails (SarLawsStandInfo row) throws Exception { + String fieldInfo = InitStandAttrUtil.queryFieldLaws; + String collectId = personCollectEOService.queryCollectByUserAndId(row.getId()); + row.setCollectId(collectId); + // 查询属性表数据 + if (StringUtils.isNotBlank(fieldInfo)) { + Map getAttrMap = sarLawsAttrInfoDao.selectLawsFieldAndData(fieldInfo,row.getId()); + if (InitStandAttrUtil.clobFieldListLaws != null && !InitStandAttrUtil.clobFieldListLaws.isEmpty()) { + // 遍历修改所有clob类型的值 + for (String clobField : InitStandAttrUtil.clobFieldListLaws) { + Clob clobValue = (Clob) getAttrMap.get(clobField); + String fieldValue = FieldConvertUtil.ClobToString(clobValue); + getAttrMap.put(clobField,fieldValue); + } + } + // 组织机构和人员 + Map newMap = new HashMap<>(); + if(getAttrMap != null){ + for (Map.Entry entry : getAttrMap.entrySet()) { + String name = entry.getKey(); + Object value1 = entry.getValue(); + if (value1 != null && value1.toString().equals("\"null\"")){ + entry.setValue(""); + } + if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListLaws != null && InitStandAttrUtil.selectionFieldListLaws.size() > 0 && InitStandAttrUtil.selectionFieldListLaws.contains(name)) { + String value = entry.getValue().toString(); + String selVal = InitStandAttrUtil.selectFieldMapLaws.get(name); + if (SelectionTypeEnum.ORGLIST.getValue().equals(selVal)) { + value = sysInfoEOService.getOrgNamesByIds(value); + newMap.put(name + "Name",value); + } else if (SelectionTypeEnum.USERLIST.getValue().equals(selVal)) { + value = sysInfoEOService.getUserNamesByIds(value); + newMap.put(name + "Name",value); + } else if (SelectionTypeEnum.ROLELIST.getValue().equals(selVal)) { + value = sysInfoEOService.getRoleNamesByIds(value); + newMap.put(name + "Name",value); + } + } + } + getAttrMap.putAll(newMap); + } + + if (getAttrMap != null && !getAttrMap.isEmpty()) { + row.setAttrInfoCaseMap(transformUpperCase(getAttrMap)); + } + + row.setAttrInfoMap(getAttrMap); + } + } + + private Map transformUpperCase(Map orgMap) { + Map resultMap = new HashMap<>(); + + for (Map.Entry entry : orgMap.entrySet()) { + String newKey = entry.getKey().toLowerCase(); + resultMap.put(newKey, orgMap.get(entry.getKey())); + if (entry.getValue() != null && InitStandAttrUtil.fileFieldListLaws != null && !InitStandAttrUtil.fileFieldListLaws.isEmpty() && InitStandAttrUtil.fileFieldListLaws.contains(entry.getKey())) { + String value = entry.getValue().toString(); + if (StringUtils.isNotBlank(value)) { + List fileObj = attFileEOService.getMultiFileInfos(value); + if(!fileObj.isEmpty()){ + resultMap.put(newKey + "Name", fileObj.get(0).getOldFileName()); + } + } + } + } + + return resultMap; + } + + public void attrInfoShowDetails(List sarlist) throws Exception { + for (SarLawsStandInfo row : sarlist) { + attrInfoDetails(row); + Map getAttrMap = row.getAttrInfoMap(); + if (getAttrMap != null && getAttrMap.size() > 0) { + for (Map.Entry entry : getAttrMap.entrySet()) { + String name = entry.getKey(); + String value = ""; + if (entry.getValue() != null && InitStandAttrUtil.fileFieldListLaws != null && InitStandAttrUtil.fileFieldListLaws.size() > 0 && InitStandAttrUtil.fileFieldListLaws.contains(name)) { + value = entry.getValue().toString(); + if (StringUtils.isNotBlank(value)) { + List fileObj = attFileEOService.getMultiFileInfos(value); + entry.setValue(fileObj); + } + }else if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListLaws != null && InitStandAttrUtil.selectionFieldListLaws.size() > 0 && InitStandAttrUtil.selectionFieldListLaws.contains(name)) { + value = entry.getValue().toString(); + List valArr = Arrays.asList(value.split(",")); + value = dicTypeEODao.getDicNamesByCodes(valArr); + entry.setValue(value); + } + } + } + } + } + + @Override + public List getExportData(String exportType, String exportContent,String userId) throws Exception { + SarLawsStandInfoPage page = new SarLawsStandInfoPage(); + if ("apart".equals(exportType)) { + page.setIdlist(exportContent.split(",")); + } else { + JSONObject jsonObject = JSONObject.fromObject(exportContent); + page = (SarLawsStandInfoPage)JSONObject.toBean(jsonObject, SarLawsStandInfoPage.class); + page.setPage(1); + page.setPageSize(10000); + //查询当前登录人角色拥有权限的菜单 + if(page.getMenuId() != null && page.getUserId() != null && StringUtils.isNotBlank(page.getUserId())){ + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("ID",page.getMenuId()); + qw.isNull("PARENT_ID"); + List children = iTsResourceService.list(qw); + if(children.isEmpty() && !page.getMenuId().equals("nomenu")){ + List getMenuIdList = tsUserService.getResourceUserId(page.getUserId()); + if (getMenuIdList != null && !getMenuIdList.isEmpty()) { + page.setMenuRoleList(getMenuIdList); + } else { + page.setMenuRoleList(null); + } + List ids = iTsResourceService.getChildMenuList(page.getMenuId()); + if (ids != null && !ids.isEmpty()) { + page.setMenuAllChildrenIdList(ids); + } + } + } + if (StringUtils.isNotBlank(page.getAdvanceSearchVOStr())) { + List searchList = com.alibaba.fastjson.JSONObject.parseArray(page.getAdvanceSearchVOStr(),SarAdvanceSearchVO.class); + String advanceStr = SarAdvanceSearchUtil.createSql(searchList,"SAR_LAWS_ATTR_INFO"); + if (com.adc.da.util.utils.StringUtils.isNotBlank(advanceStr)) { + page.setAdvanceSearchStr(advanceStr); + } else { + page.setAdvanceSearchStr(null); + } + } + } + page.setOrderBy("SAR_LAWS_ATTR_INFO.issue_time is null,SAR_LAWS_ATTR_INFO.issue_time desc,SAR_LAWS_ATTR_INFO.id"); + if(userId != null){ + page.setUserId(userId); + }else { + page.setUserId(LoginUserUtil.getUserId()); + } + List rows = this.baseMapper.getSarStandardsExportInfo(page); + attrInfoShow(rows); + return rows; + } + + public void attrInfoShow (List sarlist) throws Exception { + for(SarLawsStandInfo row : sarlist){ + attrInfoDetails(row); + Map getAttrMap = row.getAttrInfoMap(); + Map getNewMap = new LinkedHashMap<>(); + if (getAttrMap != null && getAttrMap.size() > 0) { + String svppsTip = ""; + for (Map.Entry entry : getAttrMap.entrySet()) { + String name = entry.getKey(); + String value = ""; + if (entry.getValue() != null && InitStandAttrUtil.fileFieldListLaws != null && InitStandAttrUtil.fileFieldListLaws.size() > 0 && InitStandAttrUtil.fileFieldListLaws.contains(name)) { + value = entry.getValue().toString(); + if (StringUtils.isNotBlank(value)) { + List fileObj = attFileEOService.getMultiFileInfos(value); + entry.setValue(fileObj); + } + } else if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListLaws != null && InitStandAttrUtil.selectionFieldListLaws.size() > 0 && InitStandAttrUtil.selectionFieldListLaws.contains(name)) { + value = entry.getValue().toString(); + String selVal = InitStandAttrUtil.selectFieldMapLaws.get(name); + if (SelectionTypeEnum.ORGLIST.getValue().equals(selVal) || SelectionTypeEnum.USERLIST.getValue().equals(selVal) || SelectionTypeEnum.ROLELIST.getValue().equals(selVal)) { + if("ZYQCR".equals(name)||"QTQCR".equals(name)){ + if(getAttrMap.get(name + "Name")!=null && !getAttrMap.get(name + "Name").equals("")){ + value = String.valueOf(getAttrMap.get(name + "Name")); + } + }else{ + value = String.valueOf(getAttrMap.get(name + "Name")); + } + } else { + List valArr = Arrays.asList(value.split(",")); + value = dicTypeEODao.getDicNamesByCodes(valArr); + } + entry.setValue(value); + } + } + getAttrMap.put("SVPPSTips",svppsTip); + } + } + } + + @Override + public SarLawsStandInfoPage updateStandardsMenu(SarLawsStandInfoPage standardsInfoEO) { + SarLawsMenu sarStandMenuEO = new SarLawsMenu(); + String nowMenuId = standardsInfoEO.getMenuId(); + sarStandMenuEO.setMenuId(nowMenuId); + for (int i = 0; i < standardsInfoEO.getIdlist().length; i++) { + sarStandMenuEO.setLawsId(standardsInfoEO.getIdlist()[i]); + sarStandMenuEO.setId(null); + sarStandMenuEO.setValidFlag(0); + // 根据当前目录查询所在父节点 + String secondLevelId = ""; + List getMenuPIds = iTsResourceService.getParentMenuId(nowMenuId); + if (getMenuPIds != null && getMenuPIds.size() > 1) { + int idSize = getMenuPIds.size(); + secondLevelId = getMenuPIds.get(idSize-1); + } else { + secondLevelId = nowMenuId; + } + //查询标准是否已在 当前父节点中 + SarLawsMenu standMenuEOQuery = new SarLawsMenu(); + standMenuEOQuery.setMenuId(secondLevelId); + standMenuEOQuery.setLawsId(standardsInfoEO.getIdlist()[i]); + List menuIds = iTsResourceService.getChildMenuList(secondLevelId); + standMenuEOQuery.setMenuIds(menuIds); + List getInfo = sarLawsMenuDao.selectMenuByMenuParentId(standMenuEOQuery); + //删除节点与根节点的关联 + SarLawsMenu sarStandMenuDel = new SarLawsMenu(); + sarStandMenuDel.setLawsId(standardsInfoEO.getIdlist()[i]); + sarStandMenuDel.setMenuId(standardsInfoEO.getRootMenuId()); + sarLawsMenuDao.deleteByLawsIdAndMenuId(sarStandMenuDel); + if (getInfo == null || getInfo.isEmpty()) { + sarStandMenuEO.setId(UUIDUtils.randomUUID20()); + sarLawsMenuDao.insert(sarStandMenuEO); + } else { + sarStandMenuEO.setOldMenuId(secondLevelId); + List menuOldIds = iTsResourceService.getChildMenuList(secondLevelId); + sarStandMenuEO.setMenuIds(menuOldIds); + sarLawsMenuDao.updateByLawsIdAndMenuId(sarStandMenuEO); + } + } + return standardsInfoEO; + } + + public SarLawsStandInfo updateSarLawsStandInfo(SarLawsStandInfo sarLawsStandInfo) throws Exception { + String standId = sarLawsStandInfo.getId(); + SarLawsStandInfo beforeStandEO = this.baseMapper.selectById(standId); + if(beforeStandEO!=null){ + attrInfoDetails(beforeStandEO); + } + //规范性引用文件,如有数据,删除以前关联 + int resultCount = this.baseMapper.updateById(sarLawsStandInfo); + if (resultCount >= 1) { + // 修改属性表数据 + sarLawsAttrInfoDao.deleteLawsAttrByStandId(standId); + + // + sarBussStandValEODao.deleteDataBylawsId(standId); + + //删除文件详情表数据 + sarBussStandFileEODao.deleteBylawsId(standId); + SarLawsFile sarBussStandFileEO = new SarLawsFile(); + sarBussStandFileEO.setLawsId(standId); + sarBussStandFileEO.setIdList(null); + List listFile = sarBussStandFileEODao.selectFileBylawsIdAndId(sarBussStandFileEO); + if (listFile != null) { + if (!listFile.isEmpty()) { + for (int f = 0; f < listFile.size(); f++) { + //删除转换表ot_convert数据 + otConvertEODao.deleteByAttId(listFile.get(f).getAttId()); + } + } + } + createStandAttrInfo(sarLawsStandInfo); + // 根据代替标准号 ,修改代替标准号标准中的,被代替标准号 +// updateReplaceConnect(sarLawsStandInfo); + //修改收藏分享编号名称 + updateCollectAndShare(sarLawsStandInfo); + // 记录修改日志 + saveUpdateLog(sarLawsStandInfo,beforeStandEO); + if (elasflag) { + attrInfoShowSearchDetails(sarLawsStandInfo,"upd"); + createStandMQService.sendLawsMQ(sarLawsStandInfo, "update"); + } + } + return sarLawsStandInfo; + } + + public void attrInfoShowSearchDetails(SarLawsStandInfo row,String type) throws Exception { + if (row != null) { + attrInfoSearchDetails(row,type); + Map getAttrMap = row.getAttrInfoCaseMap(); + if (getAttrMap != null && getAttrMap.size() > 0) { + for (Map.Entry entry : getAttrMap.entrySet()) { + String name = entry.getKey().toUpperCase(); + String value = ""; + List valArr = new ArrayList<>(); + if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListLaws != null && InitStandAttrUtil.selectionFieldListLaws.size() > 0 && InitStandAttrUtil.selectionFieldListLaws.contains(name)) { + if(StringUtils.isNotBlank(entry.getValue().toString())){ + Object json= new JSONTokener(entry.getValue().toString()).nextValue(); + if(json instanceof org.json.JSONArray){ + valArr = com.alibaba.fastjson.JSONObject.parseArray(entry.getValue().toString(),String.class); + }else { + value = entry.getValue().toString(); + valArr = Arrays.asList(value.split(",")); + } + if(!valArr.isEmpty()){ + value = dicTypeEODao.getDicNamesByCodes(valArr); + } + } + entry.setValue(value); + } + } + } + } + } + + public void attrInfoSearchDetails(SarLawsStandInfo row,String type) throws Exception { + String fieldInfo = InitStandAttrUtil.queryFieldLaws; + String collectId = personCollectEOService.queryCollectByUserAndId(row.getId()); + row.setCollectId(collectId); + // 查询属性表数据 + if (StringUtils.isNotBlank(fieldInfo)) { + Map getAttrMap = new TreeMap<>(); + if(type.equals("add")){ + String sarStandAttrEOStr = row.getSarStandAttrEOStr(); + getAttrMap = JSONObject.fromObject(sarStandAttrEOStr); + }else { + getAttrMap = sarLawsAttrInfoDao.selectLawsFieldAndData(fieldInfo, row.getId()); + } + if (InitStandAttrUtil.clobFieldList != null && !InitStandAttrUtil.clobFieldList.isEmpty()) { + // 遍历修改所有clob类型的值 + for (String clobField : InitStandAttrUtil.clobFieldList) { + Clob clobValue = (Clob) getAttrMap.get(clobField); + String fieldValue = FieldConvertUtil.ClobToString(clobValue); + getAttrMap.put(clobField, fieldValue); + } + } + + if (getAttrMap != null && !getAttrMap.isEmpty()) { + row.setAttrInfoCaseMap(transformUpperCase(getAttrMap)); + } + +// row.setAttrInfoMap(getAttrMap); + } + } + + public void saveUpdateLog(SarLawsStandInfo sarStandardsInfoEO,SarLawsStandInfo beforeSarStandardsInfo) throws Exception{ + Map newMap = new HashMap<>(); + Map oldMap = beforeSarStandardsInfo.getAttrInfoMap(); + String attrStr = sarStandardsInfoEO.getSarStandAttrEOStr(); + if (StringUtils.isNotBlank(attrStr)) { + newMap = JSONObject.fromObject(attrStr); + } + newMap = changeMap(sarStandardsInfoEO,newMap); + oldMap = changeMap(beforeSarStandardsInfo,oldMap); + String sortName = sysInfoEOService.getDicNamesByCodes(sarStandardsInfoEO.getLawsType()); + String number = sortName + " " + sarStandardsInfoEO.getLawsNumber(); + String content = number + " 《" + sarStandardsInfoEO.getLawsName()+" " + sarStandardsInfoEO.getLawsEnName() + "》"; + sarUpdLogEOService.createUpdateLog(SarTypeEnum.BUSINESS.getValue(),sarStandardsInfoEO.getId(),oldMap,newMap,content); + } + + public Map changeMap (SarLawsStandInfo sarStandardsInfoEO,Map map) { +// map.put("country",verifyObj(sarStandardsInfoEO.getApplyCountry())); + map.put("lawsType",verifyObj(sarStandardsInfoEO.getLawsType())); + map.put("lawsNumber",verifyObj(sarStandardsInfoEO.getLawsNumber())); + map.put("lawsName",verifyObj(sarStandardsInfoEO.getLawsName())); + map.put("lawsEnName",verifyObj(sarStandardsInfoEO.getLawsEnName())); + map.put("lawsNo",verifyObj(sarStandardsInfoEO.getLawsNo())); + return map; + } + + private Object verifyObj(Object str){ + return str == null ? "" : str; + } + + public void updateCollectAndShare(SarLawsStandInfo sarLawsStandInfo) throws Exception { + //修改收藏表中 + String number = sarLawsStandInfo.getLawsNumber()+ ")"; + PersonCollectEOPage personCollectEOPage = new PersonCollectEOPage(); + personCollectEOPage.setValidFlag("0"); + personCollectEOPage.setCollectResId(sarLawsStandInfo.getId()); + List listCollect = personCollectEOService.queryByList(personCollectEOPage); + if (listCollect != null && listCollect.size() > 0) { + for (TsPersonCollect getCollect : listCollect) { + TsPersonCollect collectEO = new TsPersonCollect(); + collectEO.setId(getCollect.getId()); + collectEO.setCollectTitle(sarLawsStandInfo.getLawsName() + " " + "( 编号:" + number); + personCollectEOService.updateByPrimaryKeySelective(collectEO); + } + } + } + + /*** + * @Description: 新增属性表数据 + * @Date: 2020/9/8 9:53 + * @Param: [sarStandardsInfoEO] + * @Return: void + */ + public void createStandAttrInfo (SarLawsStandInfo sarBussionessStandEO) throws Exception { + String sarStandAttrEOStr = sarBussionessStandEO.getSarStandAttrEOStr(); + String mustFields = FieldConvertUtil.mustFieldsLaws; + String mustValues = FieldConvertUtil.mustValues(sarBussionessStandEO.getId()); + // 将字符串转为map进行解析 + Map sarStandAttrMap = JSONObject.fromObject(sarStandAttrEOStr); + StringBuilder fieldsBuilder = new StringBuilder(); + StringBuilder valuesBuilder = new StringBuilder(); + Map selectionMap = new HashMap<>(); + Map fileMap = new HashMap<>(); + Map multiTimeMap = new HashMap<>(); + String fileIds = ""; + for (Map.Entry entry : sarStandAttrMap.entrySet()) { + String attrKey = entry.getKey(); + String attrValue = String.valueOf(entry.getValue()); + if (InitStandAttrUtil.queryFieldListLaws != null && !InitStandAttrUtil.queryFieldListLaws.isEmpty()) { + if (InitStandAttrUtil.queryFieldListLaws.contains(attrKey)) { + fieldsBuilder.append("," + attrKey); + if ("DTWJHLAWS".equals(attrKey)) { + sarBussionessStandEO.setReplaceFileNum(attrValue); + } + // 多选项,文件类型需要单独处理 向子表添加数据 + if (InitStandAttrUtil.selectionFieldListLaws.contains(attrKey)) { + selectionMap.put(attrKey,attrValue); + } else if (InitStandAttrUtil.fileFieldListLaws.contains(attrKey)) { + fileMap.put(attrKey,attrValue); + fileIds += attrValue + ","; + } else if (InitStandAttrUtil.multiTimeFieldList.contains(attrKey)) { + multiTimeMap.put(attrKey,attrValue); + } + // 不同类型存储数据需单独处理值 + if (InitStandAttrUtil.numFieldListLaws.contains(attrKey)) { + if (StringUtils.isBlank(attrValue)) { + attrValue = "null"; + } + } else if (InitStandAttrUtil.timeFieldListLaws.contains(attrKey)) { + attrValue = FieldConvertUtil.changeTimeValue(attrValue); + } else { + attrValue = "'" + attrValue + "'"; + } + valuesBuilder.append("," + attrValue); + sarBussionessStandEO.setFileIds(fileIds); + } + } + } + String insertField = mustFields + fieldsBuilder.toString(); + String insertValue = mustValues + valuesBuilder.toString(); + int insertRes = sarLawsAttrInfoDao.insertLawsAttr(insertField,insertValue); + if (insertRes > 0) { + // 多选项处理 + createStandVal(sarBussionessStandEO.getId(),selectionMap); + // 文件处理 + createStandFile(sarBussionessStandEO.getId(),fileMap); + // 多时间处理 +// createStandPutTime(sarBussionessStandEO.getId(),multiTimeMap); + } + } + + /*** + * @Description: 多选项处理 + * @Author: yangxuenan + * @Date: 2020/9/8 14:37 + * @Param: [sarStandardsInfoEO, selectionMap] + * @Return: void + */ + public void createStandVal (String standId,Map selectionMap) { + if (selectionMap != null && selectionMap.size() > 0) { + List standValList = new ArrayList<>(); + for (Map.Entry entry : selectionMap.entrySet()) { + String value = entry.getValue(); + String field = entry.getKey(); + if (StringUtils.isNotBlank(value)) { + String[] valArr = value.trim().split(","); + for (String val : valArr) { + SarLawsVal sarStandValEO = new SarLawsVal(); + sarStandValEO.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue()); + sarStandValEO.setCreationTime(new Date()); + sarStandValEO.setModifyTime(new Date()); + sarStandValEO.setLawsId(standId); + sarStandValEO.setId(UUIDUtils.randomUUID20()); + sarStandValEO.setPropertyType(field); + sarStandValEO.setPropertyVal(val); + standValList.add(sarStandValEO); + } + } + } + if (standValList != null && !standValList.isEmpty()) { + sarBussStandValEODao.insertForeach(standValList); + } + } + } + + /*** + * @Description: 文件处理 + * @Author: yangxuenan + * @Date: 2020/9/8 15:01 + * @Param: [standId, fileMap] + * @Return: void + */ + public void createStandFile (String standId,Map fileMap) throws Exception { + if (fileMap != null && fileMap.size() > 0) { + List standFileList = new ArrayList<>(); + for (Map.Entry entry : fileMap.entrySet()) { + String value = entry.getValue(); + String field = entry.getKey(); + if (StringUtils.isNotBlank(value)) { + List fileList = attFileEOService.getMultiFileInfos(value); + if (fileList != null && !fileList.isEmpty()) { + createStandFileAppend(standId,field,fileList,standFileList); + } + } + } + if (standFileList != null && !standFileList.isEmpty()) { + sarBussStandFileEODao.insertForeach(standFileList); + } + } + } + + public void createStandFileAppend (String standId,String field,List fileList,List standFileList) throws Exception { + for (AttFileEO fileInfo : fileList) { + SarLawsFile sarStandFileEO = new SarLawsFile(); + sarStandFileEO.setCreationUser(LoginUserUtil.getUserId()); + sarStandFileEO.setCreationTime(new Date()); + sarStandFileEO.setModifyTime(new Date()); + sarStandFileEO.setValidFlag(0); + sarStandFileEO.setLawsId(standId); //标准ID + sarStandFileEO.setUseModel(UseModuleEnum.SOURCE_FILE.getValue()); //文件使用模式 + sarStandFileEO.setId(com.adc.da.sys.util.UUIDUtils.randomUUID20()); + sarStandFileEO.setAttId(fileInfo.getId()); //文件ID + sarStandFileEO.setLawsFileClassify(field); //文件分类 + sarStandFileEO.setFileName(fileInfo.getOldFileName()); + sarStandFileEO.setFileSuffix(fileInfo.getFileSuffix()); + sarStandFileEO.setOriAttId(fileInfo.getId()); + standFileList.add(sarStandFileEO); + //文档转换 + if ("pdf".equals(fileInfo.getFileSuffix()) || "PDF".equals(fileInfo.getFileSuffix())) { + SarLawsFile newFileEO = new SarLawsFile(); + newFileEO.setCreationUser(LoginUserUtil.getUserId()); + newFileEO.setCreationTime(new Date()); + newFileEO.setModifyTime(new Date()); + newFileEO.setValidFlag(0); + newFileEO.setLawsId(standId); //标准ID + newFileEO.setId(com.adc.da.sys.util.UUIDUtils.randomUUID20()); + newFileEO.setAttId(fileInfo.getId()); //文件ID + newFileEO.setLawsFileClassify(field); //文件分类 + newFileEO.setFileName(fileInfo.getOldFileName()); + newFileEO.setFileSuffix(fileInfo.getFileSuffix()); + newFileEO.setUseModel(UseModuleEnum.WEB_FILE.getValue()); //文件使用模式 //文件名称@@@@@@@需要修改 + newFileEO.setOriAttId(fileInfo.getId()); + standFileList.add(newFileEO); + } else { + String filePath = fileInfo.getFilePath() + fileInfo.getFileName(); + OtConvertMq convert = new OtConvertMq(); + convert.setLawsId(standId); + convert.setAttId(fileInfo.getId()); + convert.setFilePath(filePath); + convert.setAddOrUp("0"); + convert.setFileSuffix(fileInfo.getFileSuffix()); + convert.setStandFileClassify(field); + convert.setConvertType(SarTypeEnum.LAWS_STAND.getValue()); + convertMq.sendMQ(convert); + } + } + } + + @Override + public ResponseMessage deleteSarLawsStandInfo(SarLawsStandInfoPage page) throws Exception { + SarLawsStandInfo sarLawsStandInfo = new SarLawsStandInfo(); + sarLawsStandInfo.setValidFlag(1); + sarLawsStandInfo.setModifyTime(new Date()); + for (String id : page.getIdlist()) { + //删除标准表 + sarLawsStandInfo.setId(id); + this.baseMapper.updateById(sarLawsStandInfo); + // 删除标准属性表 + sarLawsAttrInfoDao.deleteLawsAttrByStandId(id); + // 删除条款 + sarLawsItemsDao.deleteByStandIdAndFileType(id,null); + //删除收藏表中数据 + personCollectEODao.deleteByResId(id); + //删除标准关联的value表 + sarBussStandValEODao.deleteDataBylawsId(id); + List listFile = sarBussStandFileEODao.selectFileBylawsId(id); + if (listFile != null) { + if (!listFile.isEmpty()) { + for (int f = 0; f < listFile.size(); f++) { + sarBussStandFileEODao.deleteByPrimaryKey(listFile.get(f).getId()); + //删除文件信息表数据 +// sarFileInfoEODao.deleteByfileId(listFile.get(f).getId()); + //删除转换表ot_convert数据 + otConvertEODao.deleteByAttId(listFile.get(f).getAttId()); + } + } + } + if(elasflag) { + //删除成功后,将索引中对应数据删除 + StandLawsEO standLawsEO = new StandLawsEO(); + standLawsEO.setId(sarLawsStandInfo.getId()); + standLawsEO.setType("laws"); + standLawsSearchService.deleteStandLawsSearch(standLawsEO); + } + + } + return Result.success("0", "删除成功", sarLawsStandInfo); + } + + public List selectStandardsByStandNumber(String replaceStandNum) { + QueryWrapper wrapper = new QueryWrapper(); + wrapper.eq("LAWS_NUMBER",replaceStandNum); + wrapper.eq("VALID_FLAG",0); + return this.baseMapper.selectList(wrapper); + } + + /*** + * @Description: 新增政策 + * @Return: void + */ + public void createSarStandardsInfo(SarLawsStandInfo sarLawsStandInfo) throws Exception { + // 处理基础表信息 + sarLawsStandInfo.setId(UUIDUtils.randomUUID20()); + sarLawsStandInfo.setCreationUser(LoginUserUtil.getUserId()); + sarLawsStandInfo.setValidFlag(0); + sarLawsStandInfo.setCreationTime(new Date()); + sarLawsStandInfo.setModifyTime(new Date()); + //根据新建标准所在目录,确定此处是否需要在标准目录关联表中插入数据 + if (StringUtils.isNotEmpty(sarLawsStandInfo.getMenuId())) { + SarLawsMenu sarLawsMenu = new SarLawsMenu(); + sarLawsMenu.setLawsId(sarLawsStandInfo.getId()); + sarLawsMenu.setMenuId(sarLawsStandInfo.getMenuId()); + sarLawsMenu.setValidFlag(ValueStateEnum.VALUE_TRUE.getValue()); + sarLawsMenu.setId(UUIDUtils.randomUUID20()); + sarLawsMenuDao.insert(sarLawsMenu); + } + int insertResult = this.baseMapper.insert(sarLawsStandInfo); + if (insertResult > 0) { + // 修改属性表数据 + List standAttrInfos = sarLawsAttrInfoDao.selectList(new QueryWrapper().eq("LAWS_ID",sarLawsStandInfo.getId())); + if(!standAttrInfos.isEmpty()){ + sarLawsAttrInfoDao.deleteLawsAttrByStandId(standAttrInfos.get(0).getLawsId()); + } + //编写预警信息 +// writeWarnings(sarStandardsInfoEO); + // 处理属性表信息 + if (StringUtils.isNotBlank(sarLawsStandInfo.getSarStandAttrEOStr())) { + createStandAttrInfo(sarLawsStandInfo); + } + updateCiteStand(sarLawsStandInfo, null, "DTWJHLAWS", "BDTWJHLAWS"); +// updateCiteStand(sarLawsStandInfo, null, "BFDTBZ", "BBFDTBZ"); +// updateRelateStand(sarStandardsInfoEO, "CBBH"); + // 根据代替标准号修改被代替的标准的状态 修改为已修订状态 +// replaseStandState(sarStandardsInfoEO); + // 增加关联事件 + String number = ""; + if (StringUtils.isNotBlank(sarLawsStandInfo.getLawsNumber())) { + number = sarLawsStandInfo.getLawsNumber(); + } + String content = "新增" + number + " 《" + sarLawsStandInfo.getLawsName() + "》"; + sarUpdLogEOService.createBaseLog(sarLawsStandInfo.getId(), sarLawsStandInfo.getLawsType() + "_Laws", content); + if(elasflag) { + // 消息队列 + attrInfoShowSearchDetails(sarLawsStandInfo,"add"); + FindSarItemsPageReqDTO pageInfo = new FindSarItemsPageReqDTO(); + pageInfo.setStandId(sarLawsStandInfo.getId()); + pageInfo.setFileType("FBGBJBD"); + + /** + * SarItemVO换为sarItemVOS + * List sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo); + * .collect(Collectors.toMap(SarItemVO::getItemsNum, SarItemVO::getItemsName)); + */ + + List sarItemVOS = sarLawsItemsDao.querySarItemAndInterpretation(pageInfo); + if(!sarItemVOS.isEmpty()){ + Map collectMap = sarItemVOS.stream().filter((e) -> e.getItemsNum() != null && e.getItemsName() != null) + .collect(Collectors.toMap(SarLawsItems::getItemsNum, SarLawsItems::getTermsConditions)); + sarLawsStandInfo.setMapItems(collectMap); + } + createStandMQService.sendLawsMQ(sarLawsStandInfo,"add"); + } + } + } + + // 新增修改标准过程中,根据代替标准号,修改被代替标准号对应的标准 + public void updateCiteStand(SarLawsStandInfo sarLawsStandInfo, SarLawsStandInfo beforeSarStandardsInfo, String upField, String beUpedField) throws Exception { + // 记录要被代替标准号的数据 +// SarStandardsInfoEO chageEO= new SarStandardsInfoEO(); + SarLawsStandInfo sarStandardsSelectEO = new SarLawsStandInfo(); + String addStrandNumber = ""; + String beforeStrandNumber = ""; + if (StringUtils.isNotEmpty(sarLawsStandInfo.getLawsNumber())) { + addStrandNumber = sarLawsStandInfo.getLawsNumber(); + } + if (beforeSarStandardsInfo != null) { + if (StringUtils.isNotEmpty(beforeSarStandardsInfo.getLawsNumber())) { + beforeStrandNumber = beforeSarStandardsInfo.getLawsNumber(); + } + } + // 以“,”分隔查看之前是否有 ,如果有不修改,如果没有,追加修改 + String newCiteStand = ""; + if ("DTWJHLAWS".equals(upField)) { + newCiteStand = sarLawsStandInfo.getReplaceFileNum(); + } + + if (StringUtils.isNotEmpty(newCiteStand) && newCiteStand.split(",").length > 0) { + // 主要逻辑处理新增的 + String nowEOrepNums[] = newCiteStand.split(","); + for (String citeStand : nowEOrepNums) { + sarStandardsSelectEO.setLawsNumber(citeStand); + List result = selectStandardsByStandNumber(citeStand); + if (result != null && result.size() > 0) { + String standId = result.get(0).getId(); + String field = beUpedField; + String citedStand = sarLawsAttrInfoDao.selectFieldValByLawsId(field, result.get(0).getId()); + String changeCitedStand = ""; + if (org.apache.commons.lang3.StringUtils.isNotBlank(citedStand)) { + String[] beforeReplacedStandNumStr = citedStand.split(","); + if (Arrays.asList(beforeReplacedStandNumStr).contains(addStrandNumber)) { + continue; + } else { + changeCitedStand = citedStand + "," + addStrandNumber; + } + } else { + changeCitedStand = addStrandNumber; + } + sarLawsAttrInfoDao.updateLawsInfo(standId, field, changeCitedStand); + } + } + // 如果id不为空,说明是修改,有逻辑删除的执行以下语句,存在之前是三项,现在修改成两项的情况 + if (null != beforeSarStandardsInfo) { + String oldCiteStand = String.valueOf(beforeSarStandardsInfo.getAttrInfoMap().get(upField)); + if (StringUtils.isNotEmpty(oldCiteStand)) { + String[] beforeEOrepNums = oldCiteStand.split(","); + for (String beforeStr : beforeEOrepNums) { + // 如果再旧的中包含,在新的中没有,需要删除 + if (!Arrays.asList(nowEOrepNums).contains(beforeStr)) { + sarStandardsSelectEO.setLawsNumber(beforeStr); + List result = selectStandardsByStandNumber(beforeStr); + if (result != null && result.size() > 0) { + String standId = result.get(0).getId(); + String field = beUpedField; + String citedStand = sarLawsAttrInfoDao.selectFieldValByLawsId(field, result.get(0).getId()); + String changeCitedStand = ""; + if (StringUtils.isNotBlank(citedStand)) { + String[] beforerepalced = citedStand.split(","); + ArrayList beforlist = new ArrayList<>(Arrays.asList(beforerepalced)); + if (beforlist.contains(beforeStrandNumber)) { + beforlist.remove(beforeStrandNumber); + changeCitedStand = StringUtils.join(beforlist.toArray(), ","); + } else { + continue; + } + sarLawsAttrInfoDao.updateLawsInfo(standId, field, changeCitedStand); + } + } + } + } + } + } + + } else { + // 如果为空,判断是否为修改 + if (null != beforeSarStandardsInfo) { + String oldCiteStand = String.valueOf(beforeSarStandardsInfo.getAttrInfoMap().get("YYBJ")); + if (StringUtils.isNotEmpty(oldCiteStand)) { + String[] beforeEOrepNums = oldCiteStand.split(","); + for (String beforeStr : beforeEOrepNums) { + // 如果再旧的中包含,在新的中没有,需要删除,相关数据取第一条是因为标准号是唯一的 + sarStandardsSelectEO.setLawsNumber(beforeStr); + List result = selectStandardsByStandNumber(beforeStr); + if (result != null && result.size() > 0) { + String standId = result.get(0).getId(); + String field = "BDTWJHLAWS"; + String citedStand = sarLawsAttrInfoDao.selectFieldValByLawsId(field, result.get(0).getId()); + String changeCitedStand = ""; + if (org.apache.commons.lang3.StringUtils.isNotBlank(citedStand)) { + String[] beforerepalced = citedStand.split(","); + ArrayList beforlist = new ArrayList<>(Arrays.asList(beforerepalced)); + if (beforlist.contains(beforeStrandNumber)) { + beforlist.remove(beforeStrandNumber); + changeCitedStand = org.apache.commons.lang3.StringUtils.join(beforlist.toArray(), ","); + } else { + continue; + } + sarLawsAttrInfoDao.updateLawsInfo(standId, field, changeCitedStand); + } + } + } + } + } + } + } + + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/controller/SarLawsValController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/controller/SarLawsValController.java new file mode 100644 index 00000000..962f541a --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/controller/SarLawsValController.java @@ -0,0 +1,23 @@ +package com.adc.da.slrs.sarLawsVal.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; +import com.adc.da.slrs.sarLawsVal.entity.SarLawsVal; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RestController; +import com.adc.da.base.web.BaseController; + +/** +*

+ * 前端控制器 + *

+* +* @author super_liu +* @since 2021-10-28 +*/ +@RestController +@Api(description = "|SarLawsVal|") +@RequestMapping("/sarLawsVal/sar-laws-val") +public class SarLawsValController extends BaseController { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/dao/SarLawsValDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/dao/SarLawsValDao.java new file mode 100644 index 00000000..51dc4689 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/dao/SarLawsValDao.java @@ -0,0 +1,24 @@ +package com.adc.da.slrs.sarLawsVal.dao; + +import com.adc.da.slrs.sarLawsVal.entity.SarLawsVal; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Repository +public interface SarLawsValDao extends BaseMapper { + + //通过标准id删除表中数据 + int deleteDataBylawsId(String standId); + + int insertForeach(List list); //批量新增 +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/entity/SarLawsVal.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/entity/SarLawsVal.java new file mode 100644 index 00000000..ee02c769 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/entity/SarLawsVal.java @@ -0,0 +1,64 @@ +package com.adc.da.slrs.sarLawsVal.entity; + +import com.adc.da.base.entity.BaseEntity; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@ApiModel(value="SarLawsVal对象", description="") +public class SarLawsVal extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId("ID") + private String id; + + @ApiModelProperty(value = "法规ID") + @TableField("LAWS_ID") + private String lawsId; + + @ApiModelProperty(value = "参数类型") + @TableField("PROPERTY_TYPE") + private String propertyType; + + @ApiModelProperty(value = "参数内容") + @TableField("PROPERTY_VAL") + private String propertyVal; + + @ApiModelProperty(value = "是否有效") + @TableField("VALID_FLAG") + private Integer validFlag; + + @ApiModelProperty(value = "创建时间") + @TableField("CREATION_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date creationTime; + + @ApiModelProperty(value = "修改时间") + @TableField("MODIFY_TIME") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date modifyTime; + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/service/ISarLawsValService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/service/ISarLawsValService.java new file mode 100644 index 00000000..a4f2349f --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/service/ISarLawsValService.java @@ -0,0 +1,16 @@ +package com.adc.da.slrs.sarLawsVal.service; + +import com.adc.da.slrs.sarLawsVal.entity.SarLawsVal; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +public interface ISarLawsValService extends IService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/service/impl/SarLawsValServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/service/impl/SarLawsValServiceImpl.java new file mode 100644 index 00000000..01a90c0d --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsVal/service/impl/SarLawsValServiceImpl.java @@ -0,0 +1,20 @@ +package com.adc.da.slrs.sarLawsVal.service.impl; + +import com.adc.da.slrs.sarLawsVal.entity.SarLawsVal; +import com.adc.da.slrs.sarLawsVal.dao.SarLawsValDao; +import com.adc.da.slrs.sarLawsVal.service.ISarLawsValService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author super_liu + * @since 2021-10-28 + */ +@Service +public class SarLawsValServiceImpl extends ServiceImpl implements ISarLawsValService { + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/controller/SarStandAttrDetailsController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/controller/SarStandAttrDetailsController.java index a54e33b7..1a2c55e6 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/controller/SarStandAttrDetailsController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/controller/SarStandAttrDetailsController.java @@ -77,6 +77,8 @@ public class SarStandAttrDetailsController extends BaseController getLawsStandList = InitStandAttrUtil.lawsStandAttrFieldList; + resultMap.put(SarTypeEnum.LAWS_STAND.getValue(),getLawsStandList); List getInlandLawsList = InitStandAttrUtil.lawsInlandAttrFieldList; resultMap.put(SarTypeEnum.INLAND_LAWS.getValue(),getInlandLawsList); List getForeignLawsList = InitStandAttrUtil.lawsForeignAttrFieldList; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/service/impl/SarStandAttrDetailsServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/service/impl/SarStandAttrDetailsServiceImpl.java index 464d7fb9..0923070d 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/service/impl/SarStandAttrDetailsServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrDetails/service/impl/SarStandAttrDetailsServiceImpl.java @@ -66,6 +66,7 @@ public class SarStandAttrDetailsServiceImpl extends ServiceImpl pageInfo = null; try { - pageInfo = sarStandardsInfoController.getSarStandardsInfoPage(page).getData().getList(); + pageInfo = sarStandardsInfoService.getSarStandardsInfoPageBak(page); } catch (Exception e) { e.printStackTrace(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java index 9ad9ae4e..76b8ad99 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandProjectLibrary/service/impl/SarStandProjectLibraryServiceImpl.java @@ -250,8 +250,9 @@ public class SarStandProjectLibraryServiceImpl extends ServiceImpl queryProjectManager(int current, int pageSize) { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.select("distinct product_line","sar_stand_project_library.project_manager as projectManager","s.uName"); - wrapper.last("inner join ts_user s on s.USID = sar_stand_project_library.project_manager"); + wrapper.select("product_line","s.user_id as projectManager","s.NAME AS uName"); + wrapper.last("inner join sar_stand_project_team s on s.project_code = sar_stand_project_library.project_number" + + " and sar_stand_project_library.product_line IS not NULL"); Page page = new Page<>(current, pageSize); IPage userIPage = sarStandProjectLibraryDao.selectPage(page, wrapper); System.out.println("总条数"+userIPage.getTotal()); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java index f465caf7..4f8e4179 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java @@ -91,7 +91,7 @@ public class SarStandardsInfoController extends BaseController @ApiOperation(value = "|SarStandardsInfoEO|自定义分页查询") @GetMapping("/getSarStandardsInfoPage") //@RequiresPermissions("lawss:sarStandardsInfo:getSarStandardsInfoPage") - public ResponseMessage> getSarStandardsInfoPage(SarStandardsInfoEOPage page) throws Exception { + public ResponseMessage> getSarStandardsInfoPage(SarStandardsInfoEOPage page,@RequestParam(defaultValue = "0") String mark) throws Exception { int isNull = -1; if (null != page.getNowOrderBy()) { switch (page.getNowOrderBy()) { @@ -183,6 +183,67 @@ public class SarStandardsInfoController extends BaseController return Result.success(getPageInfo(page.getPager(), rows)); } + @ApiOperation(value = "|SarStandardsInfoEO|自定义分页查询") + @GetMapping("/getSarStandardsInfoPageBak") + //@RequiresPermissions("lawss:sarStandardsInfo:getSarStandardsInfoPage") + public ResponseMessage> getSarStandardsInfoPageBak(SarStandardsInfoEOPage page,@RequestParam(defaultValue = "0") String mark) throws Exception { +// int isNull = -1; +// if (null != page.getNowOrderBy()) { +// switch (page.getNowOrderBy()) { +// case 1: +// page.setOrderByA("issueTime");//发布日期 +// break; +// case 2: +// page.setOrderByA("SAR_STAND_ATTR_INFO.ZCCSSRQ");//新车型实施日期 +// break; +// case 3: +// page.setOrderByA("SAR_STAND_ATTR_INFO.XCXSSRQ");//在产车实施日期 +// break; +// case 4: +// page.setOrderByA("SAR_STANDARDS_INFO.text_status");//文本状态 +// break; +// case 5: +// page.setOrderByA("paixu"); +// break; +// case 6: +// page.setOrderByA("SAR_STAND_ATTR_INFO.SSRQ"); +// break; +// default: +// page.setNowOrder(null); +// break; +// } +// if (null != page.getNowOrder()) { +// switch (page.getNowOrder()) { +// case 1: +// page.setOrder1("desc"); +// break; +// case 2: +// page.setOrder1("asc"); +// default: +// page.setOrder1(null); +// break; +// } +// } +// } +// +// +// if (StringUtils.isNotBlank(page.getAdvanceSearchVOStr())) { +// List searchList = JSONObject.parseArray(page.getAdvanceSearchVOStr(),SarAdvanceSearchVO.class); +// String advanceStr = SarAdvanceSearchUtil.createStandSql(searchList); +// if (StringUtils.isNotBlank(advanceStr)) { +// page.setAdvanceSearchStr(advanceStr); +// } else { +// page.setAdvanceSearchStr(null); +// } +// } +// +// if(page.getUserId() == null || page.getUserId().equals("")){ +// page.setUserId(LoginUserUtil.getUserId()); +// } + List rows = sarStandardsInfoEOService.getSarStandardsInfoPageBak(page); + return Result.success(getPageInfo(page.getPager(), rows)); + } + @ApiOperation(value = "|SarStandardsInfoEO|新增") @PostMapping("/addarStandardsInfo") //401问题2021-03-31暂时注释掉 liuhuiwen diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java index 1878823f..9fcbf007 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/ISarStandardsInfoService.java @@ -21,6 +21,8 @@ public interface ISarStandardsInfoService extends IService { List getSarStandardsInfoPage(SarStandardsInfoEOPage page) throws Exception; + List getSarStandardsInfoPageBak(SarStandardsInfoEOPage page) throws Exception; + void createSarStandardsInfo(SarStandardsInfo sarStandardsInfoEO) throws Exception; int updateSarStandardsInfo(SarStandardsInfo sarStandardsInfoEO) throws Exception; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index 4b065fee..43ad052b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -284,6 +284,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl */ + @Override public List getSarStandardsInfoPage(SarStandardsInfoEOPage page) throws Exception { //查询当前登录人角色拥有权限的菜单 if(page.getMenuId() != null && page.getUserId() != null && StringUtils.isNotBlank(page.getUserId())){ @@ -311,6 +312,34 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getSarStandardsInfoPageBak(SarStandardsInfoEOPage page) throws Exception { + //查询当前登录人角色拥有权限的菜单 + if(page.getMenuId() != null && page.getUserId() != null && StringUtils.isNotBlank(page.getUserId())){ + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("ID",page.getMenuId()); + qw.isNull("PARENT_ID"); + List children = iTsResourceService.list(qw); + if(children.isEmpty() && !page.getMenuId().equals("nomenu")){ + List getMenuIdList = tsUserService.getResourceUserId(page.getUserId()); + if (getMenuIdList != null && !getMenuIdList.isEmpty()) { + page.setMenuRoleList(getMenuIdList); + } else { + page.setMenuRoleList(null); + } + List ids = iTsResourceService.getChildMenuList(page.getMenuId()); + if (ids != null && !ids.isEmpty()) { + page.setMenuAllChildrenIdList(ids); + } + } + } + Integer rowCount = dao.getSarStandardsInfoCount(page); + page.getPager().setRowCount(rowCount); + List sarlist = dao.getSarStandardsInfoPage(page); + attrInfo(sarlist); + return sarlist; + } + public void attrInfo(List sarlist) throws Exception { for (SarStandardsInfo row : sarlist) { attrInfoDetails(row); @@ -358,7 +387,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 0 && InitStandAttrUtil.selectionFieldList.contains(name)) { + if (entry.getValue() != null && InitStandAttrUtil.selectionFieldList != null && InitStandAttrUtil.selectionFieldList.size() > 0 && InitStandAttrUtil.selectionFieldList.contains(name)) { String value = entry.getValue().toString(); String selVal = InitStandAttrUtil.selectFieldMap.get(name); if (SelectionTypeEnum.ORGLIST.getValue().equals(selVal)) { @@ -453,7 +482,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl fileObj = attFileEOService.getMultiFileInfos(value); entry.setValue(fileObj); - //以标准id和文本类型查询分解单表 有数据设标记为为 1 + //以标准id和文本类型查询分解单表 有数据设标记为为 1 FindSarItemsPageReqDTO sarItemCount = new FindSarItemsPageReqDTO(); sarItemCount.setStandId(row.getId()); sarItemCount.setFileType(name); @@ -610,15 +639,17 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl numFieldListLaws = new ArrayList<>(); // 属性表数字类型字段 public static List lawsInlandAttrFieldList = new ArrayList<>(); // 属性表数字类型字段 public static List lawsForeignAttrFieldList = new ArrayList<>(); // 全部政策字段属性 + public static List lawsStandAttrFieldList = new ArrayList<>(); // 全部政策字段属性 public static Map selectFieldMapLaws = new HashMap<>(); // 下拉属性字段及选项值 // 企标属性字段信息 @@ -141,12 +140,16 @@ public class InitStandAttrUtil implements ApplicationRunner { numFieldList.add(detailsEO.getAttrField()); } } else if (lawsTypeList.contains(sarType)) { - if (!SarTypeEnum.FOREIGN_LAWS.getValue().equals(sarType)) { - lawsInlandAttrFieldList.add(detailsEO); - } - if (!SarTypeEnum.INLAND_LAWS.getValue().equals(sarType)) { + if (SarTypeEnum.FOREIGN_LAWS.getValue().equals(sarType)) { lawsForeignAttrFieldList.add(detailsEO); } + if (SarTypeEnum.LAWS_STAND.getValue().equals(sarType)) { + lawsStandAttrFieldList.add(detailsEO); + } + + if (SarTypeEnum.INLAND_LAWS.getValue().equals(sarType)) { + lawsInlandAttrFieldList.add(detailsEO); + } fieldInfoBuilderLaws.append(detailsEO.getAttrField() + ","); fieldInfoNameBuilderLaws.append(detailsEO.getAttrName() + ","); queryFieldListLaws.add(detailsEO.getAttrField()); diff --git a/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java b/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java new file mode 100644 index 00000000..c5388ff0 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/utils/util/LawsStandExportUtil.java @@ -0,0 +1,176 @@ +package com.adc.da.utils.util; + +import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarStandAttrDetails.entity.SarStandAttrDetails; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: 标准导出工具 + * date: 2020/9/16 14:09 + */ +public class LawsStandExportUtil { + + private static final Logger logger = LoggerFactory.getLogger(LawsStandExportUtil.class); + + + public static Workbook exportDatas (List datas) { + Workbook workbook = new XSSFWorkbook(); + try { + StringBuilder attrBud = new StringBuilder(); + List detailsEOList = InitStandAttrUtil.lawsStandAttrFieldList; + Map attrInfoMap = new HashMap<>(); + for (SarStandAttrDetails detailsEO : detailsEOList) { + if (!InitStandAttrUtil.fileFieldListLaws.contains(detailsEO.getAttrField())) { + attrBud.append(detailsEO.getAttrName() + ","); + attrInfoMap.put(detailsEO.getAttrName(),detailsEO.getAttrField()); + } + } + String header = FieldConvertUtil.exportBaseFieldNamesLaws + "," + attrBud.toString(); + //创建工作表对象 + Sheet sheet = workbook.createSheet(); + // 创建头部 + createHeader(workbook,sheet,header); + // 创建数据 + createDatas(workbook,sheet,datas,header,attrInfoMap); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + return workbook; + } + + public static void createHeader(Workbook workbook,Sheet sheet,String header){ + CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + Row rowHeader = sheet.createRow(0);//开始创建标题行 + if (StringUtils.isNotBlank(header)) { + String[] headerArr = header.split(","); + for (int i=0;i < headerArr.length; i++) { + rowHeader.createCell(i).setCellValue(headerArr[i]); +// rowHeader.createCell(i).setCellStyle(cellStyle); + } + } + } + + public static void createDatas(Workbook workbook,Sheet sheet,List datas, + String header,Map attrInfoMap) throws Exception{ + CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + if (datas != null && !datas.isEmpty()) { + for (int i=0;i < datas.size(); i++) { + SarLawsStandInfo sarStandardsInfoEO = datas.get(i); + Row row = sheet.createRow(i+1); + String[] headerArr = header.split(","); + int sheetNum = 0; + for (String headerName : headerArr) { + String value = getValueByName(headerName,sarStandardsInfoEO,attrInfoMap); + if (StringUtils.isBlank(value) || "null".equals(value)) { + value = ""; + } + row.createCell(sheetNum).setCellValue(value); + sheetNum++; + } + } + } + } + + // 根据表头返回相应值 + public static String getValueByName (String name,SarLawsStandInfo sarStandardsInfoEO,Map attrInfoMap) throws Exception{ + String value = ""; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Map attrValueMap = sarStandardsInfoEO.getAttrInfoMap(); + switch (name) { + case "政策分类": + value = sarStandardsInfoEO.getLawsType(); + break; + case "政策编号": + value = sarStandardsInfoEO.getLawsNumber(); + break; + case "中文名称": + value = sarStandardsInfoEO.getLawsName(); + break; + case "英文名称": + value = sarStandardsInfoEO.getLawsEnName(); + break; + case "政策文号": + value = sarStandardsInfoEO.getLawsNo(); + break; + case "发文日期": + String issueTime=""; + if (Date.class.equals(sarStandardsInfoEO.getIssueTime())) { + issueTime = sdf.format(sarStandardsInfoEO.getIssueTime()); + + }else { + issueTime=sarStandardsInfoEO.getIssueTime(); + } + value = issueTime; + break; + case "发文单位": + value = sarStandardsInfoEO.getIssueCompany(); + break; + case "征集意见周期-起始时间": + String commentCycleStart=""; + if (Date.class.equals(sarStandardsInfoEO.getCommentCycleStart().getClass())){ + commentCycleStart = sdf.format(sarStandardsInfoEO.getCommentCycleStart()); + }else { + commentCycleStart=sarStandardsInfoEO.getCommentCycleStart(); + } + value = commentCycleStart; + break; + case "征集意见周期-结束时间": + String commentCycleEnd=""; + if (Date.class.equals(sarStandardsInfoEO.getCommentCycleEnd().getClass())){ + commentCycleEnd = sdf.format(sarStandardsInfoEO.getCommentCycleEnd()); + }else { + commentCycleEnd=sarStandardsInfoEO.getCommentCycleEnd(); + } + value = commentCycleEnd; + break; + case "文本状态": + value = sarStandardsInfoEO.getStandStatusShow(); + break; + case "适用区域": + value = sarStandardsInfoEO.getLawsSyqy(); + break; + case "适用车型": + value = sarStandardsInfoEO.getLawsSycx(); + break; + case "是否纳入认证清单": + value = sarStandardsInfoEO.getIsRelateAccess() != null ? (sarStandardsInfoEO.getIsRelateAccess().equals("1")?"是":"否"): ""; + break; + case "年度": + value = sarStandardsInfoEO.getLawsYear(); + break; + case "福田转发通知文号": + value = sarStandardsInfoEO.getLawsNotisyncNum(); + break; + case "信息简报": + value = sarStandardsInfoEO.getLawsBulletin(); + break; + case "标签": + value = sarStandardsInfoEO.getLawsLabel(); + break; + case "备注": + value = sarStandardsInfoEO.getLawsRemark(); + break; + default: + String field = attrInfoMap.get(name); + if (attrValueMap != null) { + value = String.valueOf(attrValueMap.get(field)); + } + break; + } + return value; + } + +} diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml index 007ef002..0984ff19 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsAttrDetailedList/SarLawsAttrDetailedListMapper.xml @@ -159,20 +159,27 @@ left join sar_stand_items ssi on ssi.stand_id = a.id + and (a.STAND_NUMBER LIKE concat ('%',#{standName,jdbcType=VARCHAR},'%') or a.STAND_NAME LIKE concat ('%',#{standName,jdbcType=VARCHAR},'%')) - and + - ssi.FILE_TYPE = #{fileType} and + and + ssi.FILE_TYPE = #{fileType} - a.STAND_TYPE = #{standType} and + and + a.STAND_TYPE = #{standType} + + + + and + a.ID IN + + #{item} + - a.ID IN - - #{item} - UNION SELECT a.ID,a.STAND_NUMBER as standNumber,a.STAND_NAME as standName,a.STAND_EN_NAME,b.NYLX,b.SSRQ as SSRQ,b.XCXSSRQ as XCXSSRQGJ,b.ZCCSSRQ as ZCCSSRQGJ, @@ -182,21 +189,27 @@ a.ID = b.STAND_ID left join sar_stand_items ssi on ssi.stand_id = a.id + 1=1 + and (a.STAND_NUMBER LIKE concat ('%',#{standName,jdbcType=VARCHAR},'%') or a.STAND_NAME LIKE concat ('%',#{standName,jdbcType=VARCHAR},'%')) - and - ssi.FILE_TYPE = #{fileType} and + and + ssi.FILE_TYPE = #{fileType} - a.STAND_TYPE = #{standType} and + and + a.STAND_TYPE = #{standType} + + + and + a.ID IN + + #{item} + - a.ID IN - - #{item} - diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsFile/SarLawsFileMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsFile/SarLawsFileMapper.xml new file mode 100644 index 00000000..9992bbad --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsFile/SarLawsFileMapper.xml @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + modify_time, creation_time, valid_flag, use_model, att_id, laws_id, id,file_suffix,file_name,laws_file_classify, + password,creation_user,ori_att_id + + + + + where 1=1 + + + and modify_time ${modifyTimeOperator} #{modifyTime} + + + and modify_time >= #{modifyTime1} + + + and modify_time <= #{modifyTime2} + + + and creation_time ${creationTimeOperator} #{creationTime} + + + and creation_time >= #{creationTime1} + + + and creation_time <= #{creationTime2} + + + and valid_flag ${validFlagOperator} #{validFlag} + + + and use_model ${useModuleOperator} #{useModule} + + + and att_id ${attIdOperator} #{attId} + + + and res_id ${resIdOperator} #{resId} + + + and laws_id ${lawsIdOperator} #{lawsId} + + + and id ${idOperator} #{id} + + + + + + insert into SAR_LAWS_FILE + + modify_time, + creation_time, + valid_flag, + use_model, + att_id, + laws_id, + id, + file_suffix, + file_name, + laws_file_classify, + password, + creation_user, + ori_att_id, + + + #{modifyTime, jdbcType=TIMESTAMP}, + #{creationTime, jdbcType=TIMESTAMP}, + #{validFlag, jdbcType=INTEGER}, + #{useModule, jdbcType=VARCHAR}, + #{attId, jdbcType=VARCHAR}, + #{lawsId, jdbcType=VARCHAR}, + #{id, jdbcType=VARCHAR}, + #{fileSuffix, jdbcType=VARCHAR}, + #{fileName, jdbcType=VARCHAR}, + #{lawsFileClassify, jdbcType=VARCHAR}, + #{password, jdbcType=VARCHAR}, + #{creationUser, jdbcType=VARCHAR}, + #{oriAttId, jdbcType=VARCHAR}, + + + + + + update SAR_LAWS_FILE + + + ori_att_id = #{oriAttId}, + + + modify_time = #{modifyTime}, + + + creation_time = #{creationTime}, + + + valid_flag = #{validFlag}, + + + use_model = #{useModule}, + + + att_id = #{attId}, + + + laws_id = #{lawsId}, + + + where id = #{id} + + + + + + + + delete from SAR_LAWS_FILE + where id = #{value} + + + + + + + + + + + + + + + + + + + + + + + + delete from SAR_LAWS_FILE + where laws_id = #{value} + + + + + insert into SAR_LAWS_FILE + () + values + + (#{item.modifyTime, jdbcType=TIMESTAMP}, + #{item.creationTime, jdbcType=TIMESTAMP}, + #{item.validFlag, jdbcType=INTEGER}, + #{item.useModel, jdbcType=VARCHAR}, + #{item.attId, jdbcType=VARCHAR}, + #{item.lawsId, jdbcType=VARCHAR}, + #{item.id, jdbcType=VARCHAR}, + #{item.fileSuffix, jdbcType=VARCHAR}, + #{item.fileName, jdbcType=VARCHAR}, + #{item.lawsFileClassify, jdbcType=VARCHAR}, + #{item.password, jdbcType=VARCHAR}, + #{item.creationUser, jdbcType=VARCHAR}, + #{item.oriAttId, jdbcType=VARCHAR}) + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItemVal/SarLawsItemValMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItemVal/SarLawsItemValMapper.xml new file mode 100644 index 00000000..dea8be10 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItemVal/SarLawsItemValMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItems/SarLawsItemsMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItems/SarLawsItemsMapper.xml index 808c40ad..6579727b 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItems/SarLawsItemsMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsItems/SarLawsItemsMapper.xml @@ -35,6 +35,22 @@ + + + + and laws_id=#{standId} + + + + and file_type=#{fileType} + + + + and ITEMS_NAME like CONCAT('%', #{itemsName},'%') + + + + SAR_LAWS_ITEMS.modify_time, SAR_LAWS_ITEMS.creation_time, SAR_LAWS_ITEMS.creation_user, SAR_LAWS_ITEMS.valid_flag, SAR_LAWS_ITEMS.remarks, responsible_unit, energy_kind, apply_arctic, tack_time, parts, items_name, items_num, SAR_LAWS_ITEMS.laws_id,SAR_LAWS_ITEMS.id,SAR_LAWS_ITEMS.MAINPOINTS_IMPEMENTATION,SAR_LAWS_ITEMS.TERMS_CONDITIONS, @@ -264,4 +280,26 @@ and file_type = #{fileType} + + + delete from SAR_LAWS_ITEMS + where laws_id = #{standId} + + and file_type = #{fileType} + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsMenu/SarLawsMenuMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsMenu/SarLawsMenuMapper.xml new file mode 100644 index 00000000..43ca0a2c --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsMenu/SarLawsMenuMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + valid_flag, menu_id, laws_id, id + + + + + where 1=1 + + + and valid_flag ${validFlagOperator} #{validFlag} + + + and menu_id ${menuIdOperator} #{menuId} + + + and laws_id ${lawsIdOperator} #{lawsId} + + + and id ${idOperator} #{id} + + + + + + + + insert into SAR_LAWS_MENU() + values (#{validFlag, jdbcType=INTEGER}, #{menuId, jdbcType=VARCHAR}, #{lawsId, jdbcType=VARCHAR}, #{id, jdbcType=VARCHAR}) + + + + + + insert into SAR_LAWS_MENU + + valid_flag, + menu_id, + laws_id, + id, + + + #{validFlag, jdbcType=INTEGER}, + #{menuId, jdbcType=VARCHAR}, + #{lawsId, jdbcType=VARCHAR}, + #{id, jdbcType=VARCHAR}, + + + + + + update SAR_LAWS_MENU + set valid_flag = #{validFlag}, + menu_id = #{menuId}, + laws_id = #{lawsId} + where id = #{id} + + + + + update SAR_LAWS_MENU + + + valid_flag = #{validFlag}, + + + menu_id = #{menuId}, + + + laws_id = #{lawsId}, + + + where id = #{id} + + + + update SAR_LAWS_MENU + set menu_id = #{newMenuid} + where menu_id = #{oldMenuid} + + + + + + + + delete from SAR_LAWS_MENU + where id = #{value} + + + + + + + + + + + + + + + + + + delete from SAR_LAWS_MENU + where laws_id = #{value} + + + + + + + update SAR_LAWS_MENU + + + menu_id = #{menuId}, + + + where laws_id = #{lawsId} + and MENU_ID in + + #{item} + + + + + delete from SAR_LAWS_MENU + where laws_id = #{lawsId} + and MENU_ID in + + #{item} + + + + + delete from SAR_LAWS_MENU + where laws_id = #{lawsId, jdbcType=VARCHAR} and MENU_ID = #{menuId, jdbcType=VARCHAR} + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml new file mode 100644 index 00000000..cd4b9926 --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsStandInfo/SarLawsStandInfoMapper.xml @@ -0,0 +1,299 @@ + + + + + + + + + + + + + where 1=1 and SAR_LAWS_STAND_INFO.valid_flag=0 + + + and SAR_LAWS_STAND_INFO.id ${idOperator} #{id} + + + + and SAR_LAWS_STAND_INFO.LAWS_TYPE like concat(concat('%',#{lawsType}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_NUMBER like concat(concat('%',#{lawsNumber}),'%') + + + and LAWS_NAME like concat(concat('%',#{lawsName}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_EN_NAME like concat(concat('%',#{lawsEnName}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_NO like concat(concat('%',#{lawsNo}),'%') + + + and DATE_FORMAT(SAR_LAWS_STAND_INFO.ISSUE_TIME,'%Y-%m-%d') = #{issueTime} + + + and SAR_LAWS_STAND_INFO.ISSUE_COMPANY like concat(concat('%',#{issueCompany}),'%') + + + and DATE_FORMAT(SAR_LAWS_STAND_INFO.COMMENT_CYCLE_START ,'%Y-%m-%d') = DATE_FORMAT(#{commentCycleStart},'%Y-%m-%d') + + + and DATE_FORMAT(SAR_LAWS_STAND_INFO.COMMENT_CYCLE_END ,'%Y-%m-%d') = DATE_FORMAT(#{commentCycleEnd},'%Y-%m-%d') + + + and SAR_LAWS_STAND_INFO.LAWS_TYPE = #{lawsTextState} + + + and FIND_IN_SET(#{lawsSyqy},SAR_LAWS_STAND_INFO.LAWS_SYQY) + + + and FIND_IN_SET(#{lawsSycx},SAR_LAWS_STAND_INFO.LAWS_SYCX) + + + and SAR_LAWS_STAND_INFO.IS_RELATE_ACCESS = #{isRelateAccess} + + + and SAR_LAWS_STAND_INFO.LAWS_YEAR like concat(concat('%',#{lawsYear}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_NOTISYNC_NUM like concat(concat('%',#{lawsNotisyncNum}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_BULLETIN like concat(concat('%',#{lawsBulletin}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_LABEL like concat(concat('%',#{lawsLabel}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_REMARK like concat(concat('%',#{lawsRemark}),'%') + + + + and SAR_LAWS_STAND_INFO.country = #{country} + + + + + + left join SAR_LAWS_MENU ON SAR_LAWS_STAND_INFO.id = SAR_LAWS_MENU.laws_id + where 1=1 and SAR_LAWS_STAND_INFO.valid_flag=0 + + + + and SAR_LAWS_STAND_INFO.LAWS_TYPE like concat(concat('%',#{lawsType}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_NUMBER like concat(concat('%',#{lawsNumber}),'%') + + + and (LAWS_NAME like concat(concat('%',#{numberName}),'%') + or SAR_LAWS_STAND_INFO.LAWS_EN_NAME like concat(concat('%',#{numberName}),'%')) + + + and LAWS_NAME like concat(concat('%',#{lawsName}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_EN_NAME like concat(concat('%',#{lawsEnName}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_NO like concat(concat('%',#{lawsNo}),'%') + + + and DATE_FORMAT(SAR_LAWS_STAND_INFO.ISSUE_TIME,'%Y-%m-%d') = #{issueTime} + + + and SAR_LAWS_STAND_INFO.ISSUE_COMPANY like concat(concat('%',#{issueCompany}),'%') + + + and DATE_FORMAT(SAR_LAWS_STAND_INFO.COMMENT_CYCLE_START ,'%Y-%m-%d') = DATE_FORMAT(#{commentCycleStart},'%Y-%m-%d') + + + and DATE_FORMAT(SAR_LAWS_STAND_INFO.COMMENT_CYCLE_END ,'%Y-%m-%d') = DATE_FORMAT(#{commentCycleEnd},'%Y-%m-%d') + + + and SAR_LAWS_STAND_INFO.LAWS_TEXT_STATE = #{lawsTextState} + + + and FIND_IN_SET(#{lawsSyqy},SAR_LAWS_STAND_INFO.LAWS_SYQY) + + + and FIND_IN_SET(#{lawsSycx},SAR_LAWS_STAND_INFO.LAWS_SYCX) + + + and SAR_LAWS_STAND_INFO.IS_RELATE_ACCESS = #{isRelateAccess} + + + and SAR_LAWS_STAND_INFO.LAWS_YEAR like concat(concat('%',#{lawsYear}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_NOTISYNC_NUM like concat(concat('%',#{lawsNotisyncNum}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_BULLETIN like concat(concat('%',#{lawsBulletin}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_LABEL like concat(concat('%',#{lawsLabel}),'%') + + + and SAR_LAWS_STAND_INFO.LAWS_REMARK like concat(concat('%',#{lawsRemark}),'%') + + + + and SAR_LAWS_STAND_INFO.country = #{country} + + + + and SAR_LAWS_MENU.MENU_ID in + + #{item} + + + + + + and SAR_LAWS_MENU.MENU_ID in + + #{item} + + + + + and SAR_LAWS_STAND_INFO.id in + + #{item} + + + + + + and SAR_LAWS_STAND_INFO.id in ( + select COLLECT_RES_ID from TS_PERSON_COLLECT where TS_PERSON_COLLECT.VALID_FLAG=0 + and (collect_type='INLAND_STAND' or collect_type='FOREIGN_STAND') + and TS_PERSON_COLLECT.user_id=#{userId} + ) + + + + + LEFT JOIN TS_DICTYPE dicstandTextStatus ON ( + dicstandTextStatus.dic_type_code = a.LAWS_TEXT_STATE + AND dicstandTextStatus.dic_id IS NOT NULL + AND dicstandTextStatus.valid_flag = 0 + ) + left join SAR_LAWS_ATTR_INFO on (SAR_LAWS_ATTR_INFO.LAWS_ID = a.id and SAR_LAWS_ATTR_INFO.valid_flag=0) + where 1=1 + + + and (${advanceSearchStr}) + + + + + + DISTINCT SAR_LAWS_STAND_INFO.ID, + SAR_LAWS_STAND_INFO.LAWS_TYPE, + SAR_LAWS_STAND_INFO.LAWS_NUMBER, + SAR_LAWS_STAND_INFO.LAWS_NAME, + SAR_LAWS_STAND_INFO.LAWS_EN_NAME, + SAR_LAWS_STAND_INFO.LAWS_NO, + SAR_LAWS_STAND_INFO.ISSUE_TIME, + SAR_LAWS_STAND_INFO.ISSUE_COMPANY, + SAR_LAWS_STAND_INFO.COMMENT_CYCLE_START, + SAR_LAWS_STAND_INFO.COMMENT_CYCLE_END, + SAR_LAWS_STAND_INFO.LAWS_TEXT_STATE, + SAR_LAWS_STAND_INFO.LAWS_SYQY, + SAR_LAWS_STAND_INFO.LAWS_SYCX, + SAR_LAWS_STAND_INFO.IS_RELATE_ACCESS, + SAR_LAWS_STAND_INFO.LAWS_YEAR, + SAR_LAWS_STAND_INFO.LAWS_NOTISYNC_NUM, + SAR_LAWS_STAND_INFO.LAWS_BULLETIN, + SAR_LAWS_STAND_INFO.LAWS_LABEL, + SAR_LAWS_STAND_INFO.LAWS_REMARK, + SAR_LAWS_STAND_INFO.COUNTRY, + SAR_LAWS_STAND_INFO.MODIFY_TIME + + + + + + + + + + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsVal/SarLawsValMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsVal/SarLawsValMapper.xml new file mode 100644 index 00000000..ee57f3ee --- /dev/null +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarLawsVal/SarLawsValMapper.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + modify_time, creation_time, valid_flag, property_val, property_type, laws_id, id + + + + + where 1=1 + + + and modify_time ${modifyTimeOperator} #{modifyTime} + + + and modify_time >= #{modifyTime1} + + + and modify_time <= #{modifyTime2} + + + and creation_time ${creationTimeOperator} #{creationTime} + + + and creation_time >= #{creationTime1} + + + and creation_time <= #{creationTime2} + + + and valid_flag ${validFlagOperator} #{validFlag} + + + and property_val ${propertyValOperator} #{propertyVal} + + + and property_type ${propertyTypeOperator} #{propertyType} + + + and laws_id ${lawsIdOperator} #{lawsId} + + + and id ${idOperator} #{id} + + + + + + + insert into SAR_LAWS_VAL() + values (#{modifyTime, jdbcType=TIMESTAMP}, #{creationTime, jdbcType=TIMESTAMP}, #{validFlag, jdbcType=INTEGER}, #{propertyVal, jdbcType=VARCHAR}, #{propertyType, jdbcType=VARCHAR}, #{lawsId, jdbcType=VARCHAR}, #{id, jdbcType=VARCHAR}) + + + + + insert into SAR_LAWS_VAL + + modify_time, + creation_time, + valid_flag, + property_val, + property_type, + laws_id, + id, + + + #{modifyTime, jdbcType=TIMESTAMP}, + #{creationTime, jdbcType=TIMESTAMP}, + #{validFlag, jdbcType=INTEGER}, + #{propertyVal, jdbcType=VARCHAR}, + #{propertyType, jdbcType=VARCHAR}, + #{lawsId, jdbcType=VARCHAR}, + #{id, jdbcType=VARCHAR}, + + + + + + + + + + + + + delete from SAR_LAWS_VAL + where laws_id = #{lawsId} + + + + insert into SAR_LAWS_VAL + () + values + + (#{item.modifyTime, jdbcType=TIMESTAMP}, + #{item.creationTime, jdbcType=TIMESTAMP}, + #{item.validFlag, jdbcType=INTEGER}, + #{item.propertyVal, jdbcType=VARCHAR}, + #{item.propertyType, jdbcType=VARCHAR}, + #{item.lawsId, jdbcType=VARCHAR}, + #{item.id, jdbcType=VARCHAR}) + + + diff --git a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml index b981614a..97878243 100644 --- a/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml +++ b/adc-da-slrs/src/main/resources/mybatis/mapper/sarStandardsInfo/SarStandardsInfoMapper.xml @@ -687,17 +687,6 @@ and TS_PERSON_COLLECT.user_id=#{userId} ) - - - and SAR_STAND_ATTR_INFO.GXHBQ is not null - - - and SAR_STAND_ATTR_INFO.GXHBQ like concat(concat('%',#{labelMenuId}),'%') - - - - and SAR_STAND_ATTR_INFO.CLLX = #{applyArctic} - @@ -710,6 +699,16 @@ ) left join SAR_STAND_ATTR_INFO on (SAR_STAND_ATTR_INFO.stand_id = a.id and SAR_STAND_ATTR_INFO.valid_flag=0) where 1=1 + + and SAR_STAND_ATTR_INFO.GXHBQ is not null + + + and SAR_STAND_ATTR_INFO.GXHBQ like concat(concat('%',#{labelMenuId}),'%') + + + + and SAR_STAND_ATTR_INFO.CLLX = #{applyArctic} + and (${advanceSearchStr}) @@ -765,7 +764,8 @@ SAR_STANDARDS_INFO.valid_flag, SAR_STANDARDS_INFO.creation_time, SAR_STANDARDS_INFO.modify_time, - SAR_STANDARDS_INFO.STAND_SYSTEM + SAR_STANDARDS_INFO.STAND_SYSTEM, + SAR_STANDARDS_INFO.IS_RELATE_ACCESS from SAR_STANDARDS_INFO ) tmp_tb limit ${pager.startIndex-1},${pageSize}) a diff --git a/adc-da-sys/src/main/java/com/adc/da/person/controller/PersonCollectEOController.java b/adc-da-sys/src/main/java/com/adc/da/person/controller/PersonCollectEOController.java index 5ffdf75d..2e91e397 100644 --- a/adc-da-sys/src/main/java/com/adc/da/person/controller/PersonCollectEOController.java +++ b/adc-da-sys/src/main/java/com/adc/da/person/controller/PersonCollectEOController.java @@ -43,10 +43,10 @@ public class PersonCollectEOController extends BaseController { **/ @ApiOperation(value = "|PersonCollectEO|分页查询") @GetMapping("/page") - public ResponseMessage> page(Integer pageNo, Integer pageSize, String collectTitle, String userId) throws Exception { + public ResponseMessage> page(Integer pageNo, Integer pageSize, String collectTitle, String modeType,String userId) throws Exception { - return personCollectEOService.queryCollectByWrapper(pageNo, pageSize,collectTitle,userId); + return personCollectEOService.queryCollectByWrapper(pageNo, pageSize,collectTitle,modeType,userId); } diff --git a/adc-da-sys/src/main/java/com/adc/da/person/service/IPersonCollectEOService.java b/adc-da-sys/src/main/java/com/adc/da/person/service/IPersonCollectEOService.java index 6fb76e39..de22ce6c 100644 --- a/adc-da-sys/src/main/java/com/adc/da/person/service/IPersonCollectEOService.java +++ b/adc-da-sys/src/main/java/com/adc/da/person/service/IPersonCollectEOService.java @@ -27,6 +27,6 @@ public interface IPersonCollectEOService extends IService { int updateByPrimaryKeySelective(TsPersonCollect tsPersonCollect) throws Exception; - public ResponseMessage> queryCollectByWrapper(Integer pageNo, Integer pageSize, String modeType, String collectTitle); + public ResponseMessage> queryCollectByWrapper(Integer pageNo, Integer pageSize, String collectTitle,String modeType, String userId); } diff --git a/adc-da-sys/src/main/java/com/adc/da/person/service/impl/PersonCollectEOServiceImpl.java b/adc-da-sys/src/main/java/com/adc/da/person/service/impl/PersonCollectEOServiceImpl.java index a3cff03e..9dd19ed2 100644 --- a/adc-da-sys/src/main/java/com/adc/da/person/service/impl/PersonCollectEOServiceImpl.java +++ b/adc-da-sys/src/main/java/com/adc/da/person/service/impl/PersonCollectEOServiceImpl.java @@ -129,13 +129,15 @@ public class PersonCollectEOServiceImpl extends ServiceImpl> queryCollectByWrapper(Integer pageNo, Integer pageSize, String collectTitle, String userId) { + public ResponseMessage> queryCollectByWrapper(Integer pageNo, Integer pageSize, String collectTitle, String modeType,String userId) { BasePage basePage = new BasePage(); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("user_id",userId); if (collectTitle != null && !collectTitle.equals("")){ wrapper.like("collect_title",collectTitle); - + } + if (modeType != null && !modeType.equals("")){ + wrapper.eq("collect_type",modeType); } if (pageNo != null) {