Переглянути джерело

报告作废删除时,复原报告数据

lizhenhao 2 роки тому
батько
коміт
b6d579d6f0

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectInfoMapper.java

@@ -84,4 +84,10 @@ public interface CwProjectInfoMapper extends BaseMapper<CwProjectInfoData> {
      */
     void updateReportNoByReportId(@Param("reportId")String reportId,
                           @Param("reportNo")String reportNo);
+
+    /**
+     * 复原逻辑删除的数据
+     * @param id
+     */
+    void saveById(@Param("id")String id);
 }

+ 2 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/CwProjectReportMapper.java

@@ -176,4 +176,6 @@ public interface CwProjectReportMapper extends BaseMapper<CwProjectReport> {
      * @param cwProjectReport
      */
     void updateAnnotatorById(@Param("report")CwProjectReport cwProjectReport);
+
+    void saveById(@Param("id")String id);
 }

+ 3 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectInfoMapper.xml

@@ -51,4 +51,7 @@
         on a.served_unit_id = cw.id
         where report_id = #{reportId} and a.del_flag = '0'
     </select>
+    <update id="saveById">
+        update cw_project_report_new_line set del_flag = '0' where id = #{id}
+    </update>
 </mapper>

+ 4 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectReport/mapper/xml/CwProjectReportMapper.xml

@@ -521,4 +521,8 @@
             business_objects = #{report.businessObjects}
         where id = #{report.id}
     </update>
+
+    <update id="saveById">
+        update cw_project_report set del_flag = '0' where id = #{id}
+    </update>
 </mapper>

+ 16 - 15
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/reportCancellApply/service/ReportCancellApplyService.java

@@ -192,7 +192,7 @@ public class ReportCancellApplyService extends ServiceImpl<ReportCancellApplyMap
             infoMapper.deleteById(report.getReportNewLineId());
             //删除新建行下的文件信息
             //删除work_attachment_id信息
-            attachmentMapper.deleteByAttachMnentId(report.getReportNewLineId());
+//            attachmentMapper.deleteByAttachMnentId(report.getReportNewLineId());
             //根据新建行id找到报告管理表id
             CwProjectInfoData newLineInfo = infoMapper.getNewLineInfoById(report.getReportNewLineId());
             if (StringUtils.isNotEmpty(newLineInfo.getReportId())){
@@ -313,21 +313,22 @@ public class ReportCancellApplyService extends ServiceImpl<ReportCancellApplyMap
 
     public ResponseEntity deleteByIds(String ids) {
         String idArray[] =ids.split(",");
-        //删除前先将报告文号给复原
+        //删除前先将报告文号以及相关信息给复原
         ArrayList<String> strings = Lists.newArrayList(idArray);
-//        for (int i=0;i<strings.size();i++){
-//            //修改新建行的del_flag为0,delete_sign为0
-//            ReportCancellApply cancellApply = applyMapper.selectById(strings.get(i));
-//            CwProjectInfoData infoData = infoMapper.getById(cancellApply.getReportNewLineId());
-//            infoData.setDelFlag(0);
-//            infoData.setDeleteSign("0");
-//            infoMapper.updateById(infoData);
-//            ReportInfoDto reportInfoDto = applyMapper.queryById(strings.get(i));
-//            cancelMapper.deleteByReportNo(reportInfoDto.getReportNo());
-//        }
-        //将报告文号报废表的对应的报告文号给删除
-
-        this.removeByIds (Lists.newArrayList (idArray));
+        strings.stream().forEach(cancId->{
+            // 根据作废数据id查询作废信息
+            ReportCancellApply byId = this.getById(cancId);
+            // 根据new_line表id复原新建行new_line表的信息
+            infoMapper.saveById(byId.getReportNewLineId());
+            // 根据new_line表id找到报告管理表id
+            CwProjectInfoData newLineInfo = infoMapper.getNewLineInfoById(byId.getReportNewLineId());
+            //根据报告管理表id复原报告管理表数据
+            reportMapper.saveById(newLineInfo.getReportId());
+            //存放报废报告号表中删除复原的数据(cw_project_report_cancel)根据报告文号
+            cancelMapper.deleteByReportNo(newLineInfo.getReportNo());
+        });
+        // 根据id删除作废表中的数据(cw_project_report_cancell_apply)(根据id批量删除)
+        this.removeByIds (strings);
         return ResponseEntity.ok ("删除成功");
     }