caozj 1 жил өмнө
parent
commit
9000b6dc6f

+ 57 - 9
hx-sale/src/main/java/com/fjhx/sale/service/pack/impl/PackServiceImpl.java

@@ -4,30 +4,37 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.service.coding.CodingRuleService;
+import com.fjhx.sale.entity.documents.po.Documents;
+import com.fjhx.sale.entity.documents.po.DocumentsPdf;
+import com.fjhx.sale.entity.documents.po.DocumentsProduct;
+import com.fjhx.sale.entity.documents.po.DocumentsTransport;
 import com.fjhx.sale.entity.pack.dto.PackDto;
 import com.fjhx.sale.entity.pack.dto.PackSelectDto;
-import com.fjhx.sale.entity.pack.po.Pack;
-import com.fjhx.sale.entity.pack.po.PackDetail;
-import com.fjhx.sale.entity.pack.po.PackDetailGoods;
-import com.fjhx.sale.entity.pack.po.PackDetailProduct;
+import com.fjhx.sale.entity.pack.po.*;
 import com.fjhx.sale.entity.pack.vo.PackVo;
 import com.fjhx.sale.mapper.pack.PackMapper;
-import com.fjhx.sale.service.pack.PackDetailGoodsService;
-import com.fjhx.sale.service.pack.PackDetailProductService;
-import com.fjhx.sale.service.pack.PackDetailService;
-import com.fjhx.sale.service.pack.PackService;
+import com.fjhx.sale.service.documents.DocumentsPdfService;
+import com.fjhx.sale.service.documents.DocumentsProductService;
+import com.fjhx.sale.service.documents.DocumentsService;
+import com.fjhx.sale.service.documents.DocumentsTransportService;
+import com.fjhx.sale.service.pack.*;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.swing.text.Document;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -51,6 +58,21 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements Pa
     private PackDetailGoodsService packDetailGoodsService;
 
     @Autowired
+    private PackShipmentService packShipmentService;
+
+    @Autowired
+    private DocumentsService documentsService;
+
+    @Autowired
+    private DocumentsProductService documentsProductService;
+
+    @Autowired
+    private DocumentsPdfService documentsPdfService;
+
+    @Autowired
+    private DocumentsTransportService documentsTransportService;
+
+    @Autowired
     private CodingRuleService codingRuleService;
 
     @Override
@@ -133,9 +155,35 @@ public class PackServiceImpl extends ServiceImpl<PackMapper, Pack> implements Pa
         this.updateById(packDto);
     }
 
+    /**
+     * 删除装箱
+     * @param id
+     */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void delete(Long id) {
-        this.removeById(id);
+        this.removeById(id);//删除装箱
+        List<PackDetail> packDetailList = packDetailService.list(Wrappers.<PackDetail>query().lambda().eq(PackDetail::getPackId,id));
+        if(CollectionUtils.isEmpty(packDetailList)){
+            throw new ServiceException("删除失败,装箱明细数据异常");
+        }
+        List<Long> detailIds = packDetailList.stream().map(PackDetail::getId).collect(Collectors.toList());
+        packDetailService.remove(Wrappers.<PackDetail>query().lambda().in(PackDetail::getId,detailIds));
+        packDetailProductService.remove(Wrappers.<PackDetailProduct>query().lambda().in(PackDetailProduct::getPackDetailId,detailIds));
+        packDetailGoodsService.remove(Wrappers.<PackDetailGoods>query().lambda().in(PackDetailGoods::getPackDetailId,detailIds));
+        PackShipment packShipment = packShipmentService.getOne(Wrappers.<PackShipment>query().lambda().eq(PackShipment::getPackDetailIds,StringUtils.join(detailIds,",")).last("limit 1"));
+        if(ObjectUtils.isNotEmpty(packShipment)){//已出货
+            packShipmentService.removeById(packShipment.getId());
+            //查询是否单证
+            Documents documents = documentsService.getOne(Wrappers.<Documents>query().lambda().eq(Documents::getPackShipmentId,packShipment.getId()).last("limit 1"));
+            if(ObjectUtils.isNotEmpty(documents)){
+                //删除单证相关数据
+                documentsService.removeById(documents.getId());
+                documentsProductService.remove(Wrappers.<DocumentsProduct>query().lambda().eq(DocumentsProduct::getDocumentsId,documents.getId()));
+                documentsPdfService.remove(Wrappers.<DocumentsPdf>query().lambda().eq(DocumentsPdf::getDocumentId,documents.getId()));
+                documentsTransportService.remove(Wrappers.<DocumentsTransport>query().lambda().eq(DocumentsTransport::getDocumentsId,documents.getId()));
+            }
+        }
     }
 
 }