zhangyuewww 3 年之前
父节点
当前提交
2080d000c0

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

@@ -1183,10 +1183,8 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                 else if ("1".equals(warehouseInOutInfo.getInOutFlag()) && "2".equals(warehouseBaseInfo.getWarehouseType())) {
                     //临时库销售出库类型 且为自动创建的临时库时(采购报表进数据,销售报表也进数据)
                     if ("1".equals(warehouseInOutInfo.getInOutTypeKey()) && "1".equals(warehouseBaseInfo.getCreateType())) {
-                        //按出库重量结算
                         ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
                                 .eq("contract_no", warehouseBaseInfo.getWarehouseName())
-                                .eq("settlement_weight_method", "1")
                                 .eq("deliver_type", "1")
                                 .eq("delete_flag", "0"));
                         if (contractManagementInfo != null) {
@@ -1311,6 +1309,92 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
                             tranCarInfoService.updateById(tranCarInfo);
                         }
                     }
+                    //临时库移库出库类型 且为自动创建的临时库时进采购报表
+                    if ("3".equals(warehouseInOutInfo.getInOutTypeKey()) && "1".equals(warehouseBaseInfo.getCreateType())) {
+                        //按出库重量结算
+                        ContractManagementInfo contractManagementInfo = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                                .eq("contract_no", warehouseBaseInfo.getWarehouseName())
+                                .eq("settlement_weight_method", "1")
+                                .eq("deliver_type", "1")
+                                .eq("delete_flag", "0"));
+                        if (contractManagementInfo != null) {
+                            //现货采购入库报表
+                            StockPurchaseReceiptReport stockPurchaseReceiptReport = new StockPurchaseReceiptReport();
+                            stockPurchaseReceiptReport.setId(IdGenerator.generateUUID());
+                            stockPurchaseReceiptReport.setCompId(warehouseBaseInfo.getCompId());
+                            stockPurchaseReceiptReport.setWarehouseRecordId(warehouseInOutInfo.getId());
+                            stockPurchaseReceiptReport.setContractNo(contractManagementInfo.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.setSettlementWeight(warehouseInOutInfo.getNetWeight());
+                            stockPurchaseReceiptReport.setSettlementPrice(contractManagementInfo.getUnitContractPrice());
+                            if(contractManagementInfo.getUnitContractPrice()!=null) {
+                                stockPurchaseReceiptReport.setAmountIngPayable(warehouseInOutInfo.getNetWeight() *
+                                        (contractManagementInfo.getUnitContractPrice()));
+                            }
+                            stockPurchaseReceiptReport.setAmountEdPayable(0.0d);
+                            stockPurchaseReceiptReport.setAmountNotPayable(stockPurchaseReceiptReport.getAmountIngPayable());
+                            stockPurchaseReceiptReport.setStatusFlag(StatusEnum.FORM_REVIEWED.getFlag());
+                            stockPurchaseReceiptReport.setStatus(StatusEnum.FORM_REVIEWED.getName());
+                            stockPurchaseReceiptReportService.insert(stockPurchaseReceiptReport);
+                            boolean isStartWorkflow = org.apache.commons.lang3.StringUtils.isBlank(stockPurchaseReceiptReport.getWorkflowId());
+                            // 不是退回的单子
+                            if (isStartWorkflow) {
+                                Workflow workflow = workflowService
+                                        .findLatestWorkflowByBusinessCodeByApp(stockPurchaseReceiptReport.getCompId(), "STOCK-PROCUREMENT-RECEIPT-REPORT");
+                                // 没配置审核流程,直接结束并处理信息
+                                if (workflow == null) {
+                                    throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
+                                }
+                                // 开启审核流
+                                else {
+                                    // 设置状态 已提交审核
+                                    stockPurchaseReceiptReport.setWorkflowId(workflow.getId());
+                                    stockPurchaseReceiptReportService.updateById(stockPurchaseReceiptReport);
+                                    workflowService.startInstance(workflow.getId(), stockPurchaseReceiptReport.getId());
+                                }
+                            }
+                            // 退回的单子 再启用
+                            else {
+                                stockPurchaseReceiptReportService.updateById(stockPurchaseReceiptReport);
+                                workflowService.activateInstance(stockPurchaseReceiptReport.getWorkflowId(), stockPurchaseReceiptReport.getId());
+                            }
+                        }
+                        ContractManagementInfo contractManagementInfo1 = contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                                .eq("contract_no", contractManagementInfo.getContractNo()).eq("delete_flag","0"));
+                        if (contractManagementInfo1 == null) {
+                            throw new YException(YExceptionEnum.CONTRACT_NO_NOT_EXSITS_ERROR);
+                        }
+                        Wrapper wrapper = new EntityWrapper<TranCarInfo>()
+                                .eq("contract_no", warehouseInOutInfo.getContractNo())
+                                .eq("car_no", warehouseInOutInfo.getCarNo())
+                                .eq(TranCarInfo.QueryFiles.DELETE_FLAG, NumberConstant.CONSTANT0);
+                        if (warehouseInOutInfo.getTranCarNo() != null && !warehouseInOutInfo.getTranCarNo().isEmpty()) {
+                            wrapper.eq("tran_car_no", warehouseInOutInfo.getTranCarNo());
+                        }
+                        TranCarInfo tranCarInfo = tranCarInfoService.selectOne(wrapper);
+                        if (tranCarInfo != null) {
+                            //将发货数据同步到派车表
+                            tranCarInfo.setLoadNetWeight(warehouseInOutInfo.getNetWeight());
+                            if (warehouseInOutInfo.getAddressUrl()!=null) {
+                                tranCarInfo.setLoadPoundImg(warehouseInOutInfo.getAddressUrl());
+                            }
+                            tranCarInfo.setLoadingDate(warehouseInOutInfo.getInOutDate());
+                            tranCarInfo.setContractNo(warehouseInOutInfo.getContractNo());
+                            tranCarInfo.setStatus(StatusEnum.LOADED.getName());
+                            tranCarInfo.setStatusFlag(StatusEnum.LOADED.getFlag());
+                            if ("1".equals(tranCarInfo.getSubmit())) {
+                                throw new YException(YExceptionEnum.CARNO_SUBMITTED_ERROR);
+                            } else {
+                                tranCarInfo.setSubmit("1");
+                            }
+                            tranCarInfoService.updateById(tranCarInfo);
+                        }
+                    }
                     if (warehouseBaseInfo != null) {
                         //出库时打入成本
                         CostManagementInfo costManagementInfo = costManagementInfoService.selectOne(new EntityWrapper<CostManagementInfo>().eq("warehouse_id", warehouseInOutInfo.getBaseId())