|
@@ -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()));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|