ezhizao_zx 1 år sedan
förälder
incheckning
91a52f8008

+ 45 - 7
src/main/java/cn/ezhizao/project/business/recycleBin/controller/BizRecycleBinController.java

@@ -25,7 +25,6 @@ import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.Getter;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -86,12 +85,19 @@ public class BizRecycleBinController extends BaseController {
             "biz_housing_fund_confirm_detail", "biz_housing_fund_confirm_detail_employee", "biz_housing_fund_declare", "biz_housing_fund_declare_detail",
             "biz_social_security_confirm", "biz_social_security_confirm_detail", "biz_social_security_confirm_detail_employee",
             "biz_social_security_declare", "biz_social_security_declare_detail"};
+
     //订单关联的数据表
     @Getter
     private String[] ordertabs = {"biz_archive_input_detail", "biz_archive_input_detail_process", "biz_work_order", "biz_work_order_detail"
 
     };
 
+    //订单关联的数据表(根据worlOrderId筛选)
+    @Getter
+    private String[] workOrderTabs = {"biz_financial_individual_income_tax", "biz_financial_keep_account", "biz_financial_receive_ticket", "biz_financial_report_tax",
+            "biz_financial_salary"
+    };
+
     /**
      * 查询回收站列表
      */
@@ -209,7 +215,6 @@ public class BizRecycleBinController extends BaseController {
     @PreAuthorize("@ss.hasPermi('business:archive:order:bin')")
     @Log(title = "订单回收站", businessType = BusinessType.INSERT)
     @PostMapping("/order/{ids}")
-    @Transactional(rollbackFor = Exception.class)
     public AjaxResult addOrder(@PathVariable List<Long> ids) throws NoSuchFieldException, IllegalAccessException {
 
         // 判断是否可以删除
@@ -254,34 +259,67 @@ public class BizRecycleBinController extends BaseController {
 
         //遍历id查询订单数据数据并在回收站中插入
         for (Long id : ids) {
+            //订单明细
+            BizArchiveInputDetail bizArchiveInputDetail = new BizArchiveInputDetail();
+            bizArchiveInputDetail.setContractId(id);
+            BizArchiveInputDetail detail = bizArchiveInputDetailService.getDetail(bizArchiveInputDetail);
+
             BizArchiveInput archiveInput = new BizArchiveInput();
             BizRecycleBin bin = new BizRecycleBin();
             archiveInput = bizArchiveInputService.getById(id);
             BizCompany com = bizCompanyService.getById(archiveInput.getCompanyId());
             bin.setFromId(0L);
             bin.setSourceValue(com.getName());
+            bin.setArchiveCode(archiveInput.getContractNo());
             bin.setSourceTableName("biz_archive_input");
             bin.setSourceId(archiveInput.getId());
             setTenantId(bin);
             bizRecycleBinService.save(bin);
             //软删除订单关联子表数据
-            bizRecycleBinService.deleteArchiveData(id, ordertabs);
+            bizRecycleBinService.deleteArchiveData(id,ordertabs);
 
             //查询订单关联子表数据在回收站中插入
-            for (String tab : ordertabs) {
+            for (String tab:ordertabs) {
                 //查询客户关联子表id
-                Long childId = bizRecycleBinService.getArchiveById(id, tab);
+                Long childId=bizRecycleBinService.getArchiveById(id,tab);
                 //如果返回id不为空则将数据插入回收站
-                if (childId != null && !childId.equals("")) {
-                    BizRecycleBin rbiz = new BizRecycleBin();
+                if (childId!=null&& !childId.equals("")){
+                    BizRecycleBin rbiz =new BizRecycleBin();
                     rbiz.setFromId(bin.getId());
                     rbiz.setSourceValue(com.getName());
                     rbiz.setSourceTableName(tab);
+                    rbiz.setArchiveCode(archiveInput.getContractNo());
                     rbiz.setSourceId(childId);
                     setTenantId(rbiz);
                     bizRecycleBinService.save(rbiz);
                 }
             }
+
+            //合同工单
+            BizWorkOrderDetail workOrderDetaul = new BizWorkOrderDetail();
+            workOrderDetaul.setContractDetailId(detail.getId());
+            workOrderDetaul.setTaskTypeId(1L);
+            BizWorkOrderDetail orderDetail = bizWorkOrderDetailService.getDetail(workOrderDetaul);
+
+            if (orderDetail != null) {
+                //查询订单任务关联子表数据在回收站中插入
+                for (String tab : workOrderTabs) {
+                    //查询客户关联子表id
+                    Long childId = bizRecycleBinService.getWorkOrderDitailById(orderDetail.getWorkOrderId(), tab);
+                    //如果返回id不为空则将数据插入回收站
+                    if (childId != null && !childId.equals("")) {
+                        BizRecycleBin rbiz = new BizRecycleBin();
+                        rbiz.setFromId(bin.getId());
+                        rbiz.setSourceValue(com.getName());
+                        rbiz.setArchiveCode(archiveInput.getContractNo());
+                        rbiz.setSourceTableName(tab);
+                        rbiz.setSourceId(childId);
+                        setTenantId(rbiz);
+                        bizRecycleBinService.save(rbiz);
+                    }
+                }
+
+            }
         }
         return toAjax(bizArchiveInputService.removeBinByIds(ids));
     }

+ 5 - 0
src/main/java/cn/ezhizao/project/business/recycleBin/domain/BizRecycleBin.java

@@ -50,4 +50,9 @@ public class BizRecycleBin extends BaseEntity
     @ApiModelProperty(value = "是否还原")
     private Integer isReturn;
 
+    /** 合同编号 */
+    @Excel(name = "是否还原")
+    @ApiModelProperty(value = "是否还原")
+    private String archiveCode;
+
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/business/recycleBin/mapper/BizRecycleBinMapper.java

@@ -79,4 +79,8 @@ public interface BizRecycleBinMapper extends BaseMapper<BizRecycleBin>
     int restoreArchive(Long sourceId);
 
     void restoreArchiveData(Long id, String[] tabs);
+
+    Long getFinancialById(Long id, String tab);
+
+    Long getWorkOrderDitailById(Long workOrderId, String tab);
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/business/recycleBin/service/IBizRecycleBinService.java

@@ -53,4 +53,8 @@ public interface IBizRecycleBinService extends IService<BizRecycleBin>
     void deleteArchiveData(Long id, String[] tabs);
 
     Long getArchiveById(Long id, String tab);
+
+    Long getFinancialById(Long id, String tab);
+
+    Long getWorkOrderDitailById(Long workOrderId, String tab);
 }

+ 10 - 0
src/main/java/cn/ezhizao/project/business/recycleBin/service/impl/BizRecycleBinServiceImpl.java

@@ -112,6 +112,16 @@ public class BizRecycleBinServiceImpl extends ServiceImpl<BizRecycleBinMapper, B
         return bizRecycleBinMapper.getArchiveById(id, tab);
     }
 
+    @Override
+    public Long getFinancialById(Long id, String tab) {
+        return bizRecycleBinMapper.getFinancialById(id, tab);
+    }
+
+    @Override
+    public Long getWorkOrderDitailById(Long workOrderId, String tab) {
+        return bizRecycleBinMapper.getWorkOrderDitailById(workOrderId, tab);
+    }
+
     /**
      * 删除客户关联的子表数据
      *

+ 2 - 0
src/main/java/cn/ezhizao/project/business/workOrder/mapper/BizWorkOrderDetailMapper.java

@@ -26,4 +26,6 @@ public interface BizWorkOrderDetailMapper extends BaseMapper<BizWorkOrderDetail>
      * @return 删除结果
     */
     public int physicalDelete(BizWorkOrderDetail bizWorkOrderDetail);
+
+    BizWorkOrderDetail getDetail(BizWorkOrderDetail workOrderDetaul);
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/workOrder/service/IBizWorkOrderDetailService.java

@@ -27,4 +27,5 @@ public interface IBizWorkOrderDetailService extends IService<BizWorkOrderDetail>
      */
     public int physicalDelete(BizWorkOrderDetail bizWorkOrderDetail);
 
+    BizWorkOrderDetail getDetail(BizWorkOrderDetail workOrderDetaul);
 }

+ 8 - 1
src/main/java/cn/ezhizao/project/business/workOrder/service/impl/BizWorkOrderDetailServiceImpl.java

@@ -38,6 +38,13 @@ public class BizWorkOrderDetailServiceImpl  extends ServiceImpl<BizWorkOrderDeta
      * @return 删除结果
      */
     @Override
-    public int physicalDelete(BizWorkOrderDetail bizWorkOrderDetail){ return bizWorkOrderDetailMapper.physicalDelete(bizWorkOrderDetail); };
+    public int physicalDelete(BizWorkOrderDetail bizWorkOrderDetail){ return bizWorkOrderDetailMapper.physicalDelete(bizWorkOrderDetail); }
+
+    @Override
+    public BizWorkOrderDetail getDetail(BizWorkOrderDetail workOrderDetaul) {
+        return bizWorkOrderDetailMapper.getDetail(workOrderDetaul);
+    }
+
+    ;
 
 }

+ 6 - 0
src/main/resources/mybatis/business/BizRecycleBinMapper.xml

@@ -124,6 +124,12 @@
         WHERE t.contract_id = ${id}
     </select>
 
+    <select id="getWorkOrderDitailById" resultType="Long">
+        SELECT t.id
+        FROM ${tab} t
+        WHERE t.work_order_id = ${id}
+    </select>
+
     <select id="getChildIdsByParentId" resultMap="BizRecycleBinResult">
         <foreach collection="tabs" item="item" index="index" separator="union">
             SELECT t.id as source_id, #{item.tab} as source_table_name

+ 9 - 0
src/main/resources/mybatis/business/BizWorkOrderDetailMapper.xml

@@ -36,6 +36,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
     </select>
 
+    <select id="getDetail" parameterType="BizWorkOrderDetail" resultMap="BizWorkOrderDetailResult">
+        SELECT * FROM biz_work_order_detail
+        <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
+            deleted= 0
+            <if test="contractDetailId!= null "> AND contract_detail_id =#{contractDetailId}</if>
+            <if test="taskTypeId!= null "> AND task_type_id =#{taskTypeId}</if>
+        </trim>
+    </select>
+
     <select id="getAccountsReceivable" resultType="java.math.BigDecimal">
         SELECT true_amount FROM biz_archive_input
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">