|
@@ -12,6 +12,7 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springblade.archive.entity.ArchiveProjectConfig;
|
|
|
import org.springblade.archive.feign.ArchiveAutoClient;
|
|
|
+import org.springblade.business.dto.ReSigningEntrustDto;
|
|
|
import org.springblade.business.dto.TrialResignDto;
|
|
|
import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
|
|
|
import org.springblade.business.entity.*;
|
|
@@ -1189,6 +1190,109 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void reSigningEntrust(List<ReSigningEntrustDto> dtos, String header, HttpServletRequest request) {
|
|
|
+ String taskIds = dtos.stream().map(d -> d.getTaskId()).collect(Collectors.joining(","));
|
|
|
+ Map<String, ReSigningEntrustDto> map = dtos.stream()
|
|
|
+ .filter(dto -> dto.getTaskId() != null) // 确保taskId不为空
|
|
|
+ .collect(Collectors.toMap(ReSigningEntrustDto::getTaskId, dto -> dto));
|
|
|
+ Map<Long, ReSigningEntrustDto> longMap = map.values().stream()
|
|
|
+ .collect(Collectors.toMap(ReSigningEntrustDto::getTaskIdLong, dto -> dto));
|
|
|
+ //查询任务信息
|
|
|
+ List<Task> taskList = jdbcTemplate.query("select * from u_task where id in(" + taskIds + ")", new BeanPropertyRowMapper<>(Task.class));
|
|
|
+ if (taskList.size() > 0) {
|
|
|
+ //获取任务详情信息Map
|
|
|
+ Set<String> processInstanceIds = taskList.stream().map(Task::getProcessInstanceId).collect(Collectors.toSet());
|
|
|
+ Map<String, List<TaskParallel>> taskParallelGroupMap = new HashMap<>();
|
|
|
+ if (processInstanceIds.size() > 0) {
|
|
|
+ String resultIds = processInstanceIds.stream()
|
|
|
+ .map(id -> "'" + id + "'")
|
|
|
+ .collect(Collectors.joining(","));
|
|
|
+ taskParallelGroupMap = jdbcTemplate.query("select parallel_process_instance_id,process_instance_id,e_visa_status,task_user,task_user_name,status from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
|
|
|
+ }
|
|
|
+ Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
|
|
|
+ try {
|
|
|
+ for (int i = 0; i < taskList.size(); i++) {
|
|
|
+ ReSigningEntrustDto dto = longMap.get(taskList.get(i).getId());
|
|
|
+ R result = new R();
|
|
|
+ jdbcTemplate.execute("DELETE from u_task_batch where json_data like '%"+taskList.get(i).getId()+"%'");
|
|
|
+ boolean b = false;
|
|
|
+ if(dto.getType() == 1){
|
|
|
+ b = informationQueryService.update(new LambdaUpdateWrapper<InformationQuery>()
|
|
|
+ .eq(InformationQuery::getId, taskList.get(i).getFormDataId())
|
|
|
+ .set(InformationQuery::getEVisaPdfUrl, null)
|
|
|
+ .set(InformationQuery::getPdfUrl, null));
|
|
|
+ String update="update u_entrust_info set entrust_e_pdf=null,entrust_pdf=null where id="+dto.getEntrustId();
|
|
|
+ jdbcTemplate.update(update);
|
|
|
+ }else {
|
|
|
+ b = informationQueryService.update(new LambdaUpdateWrapper<InformationQuery>()
|
|
|
+ .eq(InformationQuery::getId, taskList.get(i).getFormDataId())
|
|
|
+ .set(InformationQuery::getEVisaPdfUrl, null));
|
|
|
+ String update="update u_entrust_info set entrust_e_pdf=null where id="+dto.getEntrustId();
|
|
|
+ jdbcTemplate.update(update);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (dto.getType() == 1) {
|
|
|
+ //重新保存
|
|
|
+ long startTime_1 = System.currentTimeMillis();
|
|
|
+ result=excelTabClient.saveReEntrustTabData(dto,header);
|
|
|
+ long endTime_1 = System.currentTimeMillis();
|
|
|
+ long executionTime_1 = endTime_1 - startTime_1;
|
|
|
+ log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
|
|
|
+ }else{
|
|
|
+ if (!b){
|
|
|
+ throw new ServiceException("清空电签PDF失败");
|
|
|
+ }
|
|
|
+ result.setData("成功");
|
|
|
+ }
|
|
|
+ //重新电签
|
|
|
+ if (result != null && "操作成功".equals(result.getMsg())) {
|
|
|
+ List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
|
|
|
+ List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(taskList.get(i).getProcessInstanceId());
|
|
|
+ for (TaskParallel taskParallel : taskParallelList) {
|
|
|
+ //待审批的不进行重签, 存在待审批,但是电签状态是失败的
|
|
|
+ if ((new Integer(2)).equals(taskParallel.getStatus()) || Func.isNotEmpty(taskParallel.getEVisaStatus()) || Func.isNotEmpty(taskParallel.getEVisaContent()) ) {
|
|
|
+ TaskApprovalVO approvalVO = new TaskApprovalVO();
|
|
|
+ approvalVO.setTaskId(taskList.get(i).getId().toString());
|
|
|
+ approvalVO.setFlag("OK");
|
|
|
+ approvalVO.setComment("重新发起电签");
|
|
|
+ approvalVO.setApprovalType(8);
|
|
|
+ approvalVO.setFormDataId(taskList.get(i).getFormDataId());
|
|
|
+ approvalVO.setParallelProcessInstanceId(taskParallel.getParallelProcessInstanceId());
|
|
|
+ approvalVO.setYsNickName(taskParallel.getTaskUserName());
|
|
|
+ approvalVO.setUserId(Long.parseLong(taskParallel.getTaskUser()));
|
|
|
+ taskApprovalVOS.add(approvalVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ long startTime_2 = System.currentTimeMillis();
|
|
|
+ if(taskApprovalVOS!=null && taskApprovalVOS.size()>=1){
|
|
|
+ this.batchCompleteApprovalTask(taskApprovalVOS);
|
|
|
+ }
|
|
|
+ if(result.getData()!=null){
|
|
|
+ String update="update u_entrust_info set entrust_pdf= '"+result.getData()+"' where id="+dto.getEntrustId();
|
|
|
+ jdbcTemplate.update(update);
|
|
|
+ }
|
|
|
+ long endTime_2 = System.currentTimeMillis();
|
|
|
+ long executionTime_2 = endTime_2 - startTime_2;
|
|
|
+ log.info("batchCompleteApprovalTask执行时间:" + executionTime_2 + " 毫秒");
|
|
|
+ } else {
|
|
|
+ //修改重签状态为保存PDF失败
|
|
|
+ this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
|
|
|
+ .set(TaskParallel::getEVisaContent, "重新保存PDF失败")
|
|
|
+ .eq(TaskParallel::getProcessInstanceId, taskList.get(i).getProcessInstanceId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new ServiceException("重新保存PDF信息失败,原因:" + e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ }else {
|
|
|
+ throw new ServiceException("未获取到任务信息,操作失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private R saveTrialSelfNodePdf(TrialResignDto dto,String trialId) {
|
|
|
//试验记录id
|
|
|
String trialIds = dto.getTrialIds();
|
|
@@ -1767,6 +1871,16 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
|
if (type == 1) {
|
|
|
//重新保存
|
|
|
long startTime_1 = System.currentTimeMillis();
|
|
|
+ //质检资料
|
|
|
+ if(task.getApprovalType()==1){
|
|
|
+ result = this.saveNodePdf(typeMap.get(task.getFormDataId()), queryMap.get(task.getFormDataId()), contractId, projectId, header);
|
|
|
+ }
|
|
|
+ //日志资料
|
|
|
+ if(task.getApprovalType()==3){
|
|
|
+ ContractLog contractLog = jdbcTemplate.queryForObject("select * from u_contract_log where id =" + task.getFormDataId(), new BeanPropertyRowMapper<>(ContractLog.class));
|
|
|
+ result = excelTabClient.getTheContractLogBusinessData(contractLog.getTableId().toString(), contractLog.getWbsNodeId().toString(), contractLog.getRecordTime(), contractId,contractLog.getCreateUser());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
result = this.saveNodePdf(typeMap.get(task.getFormDataId()), queryMap.get(task.getFormDataId()), contractId, projectId, header);
|
|
|
|