|
@@ -3,7 +3,6 @@ package com.dragonsoft.dcuc.approve.business.impl;
|
|
|
import com.alibaba.excel.util.DateUtils;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
-import com.dragoninfo.dcuc.common.utils.ResponseUtil;
|
|
|
import com.dragonsoft.approve.common.ErrorCode;
|
|
|
import com.dragonsoft.dcuc.approve.business.IApproveUploadBusiness;
|
|
|
import com.dragonsoft.dcuc.approve.enumresources.ApproveResultEnum;
|
|
@@ -21,7 +20,7 @@ import com.dragonsoft.dcuc.approve.service.IApproveActHiTaskService;
|
|
|
import com.dragonsoft.dcuc.approve.service.IApproveCirculationService;
|
|
|
import com.dragonsoft.dcuc.approve.service.IApproveQueryRelationService;
|
|
|
import com.dragonsoft.dcuc.approve.service.IApproveRecordService;
|
|
|
-import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
|
|
|
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
|
|
|
import com.dragonsoft.duceap.base.enums.BooleanEnum;
|
|
|
import com.dragonsoft.duceap.base.exception.ApplicationException;
|
|
|
import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
|
|
@@ -31,10 +30,11 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
+import javax.validation.constraints.NotBlank;
|
|
|
import java.sql.Timestamp;
|
|
|
import java.text.ParseException;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@@ -65,83 +65,93 @@ public class ApproveUploadBusinessImpl implements IApproveUploadBusiness {
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public ResponseDTO<String> approveUpload(List<ApproveRecordReportReqVO> approveRecordList) {
|
|
|
+ public ResponseStatus approveUpload(List<ApproveRecordReportReqVO> approveRecordList) {
|
|
|
logger.info("审批单信息保存开始,数据推送条数:【{}】", approveRecordList.size());
|
|
|
- ApproveRecordInfo approveRecordInfo = new ApproveRecordInfo();
|
|
|
try {
|
|
|
- if (!approveRecordList.isEmpty()) {
|
|
|
- //审批单信息处理
|
|
|
- approveRecordList.forEach(
|
|
|
- approveRecord -> {
|
|
|
+ for (ApproveRecordReportReqVO approveRecord : approveRecordList) {
|
|
|
+ @NotBlank String oldApproveNo = approveRecord.getApproveNo();
|
|
|
+ @NotBlank String appCode = approveRecord.getAppCode();
|
|
|
+ String newApproveNo = buildNewApproveNo(appCode, oldApproveNo);
|
|
|
+ ApproveRecordInfo approveRecordInfo = approveRecordService.selectByApproveNo(newApproveNo);
|
|
|
+ if (approveRecordInfo == null) {
|
|
|
+ approveRecordInfo = new ApproveRecordInfo();
|
|
|
+ }
|
|
|
|
|
|
- try {
|
|
|
- BeanUtils.copyProperties(approveRecord, approveRecordInfo);
|
|
|
- approveRecordInfo.setBusinessCode(approveRecord.getProcessNo());
|
|
|
- approveRecordInfo.setIsDeleted(BooleanEnum.FALSE.getValue());
|
|
|
- approveRecordInfo.setCreateUser(approveRecord.getApplicantIdcard());
|
|
|
- approveRecordInfo.setCreateTime(DateUtils.parseDate(approveRecord.getApplyTime(), DateUtils.DATE_FORMAT_19));
|
|
|
- approveRecordInfo.setProcessTitle(approveRecord.getApproveTitle());
|
|
|
- approveRecordInfo.setTaskName("结束");
|
|
|
- approveRecordInfo.setTaskCode("end");
|
|
|
- approveRecordService.save(approveRecordInfo);
|
|
|
- ApproveQueryRelation approveQueryRelation = new ApproveQueryRelation();
|
|
|
- BeanUtils.copyProperties(approveRecord, approveQueryRelation);
|
|
|
- approveQueryRelation.setIsDeleted(BooleanEnum.FALSE.getValue());
|
|
|
- approveQueryRelation.setCreateUser(approveRecord.getApplicantIdcard());
|
|
|
- approveQueryRelation.setCreateTime(DateUtils.parseDate(approveRecord.getApplyTime(), DateUtils.DATE_FORMAT_19));
|
|
|
- //保存关联关系
|
|
|
- approveQueryRelation.setApproveRecordId(approveRecordInfo.getId());
|
|
|
- approveQueryRelationService.save(approveQueryRelation);
|
|
|
- //审批单包含流转记录处理
|
|
|
- if (!ObjectUtils.isEmpty(approveRecord.getApproveCirculationList())) {
|
|
|
- approveRecord.getApproveCirculationList().forEach(
|
|
|
- approveCirculation -> {
|
|
|
- ApproveCirculationInfo approveCirculationInfo = new ApproveCirculationInfo();
|
|
|
- BeanUtils.copyProperties(approveCirculation, approveCirculationInfo);
|
|
|
- approveCirculationInfo.setApproveNo(approveRecordInfo.getApproveNo());
|
|
|
- approveCirculationInfo.setIsDeleted(BooleanEnum.FALSE.getValue());
|
|
|
- approveCirculationInfo.setCreateUser(approveCirculation.getOperateUserId());
|
|
|
- approveCirculationInfo.setCreateTime(Timestamp.valueOf(approveCirculation.getOperateTime()));
|
|
|
- //保存关联关系
|
|
|
- approveCirculationInfo.setApproveRecordId(approveRecordInfo.getId());
|
|
|
- approveCirculationService.save(approveCirculationInfo);
|
|
|
- //将审批记录转换成已办数据
|
|
|
- ApproveActHiTask actHiTask = new ApproveActHiTask();
|
|
|
- actHiTask.setApplyRecordId(approveRecordInfo.getId());
|
|
|
- actHiTask.setBusinessCode(approveRecordInfo.getBusinessCode());
|
|
|
- actHiTask.setBusinessName(approveRecordInfo.getProcessName());
|
|
|
- actHiTask.setTaskId(approveCirculationInfo.getTaskId());
|
|
|
- actHiTask.setTaskCode(approveCirculationInfo.getNodeNo());
|
|
|
- actHiTask.setTaskName(approveCirculationInfo.getNodeName());
|
|
|
- actHiTask.setOperateUserIdcard(approveCirculationInfo.getOperateUserId());
|
|
|
- actHiTask.setOperateUserName(approveCirculationInfo.getOperateUserName());
|
|
|
- actHiTask.setOperateType(approveCirculationInfo.getOperateType());
|
|
|
- actHiTask.setProcessInstanceId(approveRecordInfo.getProcessInstanceId());
|
|
|
- try {
|
|
|
- actHiTask.setOperateTime(DateUtils.parseDate(approveCirculationInfo.getOperateTime(), DateUtils.DATE_FORMAT_19));
|
|
|
- } catch (ParseException ignored) {
|
|
|
+ @NotBlank String applicantIdcard = approveRecord.getApplicantIdcard();
|
|
|
+ Date applyTimeDate = DateUtils.parseDate(approveRecord.getApplyTime(), DateUtils.DATE_FORMAT_19);
|
|
|
|
|
|
- }
|
|
|
- actHiTask.setDeleted(BooleanEnum.FALSE.getValue());
|
|
|
- approveActHiTaskService.save(actHiTask);
|
|
|
- }
|
|
|
- );
|
|
|
- }
|
|
|
- } catch (ParseException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
- );
|
|
|
+ BeanUtils.copyProperties(approveRecord, approveRecordInfo);
|
|
|
+ approveRecordInfo.setBusinessCode(approveRecord.getProcessNo());
|
|
|
+ approveRecordInfo.setIsDeleted(BooleanEnum.FALSE.getValue());
|
|
|
+ approveRecordInfo.setCreateUser(applicantIdcard);
|
|
|
+ approveRecordInfo.setCreateTime(applyTimeDate);
|
|
|
+ approveRecordInfo.setProcessTitle(approveRecord.getApproveTitle());
|
|
|
+ approveRecordInfo.setTaskName("结束");
|
|
|
+ approveRecordInfo.setTaskCode("end");
|
|
|
+
|
|
|
+ approveRecordInfo.setApproveNo(newApproveNo);
|
|
|
+ approveRecordInfo.setCreateUser(applicantIdcard);
|
|
|
+ approveRecordService.save(approveRecordInfo);
|
|
|
+ ApproveQueryRelation approveQueryRelation = new ApproveQueryRelation();
|
|
|
+ BeanUtils.copyProperties(approveRecord, approveQueryRelation);
|
|
|
+ approveQueryRelation.setIsDeleted(BooleanEnum.FALSE.getValue());
|
|
|
+ approveQueryRelation.setCreateUser(applicantIdcard);
|
|
|
+ approveQueryRelation.setCreateTime(applyTimeDate);
|
|
|
+ //保存关联关系
|
|
|
+ approveQueryRelation.setApproveRecordId(approveRecordInfo.getId());
|
|
|
+ approveQueryRelationService.save(approveQueryRelation);
|
|
|
+ //审批单包含流转记录处理
|
|
|
+ List<ApproveCirculationReqVO> approveCirculationList = approveRecord.getApproveCirculationList();
|
|
|
+ for (ApproveCirculationReqVO approveCirculation : approveCirculationList) {
|
|
|
+ ApproveCirculationInfo approveCirculationInfo = new ApproveCirculationInfo();
|
|
|
+ BeanUtils.copyProperties(approveCirculation, approveCirculationInfo);
|
|
|
+ approveCirculationInfo.setApproveNo(newApproveNo);
|
|
|
+ approveCirculationInfo.setIsDeleted(BooleanEnum.FALSE.getValue());
|
|
|
+ approveCirculationInfo.setCreateUser(approveCirculation.getOperateUserId());
|
|
|
+ approveCirculationInfo.setCreateTime(Timestamp.valueOf(approveCirculation.getOperateTime()));
|
|
|
+ //保存关联关系
|
|
|
+ approveCirculationInfo.setApproveRecordId(approveRecordInfo.getId());
|
|
|
+ approveCirculationService.save(approveCirculationInfo);
|
|
|
+ //将审批记录转换成已办数据
|
|
|
+ ApproveActHiTask actHiTask = new ApproveActHiTask();
|
|
|
+ actHiTask.setApplyRecordId(approveRecordInfo.getId());
|
|
|
+ actHiTask.setBusinessCode(approveRecordInfo.getBusinessCode());
|
|
|
+ actHiTask.setBusinessName(approveRecordInfo.getProcessName());
|
|
|
+ actHiTask.setTaskId(approveCirculationInfo.getTaskId());
|
|
|
+ actHiTask.setTaskCode(approveCirculationInfo.getNodeNo());
|
|
|
+ actHiTask.setTaskName(approveCirculationInfo.getNodeName());
|
|
|
+ actHiTask.setOperateUserIdcard(approveCirculationInfo.getOperateUserId());
|
|
|
+ actHiTask.setOperateUserName(approveCirculationInfo.getOperateUserName());
|
|
|
+ actHiTask.setOperateType(approveCirculationInfo.getOperateType());
|
|
|
+ actHiTask.setProcessInstanceId(approveRecordInfo.getProcessInstanceId());
|
|
|
+ try {
|
|
|
+ actHiTask.setOperateTime(DateUtils.parseDate(approveCirculationInfo.getOperateTime(), DateUtils.DATE_FORMAT_19));
|
|
|
+ } catch (ParseException ignored) {
|
|
|
+
|
|
|
+ }
|
|
|
+ actHiTask.setDeleted(BooleanEnum.FALSE.getValue());
|
|
|
+ approveActHiTaskService.save(actHiTask);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- } catch (Exception ex) {
|
|
|
- logger.error("保存审批单失败!");
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("保存审批单失败!", e);
|
|
|
throw new ApplicationException(ErrorCode.APPROVAL_UPLOAD_EXCEPTION.getCode(), ErrorCode.APPROVAL_UPLOAD_EXCEPTION.getMsg());
|
|
|
}
|
|
|
- String approveRecordInfoId = approveRecordInfo.getId();
|
|
|
- return ResponseUtil.newInstance(approveRecordInfoId);
|
|
|
+ return ResponseStatus.success();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 生成新审批单号
|
|
|
+ *
|
|
|
+ * @param appCode 应用代码
|
|
|
+ * @param approveNo 原审批单号
|
|
|
+ * @return 新审批单号
|
|
|
+ */
|
|
|
+ private String buildNewApproveNo(String appCode, String approveNo) {
|
|
|
+ return appCode + ":" + approveNo;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 检查参数
|