|
@@ -3,36 +3,42 @@ package org.springblade.business.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
-
|
|
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
import org.springblade.archive.entity.ArchivesAuto;
|
|
import org.springblade.archive.entity.ArchivesAuto;
|
|
import org.springblade.archive.feign.ArchiveAutoClient;
|
|
import org.springblade.archive.feign.ArchiveAutoClient;
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.entity.MetadataClassification;
|
|
import org.springblade.business.entity.MetadataClassification;
|
|
|
|
+import org.springblade.business.entity.Task;
|
|
|
|
+import org.springblade.business.entity.TaskParallel;
|
|
import org.springblade.business.mapper.MetadataClassificationMapper;
|
|
import org.springblade.business.mapper.MetadataClassificationMapper;
|
|
import org.springblade.business.service.IArchiveFileService;
|
|
import org.springblade.business.service.IArchiveFileService;
|
|
import org.springblade.business.service.IMetadataClassificationService;
|
|
import org.springblade.business.service.IMetadataClassificationService;
|
|
-
|
|
|
|
|
|
+import org.springblade.business.service.ITaskParallelService;
|
|
|
|
+import org.springblade.business.service.ITaskService;
|
|
import org.springblade.business.vo.MetadataClassificationVO;
|
|
import org.springblade.business.vo.MetadataClassificationVO;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
import org.springblade.core.secure.BladeUser;
|
|
import org.springblade.core.secure.BladeUser;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
|
+import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.constant.BladeConstant;
|
|
import org.springblade.core.tool.constant.BladeConstant;
|
|
-import org.springblade.core.tool.utils.BeanUtil;
|
|
|
|
-import org.springblade.core.tool.utils.DateUtil;
|
|
|
|
-import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
|
|
|
+import org.springblade.core.tool.utils.*;
|
|
import org.springblade.manager.entity.ArchiveTreeContract;
|
|
import org.springblade.manager.entity.ArchiveTreeContract;
|
|
import org.springblade.manager.entity.ContractInfo;
|
|
import org.springblade.manager.entity.ContractInfo;
|
|
|
|
+import org.springblade.manager.enums.StorageTypeEnum;
|
|
import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
import org.springblade.manager.feign.ContractClient;
|
|
import org.springblade.manager.feign.ContractClient;
|
|
-import org.springblade.manager.vo.WbsTreeVO;
|
|
|
|
import org.springblade.system.entity.DictBiz;
|
|
import org.springblade.system.entity.DictBiz;
|
|
import org.springblade.system.feign.IDictBizClient;
|
|
import org.springblade.system.feign.IDictBizClient;
|
|
|
|
+import org.springblade.system.feign.ISysClient;
|
|
|
|
+import org.springblade.system.user.entity.User;
|
|
|
|
+import org.springblade.system.user.feign.IUserClient;
|
|
import org.springframework.dao.DataAccessException;
|
|
import org.springframework.dao.DataAccessException;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
@@ -46,6 +52,15 @@ public class MetadataClassificationServiceImpl
|
|
private final JdbcTemplate jdbcTemplate;
|
|
private final JdbcTemplate jdbcTemplate;
|
|
private final IDictBizClient iDictBizClient;
|
|
private final IDictBizClient iDictBizClient;
|
|
|
|
|
|
|
|
+ private final ITaskService iTaskService;
|
|
|
|
+
|
|
|
|
+ private final ITaskParallelService iTaskParallelService;
|
|
|
|
+
|
|
|
|
+ private final IUserClient iUserClient;
|
|
|
|
+
|
|
|
|
+ private final ISysClient iSysClient;
|
|
|
|
+
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public MetadataClassification classificationDetail(Integer type) {
|
|
public MetadataClassification classificationDetail(Integer type) {
|
|
return baseMapper.classificationDetail(type);
|
|
return baseMapper.classificationDetail(type);
|
|
@@ -276,7 +291,20 @@ public class MetadataClassificationServiceImpl
|
|
List<ArchiveTreeContract> list = archiveTreeContractClient.getArchiveTreeContractListByIds(ancestors);
|
|
List<ArchiveTreeContract> list = archiveTreeContractClient.getArchiveTreeContractListByIds(ancestors);
|
|
StringBuffer paperAddress= new StringBuffer();
|
|
StringBuffer paperAddress= new StringBuffer();
|
|
StringBuffer nameStr = new StringBuffer();
|
|
StringBuffer nameStr = new StringBuffer();
|
|
|
|
+ // 单位工程
|
|
|
|
+ StringBuffer unitProjectString = new StringBuffer();
|
|
|
|
+ // 单位工程编码
|
|
|
|
+ StringBuffer unitProjectIdString = new StringBuffer();
|
|
|
|
+ // 分部工程
|
|
|
|
+ StringBuffer divisionProjectString = new StringBuffer();
|
|
|
|
+ // 分部工程编码
|
|
|
|
+ StringBuffer divisionProjectIdString = new StringBuffer();
|
|
|
|
+ // 分项工程
|
|
|
|
+ StringBuffer itemizedProjectString = new StringBuffer();
|
|
|
|
+ // 分项工程编码
|
|
|
|
+ StringBuffer itemizedProjectIdString = new StringBuffer();
|
|
for (int i = 0 ;i<list.size();i++) {
|
|
for (int i = 0 ;i<list.size();i++) {
|
|
|
|
+ metadataSetting(list.get(i), unitProjectString, unitProjectIdString, divisionProjectString, divisionProjectIdString, itemizedProjectString, itemizedProjectIdString);
|
|
if(i == 0){
|
|
if(i == 0){
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
@@ -310,7 +338,7 @@ public class MetadataClassificationServiceImpl
|
|
keyValue.put("元数据目录文件", nameStr.toString());
|
|
keyValue.put("元数据目录文件", nameStr.toString());
|
|
|
|
|
|
/**电子文件号**/
|
|
/**电子文件号**/
|
|
-// keyValue.put("电子文件号", byId.getFilePage());
|
|
|
|
|
|
+ keyValue.put("电子文件号", fileId);
|
|
|
|
|
|
/**文件页数**/
|
|
/**文件页数**/
|
|
keyValue.put("文件页数", byId.getFilePage());
|
|
keyValue.put("文件页数", byId.getFilePage());
|
|
@@ -346,14 +374,14 @@ public class MetadataClassificationServiceImpl
|
|
keyValue.put("文件件数",archivesAuto.getFileN());
|
|
keyValue.put("文件件数",archivesAuto.getFileN());
|
|
|
|
|
|
/**验证码**/
|
|
/**验证码**/
|
|
-// keyValue.put("验证码",archivesAuto.getFileN());
|
|
|
|
|
|
+ keyValue.put("验证码",archivesAuto.getId());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/**文号**/
|
|
/**文号**/
|
|
keyValue.put("文号", byId.getFileNumber());
|
|
keyValue.put("文号", byId.getFileNumber());
|
|
/**表单标识码**/
|
|
/**表单标识码**/
|
|
-// keyValue.put("表单标识码", byId.getFileNumber());
|
|
|
|
|
|
+// keyValue.put("表单标识码", fileId);
|
|
|
|
|
|
/**主题**/
|
|
/**主题**/
|
|
keyValue.put("主题", byId.getFileName());
|
|
keyValue.put("主题", byId.getFileName());
|
|
@@ -403,8 +431,63 @@ public class MetadataClassificationServiceImpl
|
|
keyValue.put("引用变更令 编号", byId.getCiteChangeNumber());
|
|
keyValue.put("引用变更令 编号", byId.getCiteChangeNumber());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**业务事项**/
|
|
|
|
+ keyValue.put("业务事项", StorageTypeEnum.getByCode(archiveTreeContractById.getStorageType()));
|
|
|
|
+ /**单位工程**/
|
|
|
|
+ keyValue.put("单位工程", StringUtils.isNotBlank(unitProjectString.toString()) ? unitProjectString.substring(0, unitProjectString.length()-1) : null);
|
|
|
|
+ /**单位工程编码**/
|
|
|
|
+ keyValue.put("单位工程编码", StringUtils.isNotBlank(unitProjectIdString.toString()) ? unitProjectIdString.substring(0, unitProjectIdString.length()-1) : null);
|
|
|
|
+ /**分部工程**/
|
|
|
|
+ keyValue.put("分部工程", StringUtils.isNotBlank(divisionProjectString.toString()) ? divisionProjectString.substring(0, divisionProjectString.length()-1) : null);
|
|
|
|
+ /**分部工程编码**/
|
|
|
|
+ keyValue.put("分部工程编码", StringUtils.isNotBlank(divisionProjectIdString.toString()) ? divisionProjectIdString.substring(0, divisionProjectIdString.length()-1) : null);
|
|
|
|
+ /**分项工程**/
|
|
|
|
+ keyValue.put("分项工程", StringUtils.isNotBlank(itemizedProjectString.toString()) ? itemizedProjectString.substring(0, itemizedProjectString.length()-1) : null);
|
|
|
|
+ /**分项工程编码**/
|
|
|
|
+ keyValue.put("分项工程编码", StringUtils.isNotBlank(itemizedProjectIdString.toString()) ? itemizedProjectIdString.substring(0, itemizedProjectIdString.length()-1) : null);
|
|
|
|
+
|
|
/**责任者名称**/
|
|
/**责任者名称**/
|
|
keyValue.put("责任者名称", byId.getDutyUser());
|
|
keyValue.put("责任者名称", byId.getDutyUser());
|
|
|
|
+ /**关系**/
|
|
|
|
+ keyValue.put("关系", "引用");
|
|
|
|
+
|
|
|
|
+ // 获取签名信息
|
|
|
|
+ Task task = iTaskService.getTaskByFormDataId(byId.getId().toString());
|
|
|
|
+ if(ObjectUtil.isNotEmpty(task)){
|
|
|
|
+ // 拿到processInstanceId,查询电签信息
|
|
|
|
+ List<TaskParallel> taskParallelList = iTaskParallelService.queryApprovalUser(task.getProcessInstanceId());
|
|
|
|
+ taskParallelList = taskParallelList.stream().filter(taskParallel -> taskParallel.getEVisaStatus() == 1).collect(Collectors.toList());
|
|
|
|
+ if(CollectionUtil.isNotEmpty(taskParallelList)){
|
|
|
|
+ // 签名者
|
|
|
|
+ StringBuffer nameString = new StringBuffer();
|
|
|
|
+ // 签名时间
|
|
|
|
+ StringBuffer dateString = new StringBuffer();
|
|
|
|
+ // 用户id集合
|
|
|
|
+ List<Long> userIdList = new ArrayList<>();
|
|
|
|
+ for (TaskParallel taskParallel : taskParallelList) {
|
|
|
|
+ nameString.append(taskParallel.getTaskUserName());
|
|
|
|
+ nameString.append("、");
|
|
|
|
+ dateString.append(taskParallel.getUpdateTime());
|
|
|
|
+ dateString.append("、");
|
|
|
|
+ userIdList.add(Long.valueOf(task.getTaskUser()));
|
|
|
|
+ }
|
|
|
|
+ // 查询用户
|
|
|
|
+ List<User> userList = iUserClient.userInfoByIds(userIdList);
|
|
|
|
+ // 岗位id集合
|
|
|
|
+ List<String> postIds = userList.stream().map(User::getPostId).collect(Collectors.toList());
|
|
|
|
+ R<List<String>> postNames = iSysClient.getPostNames(Func.join(postIds));
|
|
|
|
+ if(postNames.getCode() == 200){
|
|
|
|
+ /**签名项**/
|
|
|
|
+ keyValue.put("签名项", Func.join(postNames.getData()));
|
|
|
|
+ }
|
|
|
|
+ /**签名者**/
|
|
|
|
+ keyValue.put("签名者", StringUtils.isNotBlank(nameString.toString()) ? nameString.substring(0, nameString.length()-1) : null);
|
|
|
|
+ /**签名时间**/
|
|
|
|
+ keyValue.put("签名时间", StringUtils.isNotBlank(dateString.toString()) ? dateString.substring(0, nameString.length()-1) : null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 更新判断
|
|
if (isAdd) {
|
|
if (isAdd) {
|
|
sqlBuild.append("insert into u_metadata_file ");
|
|
sqlBuild.append("insert into u_metadata_file ");
|
|
for (MetadataClassification key : metadataClassifications) {
|
|
for (MetadataClassification key : metadataClassifications) {
|
|
@@ -440,7 +523,40 @@ public class MetadataClassificationServiceImpl
|
|
sqlBuild.append(" update_time = '" + DateUtil.formatDateTime(new Date()) + "' ");
|
|
sqlBuild.append(" update_time = '" + DateUtil.formatDateTime(new Date()) + "' ");
|
|
sqlBuild.append(" where id = " + metadataMap.get("id"));
|
|
sqlBuild.append(" where id = " + metadataMap.get("id"));
|
|
}
|
|
}
|
|
|
|
+ System.out.println(sqlBuild.toString().replaceAll("\\\\",""));
|
|
jdbcTemplate.execute(sqlBuild.toString().replaceAll("\\\\",""));
|
|
jdbcTemplate.execute(sqlBuild.toString().replaceAll("\\\\",""));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 元数据-M56-M61数据设置
|
|
|
|
+ */
|
|
|
|
+ private void metadataSetting(ArchiveTreeContract archiveTreeContract,
|
|
|
|
+ StringBuffer unitProjectString,
|
|
|
|
+ StringBuffer unitProjectIdString,
|
|
|
|
+ StringBuffer divisionProjectString,
|
|
|
|
+ StringBuffer divisionProjectIdString,
|
|
|
|
+ StringBuffer itemizedProjectString,
|
|
|
|
+ StringBuffer itemizedProjectIdString){
|
|
|
|
+ // 判断archiveTreeContract中displayHierarchy属性值
|
|
|
|
+ String displayHierarchy = archiveTreeContract.getDisplayHierarchy();
|
|
|
|
+ String nodeName = archiveTreeContract.getNodeName();
|
|
|
|
+ Long id = archiveTreeContract.getId();
|
|
|
|
+ if(displayHierarchy.equals("1")){// 单位工程
|
|
|
|
+ unitProjectString.append(nodeName);
|
|
|
|
+ unitProjectString.append("/");
|
|
|
|
+ unitProjectIdString.append(id);
|
|
|
|
+ unitProjectIdString.append("/");
|
|
|
|
+ }else if(displayHierarchy.equals("2")){// 分部工程
|
|
|
|
+ divisionProjectString.append(nodeName);
|
|
|
|
+ divisionProjectString.append("/");
|
|
|
|
+ divisionProjectIdString.append(id);
|
|
|
|
+ divisionProjectIdString.append("/");
|
|
|
|
+ }else if(displayHierarchy.equals("4")){// 分项工程
|
|
|
|
+ itemizedProjectString.append(nodeName);
|
|
|
|
+ itemizedProjectString.append("/");
|
|
|
|
+ itemizedProjectIdString.append(id);
|
|
|
|
+ itemizedProjectIdString.append("/");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|