Browse Source

修改生成现货采购入库统计报表

zxz 3 years ago
parent
commit
6fe56fe337

+ 4 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/StockPurchaseReceiptReport.java

@@ -89,6 +89,10 @@ public class StockPurchaseReceiptReport extends BaseModel<StockPurchaseReceiptRe
      * 未付金额(元/吨)
      */
     private Float amountNotPayable;
+    /**
+     * 扣款金额
+     */
+    private String deductionAmount;
     /**
      * 付款截图
      */

+ 4 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/WarehouseInOutInfo.java

@@ -121,6 +121,10 @@ public class WarehouseInOutInfo extends BaseModel<WarehouseInOutInfo> {
      * 经办人
      */
     private String agent;
+    /**
+     * 扣重(吨)
+     */
+    private Float deductionWeight;
     /**
      * 收货方
      */

+ 83 - 58
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehouseInOutInfoServiceImpl.java

@@ -31,6 +31,8 @@ import com.yh.saas.plugin.yiliangyiyun.service.IWarehouseInOutInfoService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.yh.saas.plugin.yiliangyiyun.util.CalculationUtil;
 import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
+import org.apache.poi.hssf.record.DConRefRecord;
+import org.omg.CORBA.FloatSeqHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -380,6 +382,9 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                     // 采购订单
                     PurchaseOrder purchaseOrder = purchaseOrderService.selectOne(new EntityWrapper<PurchaseOrder>().eq("contract_no", warehouseInOutInfo.getContractNo())
                             .eq("delete_flag", "0"));
+                    // 合同表
+                    ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>().eq("contract_no", warehouseInOutInfo.getContractNo())
+                            .eq("delete_flag", "0"));
 
                     //判断是否第一次提交
                     if (StringUtils.isEmpty(warehouseInOutDetail.getId())) {
@@ -416,68 +421,88 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             }
                         }
                     }
-                    // 采购入库统计
+                    StockPurchaseReceiptReport stockPurchaseReceiptReport = new StockPurchaseReceiptReport();
                     PurchaseReceiptReport purchaseReceiptReport = new PurchaseReceiptReport();
-                    purchaseReceiptReport.setId(IdGenerator.generateUUID());
-                    purchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
-                    purchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
-                    purchaseReceiptReport.setGoodsName(warehouseInOutInfo.getGoodsName());
-                    purchaseReceiptReport.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
-                    purchaseReceiptReport.setPositionNumber(warehouseInOutInfo.getBinNumber());
-                    purchaseReceiptReport.setCarNo(warehouseInOutInfo.getCarNo());
-                    purchaseReceiptReport.setTranCarNo(warehouseInOutInfo.getTranCarNo());
-                    purchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
-                    purchaseReceiptReport.setProtein(warehouseInOutDetail.getProtein());
-                    purchaseReceiptReport.setWaterContent(warehouseInOutDetail.getWaterContent());
-                    purchaseReceiptReport.setDeductionAmount(Float.valueOf(warehouseInOutInfo.getDeductionAmount()));
-                    purchaseReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
-                    purchaseReceiptReport.setDeductionItems(warehouseInOutInfo.getDeductionItems());
-                    purchaseReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
-                    purchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
-                    purchaseReceiptReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
-                    if (purchaseOrder != null) {
-                        purchaseReceiptReport.setUnitPrice(purchaseOrder.getUnitPrice());
-                        purchaseReceiptReport.setUnloadingCharge(purchaseOrder.getUnloadingCharge());
-                        purchaseReceiptReport.setInvoiceFee(purchaseOrder.getInvoiceFee());
-                        //期货
-                        if (purchaseOrder.getBasis()!=null){
-                            purchaseReceiptReport.setBasisPrice(purchaseOrder.getBasis());
-                            BigDecimal unitPrice = new BigDecimal(Float.toString(purchaseReceiptReport.getUnitPrice()));
-                            BigDecimal basis = new BigDecimal(Float.toString(purchaseReceiptReport.getBasisPrice()));
-                            BigDecimal unloadingCharge = new BigDecimal(Float.toString(purchaseReceiptReport.getUnloadingCharge()));
-                            BigDecimal invoiceFee = new BigDecimal(Float.toString(purchaseReceiptReport.getInvoiceFee()));
-                            BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
-                            purchaseReceiptReport.setSettlementPrice(unitPrice.add(basis).add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
-                        }
-                        //现货
-                        else {
-                            BigDecimal unitPrice = new BigDecimal(Float.toString(purchaseReceiptReport.getUnitPrice()));
-                            BigDecimal unloadingCharge = new BigDecimal(Float.toString(purchaseReceiptReport.getUnloadingCharge()));
-                            BigDecimal invoiceFee = new BigDecimal(Float.toString(purchaseReceiptReport.getInvoiceFee()));
-                            BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
-                            purchaseReceiptReport.setSettlementPrice(unitPrice.add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
-
-                        }
-                        purchaseReceiptReport.setCustomerName(purchaseOrder.getSeller());
-                        purchaseReceiptReport.setInvoiceType(purchaseOrder.getType());
-                        purchaseReceiptReport.setInvoiceTypeKey(purchaseOrder.getType());
-                        purchaseReceiptReport.setAmountIngPayable(CalculationUtil.mulToFloat(purchaseReceiptReport.getSettlementPrice(), purchaseReceiptReport.getNetWeight()));
-                        purchaseReceiptReport.setAmountEdPayable(0f);
-                        purchaseReceiptReport.setAmountNotPayable(purchaseReceiptReport.getAmountIngPayable());
-                        if (tranCarInfo != null) {
-                            //将到货数据同步到派车表
-                            tranCarInfo.setUnloadNetWeight(warehouseInOutInfo.getNetWeight());
-                            tranCarInfo.setUnloadPoundImg(warehouseInOutInfo.getAddressUrl());
-                            tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
-                            tranCarInfo.setDeductionItems(warehouseInOutInfo.getDeductionItems());
-                            tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
-                            tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
-                            if (purchaseOrder != null) {
-                                tranCarInfo.setSettlementPrice(purchaseReceiptReport.getSettlementPrice());
+                    // 期货采购入库统计
+                    if("2".equals(contractManagementInfo.getGoodsType())) {
+                        purchaseReceiptReport.setId(IdGenerator.generateUUID());
+                        purchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
+                        purchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        purchaseReceiptReport.setGoodsName(warehouseInOutInfo.getGoodsName());
+                        purchaseReceiptReport.setGoodsNameKey(warehouseInOutInfo.getGoodsNameKey());
+                        purchaseReceiptReport.setPositionNumber(warehouseInOutInfo.getBinNumber());
+                        purchaseReceiptReport.setCarNo(warehouseInOutInfo.getCarNo());
+                        purchaseReceiptReport.setTranCarNo(warehouseInOutInfo.getTranCarNo());
+                        purchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
+                        purchaseReceiptReport.setProtein(warehouseInOutDetail.getProtein());
+                        purchaseReceiptReport.setWaterContent(warehouseInOutDetail.getWaterContent());
+                        purchaseReceiptReport.setDeductionAmount(Float.valueOf(warehouseInOutInfo.getDeductionAmount()));
+                        purchaseReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        purchaseReceiptReport.setDeductionItems(warehouseInOutInfo.getDeductionItems());
+                        purchaseReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        purchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
+                        purchaseReceiptReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
+                        if (purchaseOrder != null) {
+                            purchaseReceiptReport.setUnitPrice(purchaseOrder.getUnitPrice());
+                            purchaseReceiptReport.setUnloadingCharge(purchaseOrder.getUnloadingCharge());
+                            purchaseReceiptReport.setInvoiceFee(purchaseOrder.getInvoiceFee());
+                            //期货
+                            if (purchaseOrder.getBasis() != null) {
+                                purchaseReceiptReport.setBasisPrice(purchaseOrder.getBasis());
+                                BigDecimal unitPrice = new BigDecimal(Float.toString(purchaseReceiptReport.getUnitPrice()));
+                                BigDecimal basis = new BigDecimal(Float.toString(purchaseReceiptReport.getBasisPrice()));
+                                BigDecimal unloadingCharge = new BigDecimal(Float.toString(purchaseReceiptReport.getUnloadingCharge()));
+                                BigDecimal invoiceFee = new BigDecimal(Float.toString(purchaseReceiptReport.getInvoiceFee()));
+                                BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
+                                purchaseReceiptReport.setSettlementPrice(unitPrice.add(basis).add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
+                            }
+//                        //现货
+//                        else {
+//                            BigDecimal unitPrice = new BigDecimal(Float.toString(purchaseReceiptReport.getUnitPrice()));
+//                            BigDecimal unloadingCharge = new BigDecimal(Float.toString(purchaseReceiptReport.getUnloadingCharge()));
+//                            BigDecimal invoiceFee = new BigDecimal(Float.toString(purchaseReceiptReport.getInvoiceFee()));
+//                            BigDecimal deductionAmount = new BigDecimal(Float.toString(purchaseReceiptReport.getDeductionAmount()));
+//                            purchaseReceiptReport.setSettlementPrice(unitPrice.add(unloadingCharge).add(invoiceFee).add(deductionAmount).floatValue());
+//
+//                        }
+                            purchaseReceiptReport.setCustomerName(purchaseOrder.getSeller());
+                            purchaseReceiptReport.setInvoiceType(purchaseOrder.getType());
+                            purchaseReceiptReport.setInvoiceTypeKey(purchaseOrder.getType());
+                            purchaseReceiptReport.setAmountIngPayable(CalculationUtil.mulToFloat(purchaseReceiptReport.getSettlementPrice(), purchaseReceiptReport.getNetWeight()));
+                            purchaseReceiptReport.setAmountEdPayable(0f);
+                            purchaseReceiptReport.setAmountNotPayable(purchaseReceiptReport.getAmountIngPayable());
+                            if (tranCarInfo != null) {
+                                //将到货数据同步到派车表
+                                tranCarInfo.setUnloadNetWeight(warehouseInOutInfo.getNetWeight());
+                                tranCarInfo.setUnloadPoundImg(warehouseInOutInfo.getAddressUrl());
+                                tranCarInfo.setDeductionAmount(warehouseInOutInfo.getDeductionAmount());
+                                tranCarInfo.setDeductionItems(warehouseInOutInfo.getDeductionItems());
+                                tranCarInfo.setStatus(StatusEnum.DELIVERED.getName());
+                                tranCarInfo.setStatusFlag(StatusEnum.DELIVERED.getFlag());
+                                if (purchaseOrder != null) {
+                                    tranCarInfo.setSettlementPrice(purchaseReceiptReport.getSettlementPrice());
+                                }
+                                tranCarInfoService.updateById(tranCarInfo);
                             }
-                            tranCarInfoService.updateById(tranCarInfo);
                         }
                     }
+                    //现货采购入库统计
+                    else{
+                        stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
+                        stockPurchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
+                        stockPurchaseReceiptReport.setContractNo(warehouseInOutInfo.getContractNo());
+                        stockPurchaseReceiptReport.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                        stockPurchaseReceiptReport.setCarNo(warehouseInOutInfo.getCarNo());
+                        stockPurchaseReceiptReport.setGrossWeight(warehouseInOutInfo.getGrossWeight());
+                        stockPurchaseReceiptReport.setTare(warehouseInOutInfo.getTare());
+                        stockPurchaseReceiptReport.setNetWeight(warehouseInOutInfo.getNetWeight());
+                        stockPurchaseReceiptReport.setWarehousingDate(warehouseInOutInfo.getInOutDate());
+                        stockPurchaseReceiptReport.setDeductionWeight(warehouseInOutInfo.getDeductionWeight());
+                        stockPurchaseReceiptReport.setSettlementWeight(warehouseInOutInfo.getNetWeight());
+                        stockPurchaseReceiptReport.setAmountIngPayable
+                                (warehouseInOutInfo.getNetWeight() *
+                                        (Float.valueOf(String.valueOf(contractManagementInfo.getUnitContractPrice())) - Float.valueOf(warehouseInOutInfo.getDeductionAmount())));
+                    }
 
                     // 客户确认
                     TranCarInfo tranCarInfo1 = tranCarInfoService.selectOne(new EntityWrapper<TranCarInfo>()