feat: There is no way the,Laws

This commit is contained in:
super_liu
2021-11-01 17:59:24 +08:00
parent f54c8ea63b
commit cab90f06ee
16 changed files with 1315 additions and 45 deletions
@@ -5,6 +5,7 @@ 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;
@@ -145,6 +146,17 @@ public class SarLawsStandInfo extends BaseEntity {
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;
@@ -240,4 +252,10 @@ public class SarLawsStandInfo extends BaseEntity {
@TableField(exist = false)
private List<DicTypeEO> dicTypeList = new ArrayList(); // 记录标准涉及到的所有数据字典数据
@TableField(exist = false)
private List<SarStandItems> itemsList = new ArrayList<>();
@ApiModelProperty(value = "分解单条款内容")
@TableField(exist = false)
private Map<String,String> mapItems = new TreeMap<>();
}
@@ -5,6 +5,7 @@ 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;
@@ -19,6 +20,10 @@ import java.util.List;
*/
public interface ISarLawsStandInfoService extends IService<SarLawsStandInfo> {
void createSarStandardsInfo(SarLawsStandInfo sarLawsStandInfo) throws Exception;
void attrInfoDetails (SarLawsStandInfo row) throws Exception;
List<SarLawsStandInfo> selectStandardsByStandNumber(String replaceStandNum);
ResponseMessage<SarLawsStandInfo> deleteSarLawsStandInfo(SarLawsStandInfoPage page) throws Exception;
@@ -2,6 +2,7 @@ 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;
@@ -30,6 +31,7 @@ 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;
@@ -41,6 +43,7 @@ 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;
@@ -611,10 +614,13 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl<SarLawsStandInfoDao
String fileIds = "";
for (Map.Entry<String,String> entry : sarStandAttrMap.entrySet()) {
String attrKey = entry.getKey();
String attrValue = entry.getValue();
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);
@@ -807,6 +813,185 @@ public class SarLawsStandInfoServiceImpl extends ServiceImpl<SarLawsStandInfoDao
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<SarLawsAttrInfo> standAttrInfos = sarLawsAttrInfoDao.selectList(new QueryWrapper<SarLawsAttrInfo>().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<SarItemVO> sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo);
* .collect(Collectors.toMap(SarItemVO::getItemsNum, SarItemVO::getItemsName));
*/
List<SarLawsItems> sarItemVOS = sarLawsItemsDao.querySarItemAndInterpretation(pageInfo);
if(!sarItemVOS.isEmpty()){
Map<String,String> 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<SarLawsStandInfo> 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<SarLawsStandInfo> 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<SarLawsStandInfo> 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);
}
}
}
}
}
}
}
}