浏览代码

fix: 优化模式3保存逻辑

huangzqa 3 年之前
父节点
当前提交
504c172feb

+ 19 - 5
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/impl/ApproveUploadBusinessImpl.java

@@ -73,14 +73,15 @@ public class ApproveUploadBusinessImpl implements IApproveUploadBusiness {
                 @NotBlank String appCode = approveRecord.getAppCode();
                 String newApproveNo = buildNewApproveNo(appCode, oldApproveNo);
                 ApproveRecordInfo approveRecordInfo = approveRecordService.selectByApproveNo(newApproveNo);
+                boolean isSave = false;
                 if (approveRecordInfo == null) {
                     approveRecordInfo = new ApproveRecordInfo();
+                    isSave = true;
                 }
 
                 @NotBlank String applicantIdcard = approveRecord.getApplicantIdcard();
                 Date applyTimeDate = DateUtils.parseDate(approveRecord.getApplyTime(), DateUtils.DATE_FORMAT_19);
 
-
                 BeanUtils.copyProperties(approveRecord, approveRecordInfo);
                 approveRecordInfo.setBusinessCode(approveRecord.getProcessNo());
                 approveRecordInfo.setIsDeleted(BooleanEnum.FALSE.getValue());
@@ -92,14 +93,27 @@ public class ApproveUploadBusinessImpl implements IApproveUploadBusiness {
 
                 approveRecordInfo.setApproveNo(newApproveNo);
                 approveRecordInfo.setCreateUser(applicantIdcard);
-                approveRecordService.save(approveRecordInfo);
+
+                if (isSave) {
+                    approveRecordService.save(approveRecordInfo);
+                } else {
+                    approveRecordService.updateById(approveRecordInfo);
+                }
+                String approveRecordId = approveRecordInfo.getId();
+                // 如果是更新删除原有数据
+                if (!isSave) {
+                    approveQueryRelationService.deleteByApproveRecordId(approveRecordId);
+                    approveCirculationService.deleteByApproveRecordId(approveRecordId);
+                    approveActHiTaskService.deleteByApplyRecordId(approveRecordId);
+                }
+
                 ApproveQueryRelation approveQueryRelation = new ApproveQueryRelation();
                 BeanUtils.copyProperties(approveRecord, approveQueryRelation);
                 approveQueryRelation.setIsDeleted(BooleanEnum.FALSE.getValue());
                 approveQueryRelation.setCreateUser(applicantIdcard);
                 approveQueryRelation.setCreateTime(applyTimeDate);
                 //保存关联关系
-                approveQueryRelation.setApproveRecordId(approveRecordInfo.getId());
+                approveQueryRelation.setApproveRecordId(approveRecordId);
                 approveQueryRelationService.save(approveQueryRelation);
                 //审批单包含流转记录处理
                 List<ApproveCirculationReqVO> approveCirculationList = approveRecord.getApproveCirculationList();
@@ -111,11 +125,11 @@ public class ApproveUploadBusinessImpl implements IApproveUploadBusiness {
                     approveCirculationInfo.setCreateUser(approveCirculation.getOperateUserId());
                     approveCirculationInfo.setCreateTime(Timestamp.valueOf(approveCirculation.getOperateTime()));
                     //保存关联关系
-                    approveCirculationInfo.setApproveRecordId(approveRecordInfo.getId());
+                    approveCirculationInfo.setApproveRecordId(approveRecordId);
                     approveCirculationService.save(approveCirculationInfo);
                     //将审批记录转换成已办数据
                     ApproveActHiTask actHiTask = new ApproveActHiTask();
-                    actHiTask.setApplyRecordId(approveRecordInfo.getId());
+                    actHiTask.setApplyRecordId(approveRecordId);
                     actHiTask.setBusinessCode(approveRecordInfo.getBusinessCode());
                     actHiTask.setBusinessName(approveRecordInfo.getProcessName());
                     actHiTask.setTaskId(approveCirculationInfo.getTaskId());

+ 8 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/model/ApproveCirculationInfo.java

@@ -1,9 +1,13 @@
 package com.dragonsoft.dcuc.approve.model;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.dragonsoft.duceap.base.annotations.audit.DeletedBy;
+import com.dragonsoft.duceap.base.annotations.audit.DeletedDate;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.apache.ibatis.type.JdbcType;
+import org.springframework.data.annotation.LastModifiedBy;
+import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
@@ -124,6 +128,7 @@ public class ApproveCirculationInfo {
     /**
      * 更新人
      */
+    @LastModifiedBy
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField(jdbcType = JdbcType.TIMESTAMP)
@@ -132,6 +137,7 @@ public class ApproveCirculationInfo {
     /**
      * 更新时间
      */
+    @LastModifiedDate
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField(jdbcType = JdbcType.TIMESTAMP)
@@ -140,11 +146,13 @@ public class ApproveCirculationInfo {
     /**
      * 删除人
      */
+    @DeletedBy
     private String deleteUser;
 
     /**
      * 删除时间
      */
+    @DeletedDate
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField(jdbcType = JdbcType.TIMESTAMP)

+ 76 - 68
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/model/ApproveQueryRelation.java

@@ -1,9 +1,13 @@
 package com.dragonsoft.dcuc.approve.model;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.dragonsoft.duceap.base.annotations.audit.DeletedBy;
+import com.dragonsoft.duceap.base.annotations.audit.DeletedDate;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import org.apache.ibatis.type.JdbcType;
+import org.springframework.data.annotation.LastModifiedBy;
+import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
@@ -18,73 +22,77 @@ import java.util.Date;
 @TableName(value = "t_approve_query_relation")
 public class ApproveQueryRelation {
 
-	@TableField(value = "ID")
-	@TableId(type = IdType.UUID)
-	private String id;
-
-	/**
-	 * 审批单信息记录id
-	 */
-	private String approveRecordId;
-
-	/**
-	 * 案件/事件/线索/被查询人员类别
-	 */
-	private String queryUserType;
-
-	/**
-	 * 案件/事件/线索/被查询人员名称
-	 */
-	private String queryUserName;
-
-	/**
-	 * 案件/事件/线索/被查询人员编号
-	 */
-	private String queryUserId;
-
-	/**
-	 * 是否删除
-	 */
-	@TableLogic
-	private String isDeleted;
-
-	/**
-	 * 创建人
-	 */
-	private String createUser;
-
-	/**
-	 * 创建时间
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-	@TableField(jdbcType = JdbcType.TIMESTAMP)
-	private Date createTime;
-
-	/**
-	 * 更新人
-	 */
-	private String updateUser;
-
-	/**
-	 * 更新时间
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-	@TableField(jdbcType = JdbcType.TIMESTAMP)
-	private Date updateTime;
-
-	/**
-	 * 删除人
-	 */
-	private String deleteUser;
-
-	/**
-	 * 删除时间
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-	@TableField(jdbcType = JdbcType.TIMESTAMP)
-	private Date deleteTime;
+    @TableField(value = "ID")
+    @TableId(type = IdType.UUID)
+    private String id;
+
+    /**
+     * 审批单信息记录id
+     */
+    private String approveRecordId;
+
+    /**
+     * 案件/事件/线索/被查询人员类别
+     */
+    private String queryUserType;
+
+    /**
+     * 案件/事件/线索/被查询人员名称
+     */
+    private String queryUserName;
+
+    /**
+     * 案件/事件/线索/被查询人员编号
+     */
+    private String queryUserId;
+
+    /**
+     * 是否删除
+     */
+    @TableLogic
+    private String isDeleted;
+
+    /**
+     * 创建人
+     */
+    private String createUser;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(jdbcType = JdbcType.TIMESTAMP)
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    @LastModifiedBy
+    private String updateUser;
+
+    /**
+     * 更新时间
+     */
+    @LastModifiedDate
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(jdbcType = JdbcType.TIMESTAMP)
+    private Date updateTime;
+
+    /**
+     * 删除人
+     */
+    @DeletedBy
+    private String deleteUser;
+
+    /**
+     * 删除时间
+     */
+    @DeletedDate
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(jdbcType = JdbcType.TIMESTAMP)
+    private Date deleteTime;
 
 }

+ 7 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/IApproveActHiTaskService.java

@@ -17,6 +17,13 @@ public interface IApproveActHiTaskService {
      */
     void save(ApproveActHiTask approveActHiTask);
 
+    /**
+     * 更新
+     *
+     * @param approveActHiTask 已办
+     */
+    void update(ApproveActHiTask approveActHiTask);
+
     /**
      * 查询已办列表
      *

+ 7 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/IApproveCirculationService.java

@@ -23,6 +23,13 @@ public interface IApproveCirculationService {
      */
     void save(ApproveCirculationInfo approveCirculationInfo);
 
+    /**
+     * 根据记录ID删除对应数据
+     *
+     * @param approveRecordId 记录ID
+     */
+    void deleteByApproveRecordId(String approveRecordId);
+
     /**
      * 根据审批记录号获取流转信息
      *

+ 7 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/IApproveQueryRelationService.java

@@ -18,4 +18,11 @@ public interface IApproveQueryRelationService {
      * @param approveQueryRelation 审批流通信息
      */
     void save(ApproveQueryRelation approveQueryRelation);
+
+    /**
+     * 根据审批记录单号ID删除对应数据
+     *
+     * @param approveRecordId 审批单号ID
+     */
+    void deleteByApproveRecordId(String approveRecordId);
 }

+ 5 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveActHiTaskServiceImpl.java

@@ -24,6 +24,11 @@ public class ApproveActHiTaskServiceImpl implements IApproveActHiTaskService {
         approveActHiTaskMapper.insert(approveActHiTask);
     }
 
+    @Override
+    public void update(ApproveActHiTask approveActHiTask) {
+        approveActHiTaskMapper.updateById(approveActHiTask);
+    }
+
     @Override
     public Page<ApproveActHiTask> page(Searchable searchable) {
         return approveActHiTaskMapper.pagingBySearchable(searchable);

+ 8 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveCirculationImpl.java

@@ -1,6 +1,7 @@
 package com.dragonsoft.dcuc.approve.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
 import com.dragonsoft.dcuc.approve.mapper.ApproveCirculationMapper;
@@ -35,6 +36,13 @@ public class ApproveCirculationImpl implements IApproveCirculationService {
         approveCirculationMapper.insert(approveCirculationInfo);
     }
 
+    @Override
+    public void deleteByApproveRecordId(String approveRecordId) {
+        LambdaUpdateWrapper<ApproveCirculationInfo> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        lambdaUpdateWrapper.eq(ApproveCirculationInfo::getApproveRecordId, approveRecordId);
+        approveCirculationMapper.delete(lambdaUpdateWrapper);
+    }
+
     @Override
     public List<ApproveCirculationInfo> getListByApproveRecordId(String approveRecordId) {
         LambdaQueryWrapper<ApproveCirculationInfo> where = Wrappers.lambdaQuery();

+ 9 - 0
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveQueryRelationServiceImpl.java

@@ -1,5 +1,7 @@
 package com.dragonsoft.dcuc.approve.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dragonsoft.dcuc.approve.mapper.ApproveQueryRelationMapper;
 import com.dragonsoft.dcuc.approve.model.ApproveQueryRelation;
 import com.dragonsoft.dcuc.approve.service.IApproveQueryRelationService;
@@ -24,4 +26,11 @@ public class ApproveQueryRelationServiceImpl implements IApproveQueryRelationSer
     public void save(ApproveQueryRelation approveQueryRelation) {
         approveQueryRelationMapper.insert(approveQueryRelation);
     }
+
+    @Override
+    public void deleteByApproveRecordId(String approveRecordId) {
+        LambdaUpdateWrapper<ApproveQueryRelation> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        objectLambdaUpdateWrapper.eq(ApproveQueryRelation::getApproveRecordId, approveRecordId);
+        approveQueryRelationMapper.delete(objectLambdaUpdateWrapper);
+    }
 }