add:政策资料详情
This commit is contained in:
+14
-2
@@ -122,17 +122,23 @@ public class SarLawsInformation extends BasePage implements Serializable {
|
|||||||
private String informationFileName;
|
private String informationFileName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可查看者,若设置为空则仅有上传人和审批人可以查看,若设置人员后,仅有可查看者可查看文件信息。
|
* 可查看者,若设置为空则所有用户均可查看,若设置人员后,仅有可查看者可以查看文件信息。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "VIEWABLE_BY")
|
@TableField(value = "VIEWABLE_BY")
|
||||||
private String viewableBy;
|
private String viewableBy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可下载者,若设置为空则所有用户均可下载,若设置人员后,仅有可下载者可以下载文件信息。
|
* 可下载者,若设置为空则仅有上传人和审批人可以查看,若设置人员后,仅有可下载者可下载文件信息。
|
||||||
*/
|
*/
|
||||||
@TableField(value = "DOWNLOADABLE_BY")
|
@TableField(value = "DOWNLOADABLE_BY")
|
||||||
private String downloadableBy;
|
private String downloadableBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人和审批人
|
||||||
|
*/
|
||||||
|
@TableField
|
||||||
|
private String createAndApproveBy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 树节点ID
|
* 树节点ID
|
||||||
*/
|
*/
|
||||||
@@ -179,6 +185,12 @@ public class SarLawsInformation extends BasePage implements Serializable {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String sortMode = "asc";
|
private String sortMode = "asc";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收藏ID
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String collectId;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
}
|
}
|
||||||
+141
-18
@@ -2,9 +2,15 @@ package com.adc.da.slrs.sarLawsInformation.service.impl;
|
|||||||
|
|
||||||
import com.adc.da.att.entity.AttFileEO;
|
import com.adc.da.att.entity.AttFileEO;
|
||||||
import com.adc.da.att.service.IAttFileEOService;
|
import com.adc.da.att.service.IAttFileEOService;
|
||||||
|
import com.adc.da.person.entity.TsPersonCollect;
|
||||||
|
import com.adc.da.person.service.IPersonCollectEOService;
|
||||||
import com.adc.da.slrs.sarLawsInformationCenterTree.entity.SarLawsInformationCenterTree;
|
import com.adc.da.slrs.sarLawsInformationCenterTree.entity.SarLawsInformationCenterTree;
|
||||||
import com.adc.da.slrs.sarLawsInformationCenterTree.service.SarLawsInformationCenterTreeService;
|
import com.adc.da.slrs.sarLawsInformationCenterTree.service.SarLawsInformationCenterTreeService;
|
||||||
|
import com.adc.da.slrs.sarUpdLog.entity.SarUpdLog;
|
||||||
|
import com.adc.da.slrs.sarUpdLog.service.ISarUpdLogService;
|
||||||
import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService;
|
import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService;
|
||||||
|
import com.adc.da.util.LoginUserUtil;
|
||||||
|
import com.adc.da.util.UUIDUtils;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
@@ -15,9 +21,10 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.lang.reflect.Field;
|
||||||
import java.util.Date;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.List;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author tjzdw
|
* @author tjzdw
|
||||||
@@ -34,23 +41,16 @@ public class SarLawsInformationServiceImpl extends ServiceImpl<SarLawsInformatio
|
|||||||
private IAttFileEOService attFileEOService;
|
private IAttFileEOService attFileEOService;
|
||||||
@Resource
|
@Resource
|
||||||
private ITsDicTypeService dicTypeService;
|
private ITsDicTypeService dicTypeService;
|
||||||
|
@Resource
|
||||||
|
private IPersonCollectEOService collectEOService;
|
||||||
|
@Resource
|
||||||
|
private ISarUpdLogService updLogService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SarLawsInformation getLawsInformationInfo(String id) {
|
public SarLawsInformation getLawsInformationInfo(String id) {
|
||||||
SarLawsInformation sarLawsInformation = this.baseMapper.selectById(id);
|
SarLawsInformation sarLawsInformation = this.baseMapper.selectById(id);
|
||||||
// 根据类别Id查询类别名称
|
// 将字典编号变更为字典值
|
||||||
if (StringUtils.isNotBlank(sarLawsInformation.getFirstType())) {
|
convertCodeToName(sarLawsInformation);
|
||||||
sarLawsInformation.setFirstTypeName(dicTypeService.getDicTypeNameByDicCode(sarLawsInformation.getFirstType()));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(sarLawsInformation.getSecondType())) {
|
|
||||||
sarLawsInformation.setSecondTypeName(dicTypeService.getDicTypeNameByDicCode(sarLawsInformation.getSecondType()));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(sarLawsInformation.getThirdType())) {
|
|
||||||
sarLawsInformation.setThirdTypeName(dicTypeService.getDicTypeNameByDicCode(sarLawsInformation.getThirdType()));
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(sarLawsInformation.getFourthType())) {
|
|
||||||
sarLawsInformation.setFourthTypeName(dicTypeService.getDicTypeNameByDicCode(sarLawsInformation.getFourthType()));
|
|
||||||
}
|
|
||||||
// 查询资料文件信息
|
// 查询资料文件信息
|
||||||
if (StringUtils.isNotBlank(sarLawsInformation.getInformationFile())) {
|
if (StringUtils.isNotBlank(sarLawsInformation.getInformationFile())) {
|
||||||
String[] split = sarLawsInformation.getInformationFile().split(",");
|
String[] split = sarLawsInformation.getInformationFile().split(",");
|
||||||
@@ -66,6 +66,14 @@ public class SarLawsInformationServiceImpl extends ServiceImpl<SarLawsInformatio
|
|||||||
SarLawsInformationCenterTree treeNode = treeService.getById(sarLawsInformation.getTreeNodeId());
|
SarLawsInformationCenterTree treeNode = treeService.getById(sarLawsInformation.getTreeNodeId());
|
||||||
sarLawsInformation.setTreeNodeName(treeNode.getName());
|
sarLawsInformation.setTreeNodeName(treeNode.getName());
|
||||||
}
|
}
|
||||||
|
// 查询是否被收藏
|
||||||
|
LambdaQueryWrapper<TsPersonCollect> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(TsPersonCollect::getCollectResId, sarLawsInformation.getId());
|
||||||
|
wrapper.eq(TsPersonCollect::getValidFlag, 0);
|
||||||
|
List<TsPersonCollect> list = collectEOService.list();
|
||||||
|
if (list.size() > 0) {
|
||||||
|
sarLawsInformation.setCollectId(list.get(0).getId());
|
||||||
|
}
|
||||||
return sarLawsInformation;
|
return sarLawsInformation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +89,12 @@ public class SarLawsInformationServiceImpl extends ServiceImpl<SarLawsInformatio
|
|||||||
}
|
}
|
||||||
Integer rowCount = this.baseMapper.queryByPageCount(page);
|
Integer rowCount = this.baseMapper.queryByPageCount(page);
|
||||||
page.getPager().setRowCount(rowCount);
|
page.getPager().setRowCount(rowCount);
|
||||||
return this.baseMapper.queryByPage(page);
|
// 将字典编号变更为字典值
|
||||||
|
List<SarLawsInformation> sarLawsInformationList = this.baseMapper.queryByPage(page);
|
||||||
|
for (SarLawsInformation sarLawsInformation : sarLawsInformationList) {
|
||||||
|
convertCodeToName(sarLawsInformation);
|
||||||
|
}
|
||||||
|
return sarLawsInformationList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -114,10 +127,120 @@ public class SarLawsInformationServiceImpl extends ServiceImpl<SarLawsInformatio
|
|||||||
if (StringUtils.isBlank(lawsInformation.getId())) {
|
if (StringUtils.isBlank(lawsInformation.getId())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
SarLawsInformation oldLawsInformation = getLawsInformationInfo(lawsInformation.getId());
|
||||||
lawsInformation.setModifyTime(new Date());
|
lawsInformation.setModifyTime(new Date());
|
||||||
int update = this.baseMapper.updateById(lawsInformation);
|
// 比较修改前后的不同
|
||||||
|
List<String> compareResult = compareSarLawsInformation(oldLawsInformation, lawsInformation);
|
||||||
|
if (compareResult.size() > 0) {
|
||||||
|
int update = this.baseMapper.updateById(lawsInformation);
|
||||||
|
// 添加修改记录
|
||||||
|
SarUpdLog sarUpdLogEO = new SarUpdLog();
|
||||||
|
sarUpdLogEO.setId(UUIDUtils.randomUUID20());
|
||||||
|
sarUpdLogEO.setSarId(oldLawsInformation.getId());
|
||||||
|
sarUpdLogEO.setSarType("LAWS_INFORMATION");
|
||||||
|
sarUpdLogEO.setCreationTime(new Date());
|
||||||
|
sarUpdLogEO.setCreationUser(LoginUserUtil.getUserId());
|
||||||
|
sarUpdLogEO.setContent(oldLawsInformation.getName() + "," + String.join(",",compareResult));
|
||||||
|
updLogService.save(sarUpdLogEO);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void convertCodeToName(SarLawsInformation sarLawsInformation) {
|
||||||
|
List<String> firstTypeList = new ArrayList<>();
|
||||||
|
for (String type : sarLawsInformation.getFirstType().split(",")) {
|
||||||
|
if (StringUtils.isNotBlank(type)) {
|
||||||
|
firstTypeList.add(dicTypeService.getDicTypeNameByDicCode(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sarLawsInformation.setFirstTypeName(String.join(",",firstTypeList));
|
||||||
|
List<String> secondTypeList = new ArrayList<>();
|
||||||
|
for (String type : sarLawsInformation.getSecondType().split(",")) {
|
||||||
|
if (StringUtils.isNotBlank(type)) {
|
||||||
|
secondTypeList.add(dicTypeService.getDicTypeNameByDicCode(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sarLawsInformation.setSecondTypeName(String.join(",",secondTypeList));
|
||||||
|
List<String> thirdTypeList = new ArrayList<>();
|
||||||
|
for (String type : sarLawsInformation.getThirdType().split(",")) {
|
||||||
|
if (StringUtils.isNotBlank(type)) {
|
||||||
|
thirdTypeList.add(dicTypeService.getDicTypeNameByDicCode(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sarLawsInformation.setThirdTypeName(String.join(",",thirdTypeList));
|
||||||
|
List<String> fourthTypeList = new ArrayList<>();
|
||||||
|
for (String type : sarLawsInformation.getFourthType().split(",")) {
|
||||||
|
if (StringUtils.isNotBlank(type)) {
|
||||||
|
fourthTypeList.add(dicTypeService.getDicTypeNameByDicCode(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sarLawsInformation.setFirstTypeName(String.join(",",fourthTypeList));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 比较两个SarLawsInformation 对象
|
||||||
|
* @param oldInfo 数据库中存储的对象
|
||||||
|
* @param newInfo 更新后的对象
|
||||||
|
* @return 差异
|
||||||
|
*/
|
||||||
|
public List<String> compareSarLawsInformation(SarLawsInformation oldInfo, SarLawsInformation newInfo) {
|
||||||
|
List<String> changes = new ArrayList<>();
|
||||||
|
// 不需要比较的字段
|
||||||
|
String[] ignoreFields = {"id","firstTypeName","secondTypeName","thirdTypeName","fourthTypeName","uploadTime",
|
||||||
|
"informationFileName","createAndApproveBy","treeNodeId","treeNodeName","validFlag","createTime",
|
||||||
|
"modifyTime","sortField","sortMode","collectId","serialVersionUID"};
|
||||||
|
List<String> ignoreFieldList = Arrays.asList(ignoreFields);
|
||||||
|
// 获取SarLawsInformation类的所有字段
|
||||||
|
Field[] fields = SarLawsInformation.class.getDeclaredFields();
|
||||||
|
for (Field field : fields) {
|
||||||
|
if (!ignoreFieldList.contains(field.getName())) {
|
||||||
|
try {
|
||||||
|
field.setAccessible(true);
|
||||||
|
String oldValue = String.valueOf(field.get(oldInfo));
|
||||||
|
String newValue = String.valueOf(field.get(newInfo));
|
||||||
|
if (!Objects.equals(oldValue, newValue)) {
|
||||||
|
if ("firstType".equals(field.getName()) || "secondType".equals(field.getName()) || "thirdType".equals(field.getName()) ||
|
||||||
|
"fourthType".equals(field.getName())) {
|
||||||
|
List<String> typeNameList = new ArrayList<>();
|
||||||
|
if (StringUtils.isNotBlank(newValue)) {
|
||||||
|
for (String type : newValue.split(",")) {
|
||||||
|
if (StringUtils.isNotBlank(type)) {
|
||||||
|
typeNameList.add(dicTypeService.getDicTypeNameByDicCode(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取资料类型名称
|
||||||
|
String fieldName = field.getName().substring(0, 1).toUpperCase() + field.getName().substring(1);
|
||||||
|
Method method = SarLawsInformation.class.getMethod("get" + fieldName + "Name");
|
||||||
|
Object oldTypeName = method.invoke(oldInfo);
|
||||||
|
changes.add("\"" + field.getName() + "\"由\"" + oldTypeName + "\"\"改为\"\"" + String.join(",",typeNameList) + "\"");
|
||||||
|
} else if ("informationFile".equals(field.getName())) {
|
||||||
|
List<String> fileNameList = new ArrayList<>();
|
||||||
|
if (StringUtils.isNotBlank(newValue)) {
|
||||||
|
String[] split = newValue.split(",");
|
||||||
|
for (String attId : split) {
|
||||||
|
AttFileEO fileInfo = attFileEOService.getFileInfo(attId);
|
||||||
|
fileNameList.add(fileInfo.getOldFileName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取资料类型名称
|
||||||
|
String fieldName = field.getName().substring(0, 1).toUpperCase() + field.getName().substring(1);
|
||||||
|
Method method = SarLawsInformation.class.getMethod("get" + fieldName + "Name");
|
||||||
|
Object oldTypeName = method.invoke(oldInfo);
|
||||||
|
changes.add(field.getName() + "由\"" + oldTypeName + "\"\"改为\"\"" + String.join(",",fileNameList) + "\"");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
changes.add("\"" + field.getName() + "\"由\"" + oldValue + "\"\"改为\"\"" + newValue + "\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
|
||||||
|
// 处理异常
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return changes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-6
@@ -31,13 +31,9 @@
|
|||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
ID,
|
ID,
|
||||||
FIRST_TYPE,
|
FIRST_TYPE,
|
||||||
(select DIC_TYPE_NAME from ts_dictype where DIC_ID = (SELECT ID FROM `ts_dictionary` where DICTIONARY_CODE = "firstMaterialType") and DIC_TYPE_CODE = FIRST_TYPE) firstTypeName,
|
|
||||||
SECOND_TYPE,
|
SECOND_TYPE,
|
||||||
(select DIC_TYPE_NAME from ts_dictype where DIC_ID = (SELECT ID FROM `ts_dictionary` where DICTIONARY_CODE = "secondMaterialType") and DIC_TYPE_CODE = SECOND_TYPE) secondTypeName,
|
|
||||||
THIRD_TYPE,
|
THIRD_TYPE,
|
||||||
(select DIC_TYPE_NAME from ts_dictype where DIC_ID = (SELECT ID FROM `ts_dictionary` where DICTIONARY_CODE = "thirdMaterialType") and DIC_TYPE_CODE = THIRD_TYPE) thirdTypeName,
|
|
||||||
FOURTH_TYPE,
|
FOURTH_TYPE,
|
||||||
(select DIC_TYPE_NAME from ts_dictype where DIC_ID = (SELECT ID FROM `ts_dictionary` where DICTIONARY_CODE = "fourthMaterialType") and DIC_TYPE_CODE = FOURTH_TYPE) fourthTypeName,
|
|
||||||
`NAME`,
|
`NAME`,
|
||||||
DEPARTMENT,AUTHOR,UPLOAD_TIME,
|
DEPARTMENT,AUTHOR,UPLOAD_TIME,
|
||||||
`DESCRIPTION`,INFORMATION_FILE,VIEWABLE_BY,
|
`DESCRIPTION`,INFORMATION_FILE,VIEWABLE_BY,
|
||||||
@@ -46,10 +42,10 @@
|
|||||||
</sql>
|
</sql>
|
||||||
<sql id="Base_Where_Clause">
|
<sql id="Base_Where_Clause">
|
||||||
<if test="firstType != null and firstType != ''">
|
<if test="firstType != null and firstType != ''">
|
||||||
and FIRST_TYPE = #{firstType}
|
and FIRST_TYPE like concat('%',#{firstType},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="secondType != null and secondType != ''">
|
<if test="secondType != null and secondType != ''">
|
||||||
and SECOND_TYPE = #{secondType}
|
and SECOND_TYPE like concat('%',#{secondType},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="name != null and name != ''">
|
<if test="name != null and name != ''">
|
||||||
and `NAME` like concat('%',#{name},'%')
|
and `NAME` like concat('%',#{name},'%')
|
||||||
|
|||||||
Reference in New Issue
Block a user