소스 검색

采购合同作废后,增加交接单数据回滚

caozj 1 년 전
부모
커밋
7f8bbf52dd

+ 10 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java

@@ -130,4 +130,14 @@ public class Purchase extends BasePo {
      * 业务来源ID (外销合同id)
      */
     private Long dataResourceId;
+
+    /**
+     * 0无发票  1增值税专用发票 2增值税普通发票
+     */
+    private String invoiceType;
+
+    /**
+     * 税率
+     */
+    private BigDecimal rate;
 }

+ 1 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -371,7 +371,7 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
         if (StringUtils.isEmpty(supplyId)) {
             throw new ServiceException("供应商ID不能为空");
         }
-        List<Purchase> list = this.list(Wrappers.<Purchase>query().lambda().eq(Purchase::getSupplyId, supplyId).eq(Purchase::getPurchaseStatus, PurchaseStatusEnum.PASS.getKey()));
+        List<Purchase> list = this.list(Wrappers.<Purchase>query().lambda().eq(Purchase::getSupplyId, supplyId).eq(Purchase::getPurchaseStatus, PurchaseStatusEnum.PASS.getKey()).ne(Purchase::getInvoiceType,"0"));
         List<Long> ids = list.stream().distinct().map(Purchase::getId).collect(Collectors.toList());
         List<InvoiceDetailsVo> invoiceDetailsList = invoiceDetailsService.getSumMoneyByPurchaseIds(ids);
         Map<Long, BigDecimal> invoiceMap = invoiceDetailsList.stream().collect(Collectors.toMap(InvoiceDetailsVo::getPurchaseId, InvoiceDetailsVo::getSumMoney));

+ 28 - 0
hx-sale/src/main/java/com/fjhx/sale/service/purchase/SalePurchaseService.java

@@ -0,0 +1,28 @@
+package com.fjhx.sale.service.purchase;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.purchase.dto.PurchaseDto;
+import com.fjhx.purchase.entity.purchase.dto.PurchaseSelectDto;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 采购 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-06
+ */
+public interface SalePurchaseService extends BaseService<Purchase> {
+    /**
+     * 采购作废
+     */
+    void cancellation(PurchaseDto purchaseDto);
+
+}

+ 119 - 0
hx-sale/src/main/java/com/fjhx/sale/service/purchase/impl/SalePurchaseServiceImpl.java

@@ -0,0 +1,119 @@
+package com.fjhx.sale.service.purchase.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.JSONWriter;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+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.constant.SourceConstant;
+import com.fjhx.common.entity.documentary.bo.DocumentaryData;
+import com.fjhx.common.enums.CodingRuleEnum;
+import com.fjhx.common.service.coding.CodingRuleService;
+import com.fjhx.common.service.documentary.GetDocumentaryBusinessTemplate;
+import com.fjhx.item.entity.product.vo.ProductInfoVo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
+import com.fjhx.purchase.entity.purchase.bo.PurchaseDocumentaryBo;
+import com.fjhx.purchase.entity.purchase.dto.PurchaseDto;
+import com.fjhx.purchase.entity.purchase.dto.PurchaseSelectDto;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.purchase.po.PurchasePayRecordDetail;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDocumentaryVo;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
+import com.fjhx.purchase.entity.subscribe.po.Subscribe;
+import com.fjhx.purchase.entity.subscribe.po.SubscribeDetail;
+import com.fjhx.purchase.mapper.purchase.PurchaseMapper;
+import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
+import com.fjhx.purchase.service.pay.PayDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseDetailService;
+import com.fjhx.purchase.service.purchase.PurchasePayRecordDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.purchase.service.subscribe.SubscribeDetailService;
+import com.fjhx.purchase.service.subscribe.SubscribeService;
+import com.fjhx.sale.entity.contract.po.Contract;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.entity.sample.po.SampleProduct;
+import com.fjhx.sale.service.contract.ContractProductService;
+import com.fjhx.sale.service.contract.ContractService;
+import com.fjhx.sale.service.purchase.SalePurchaseService;
+import com.fjhx.sale.service.sample.SampleProductService;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.fjhx.wms.entity.warehouse.po.Warehouse;
+import com.fjhx.wms.service.warehouse.WarehouseService;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 采购 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class SalePurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase>
+        implements SalePurchaseService {
+
+    @Autowired
+    private PurchaseService purchaseService;
+
+    @Autowired
+    private PurchaseDetailService purchaseDetailService;
+
+    @Autowired
+    private ContractProductService contractProductService;
+
+    @Autowired
+    private SampleProductService sampleProductService;
+
+    /**
+     * 采购作废
+     * @param purchaseDto
+     */
+    @Override
+    public void cancellation(PurchaseDto purchaseDto) {
+        if(purchaseDto.getPurchaseStatus()==PurchaseStatusEnum.CENCELLATION.getKey()){//如果采购合同=作废//归还交接单的数量
+            //查询出当前采购的明细
+            Purchase purchase = purchaseService.getById(purchaseDto.getId());
+            if(ObjectUtils.isNotEmpty(purchase)){
+                List<PurchaseDetail> purchaseDetailList = purchaseDetailService.list(Wrappers.<PurchaseDetail>query().lambda().eq(PurchaseDetail::getPurchaseId,purchase.getId()));
+                for(PurchaseDetail p:purchaseDetailList){
+                    if(p.getDataResource()==1){//业务来源 0自建  1外销合同采购 2:样品单
+                        //查询出外销合同
+                        ContractProduct contract = contractProductService.getById(p.getDataResourceId());
+                    }
+                    if(p.getDataResource()==2){
+
+                    }
+                }
+            }
+        }
+        this.updateById(purchaseDto);
+    }
+}