zhangyuewww 2 лет назад
Родитель
Сommit
54f9f3d9cd

+ 31 - 3
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/SalesTransferInfoController.java

@@ -1,9 +1,10 @@
 package com.yh.saas.plugin.yiliangyiyun.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.yh.saas.plugin.yiliangyiyun.entity.SalesTransferInfo;
+import com.yh.saas.plugin.yiliangyiyun.service.ISalesTransferInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -16,6 +17,33 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/salesTransferInfo")
 public class SalesTransferInfoController {
+    @Autowired
+    private ISalesTransferInfoService salesTransferInfoService;
+    /**
+     * 销售转移
+     * @param salesTransferInfo
+     * @return
+     */
+    @PostMapping("/api/salesTransfer")
+    public String salesTransfer(@RequestBody SalesTransferInfo salesTransferInfo) {
+        return salesTransferInfoService.salesTransfer(salesTransferInfo);
+    }
+    /**
+     * 编辑
+     * @param salesTransferInfo
+     * @return
+     */
+    @PostMapping("/api/editInfo")
+    public String editInfo(@RequestBody SalesTransferInfo salesTransferInfo) {
+        return salesTransferInfoService.editInfo(salesTransferInfo);
+    }
+    /**
+     * 查看
+     */
+    @GetMapping("/getInfo")
+    public SalesTransferInfo getInfo(@RequestParam String id) {
+        return salesTransferInfoService.getInfo(id);
+    }
 
 }
 

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/ISalesTransferInfoService.java

@@ -13,4 +13,9 @@ import com.baomidou.mybatisplus.service.IService;
  */
 public interface ISalesTransferInfoService extends IService<SalesTransferInfo> {
 
+    String salesTransfer(SalesTransferInfo salesTransferInfo);
+
+    SalesTransferInfo getInfo(String id);
+
+    String editInfo(SalesTransferInfo salesTransferInfo);
 }

+ 143 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/SalesTransferInfoServiceImpl.java

@@ -1,10 +1,32 @@
 package com.yh.saas.plugin.yiliangyiyun.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.google.common.collect.Lists;
+import com.winsea.svc.base.base.entity.CommonStaff;
+import com.winsea.svc.base.base.service.ICommonStaffService;
+import com.winsea.svc.base.workflow.entity.Workflow;
+import com.yh.saas.common.support.util.IdGenerator;
+import com.yh.saas.plugin.base.service.ICommonBillOperateHisService;
+import com.yh.saas.plugin.yiliangyiyun.constant.NumberConstant;
+import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
 import com.yh.saas.plugin.yiliangyiyun.entity.SalesTransferInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.TranCarInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.TranTaskInfo;
+import com.yh.saas.plugin.yiliangyiyun.entity.WarehouseInOutInfo;
+import com.yh.saas.plugin.yiliangyiyun.exception.YException;
+import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
 import com.yh.saas.plugin.yiliangyiyun.mapper.SalesTransferInfoMapper;
-import com.yh.saas.plugin.yiliangyiyun.service.ISalesTransferInfoService;
+import com.yh.saas.plugin.yiliangyiyun.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -16,5 +38,125 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class SalesTransferInfoServiceImpl extends ServiceImpl<SalesTransferInfoMapper, SalesTransferInfo> implements ISalesTransferInfoService {
+    @Autowired
+    private IWarehouseInOutInfoService warehouseInOutInfoService;
+    @Autowired
+    private ITranCarInfoService tranCarInfoService;
+    @Autowired
+    private ITranTaskInfoService tranTaskInfoService;
+    @Autowired
+    private ICommonBillOperateHisService billOperateHisService;
+    @Autowired
+    private INewWorkflowService workflowService;
+    @Autowired
+    private ICommonStaffService staffService;
+
+    /**
+     * 销售转移
+     * @param salesTransferInfo
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String salesTransfer(SalesTransferInfo salesTransferInfo) {
+        //生成销售转移记录
+        salesTransferInfo.setId(IdGenerator.generateUUID());
+        List<WarehouseInOutInfo> warehouseInOutInfoList=salesTransferInfo.getWarehouseInOutInfoList();
+        for (WarehouseInOutInfo warehouseInOutInfo:warehouseInOutInfoList){
+            warehouseInOutInfo.setSalesTransferId(salesTransferInfo.getId());
+            //更新出库记录销售转移状态 审核中
+            warehouseInOutInfo.setSalesTransferStatus(StatusEnum.PURCHASE_REVIEWED.getName());
+            if (warehouseInOutInfo.getCarId()!=null) {
+                TranCarInfo tranCarInfo = tranCarInfoService.selectById(warehouseInOutInfo.getCarId());
+                tranCarInfo.setSalesTransferId(salesTransferInfo.getId());
+                TranTaskInfo tranTaskInfo=tranTaskInfoService.selectById(tranCarInfo.getInfoId());
+                tranCarInfo.setTranTaskOld(tranTaskInfo.getTaskNo());
+                tranCarInfo.setTranPriceOld(Float.valueOf(tranCarInfo.getTranPrice()));
+                tranCarInfoService.updateById(tranCarInfo);
+            }
+            //他运转到自运加车
+            else if(warehouseInOutInfo.getCarId()==null&&salesTransferInfo.getTranTaskNew()!=null){
+                TranCarInfo tranCarInfo = new TranCarInfo();
+                tranCarInfo.setId(IdGenerator.generateUUID());
+                tranCarInfo.setSalesTransferId(salesTransferInfo.getId());
+                tranCarInfo.setCompId(salesTransferInfo.getCompId());
+                tranCarInfo.setTranType("1");
+                tranCarInfo.setCarNo(warehouseInOutInfo.getCarNo());
+                tranCarInfo.setContractNo(salesTransferInfo.getContractNo());
+                tranCarInfo.setStatusFlag(StatusEnum.LOADED.getFlag());
+                tranCarInfo.setStatus(StatusEnum.LOADED.getName());
+                warehouseInOutInfo.setCarId(tranCarInfo.getId());
+                tranCarInfoService.insert(tranCarInfo);
+            }
+            warehouseInOutInfoService.updateById(warehouseInOutInfo);
+
+        }
+        this.insert(salesTransferInfo);
+        // 插入操作历史
+        String staffName = this.billOperateHisService.getStaffAndName();
+        // 插入操作历史
+        this.billOperateHisService.saveBillOperateHis(salesTransferInfo.getId(), NumberConstant.EXPENSE_MANAGEMENT, staffName, null,
+                "销售转移", null, "");
+        boolean isStartWorkflow = StringUtils.isBlank(salesTransferInfo.getWorkflowId());
+        // 不是退回的单子
+        if (isStartWorkflow) {
+            Workflow workflow = workflowService
+                    .findLatestWorkflowByBusinessCodeByApp(salesTransferInfo.getCompId(), "WAREHOUSING-XSZY-APPROVE");
+            // 没配置审核流程,直接结束并处理信息
+            if (workflow == null) {
+                throw new YException(YExceptionEnum.PURCHASE_ORDER_ERROR);
+            }
+            // 开启审核流
+            else {
+                // 设置状态 已提交审核
+                salesTransferInfo.setWorkflowId(workflow.getId());
+                this.updateById(salesTransferInfo);
+                workflowService.startInstance(workflow.getId(), salesTransferInfo.getId());
+            }
+        }
+        // 退回的单子 再启用
+        else {
+            this.updateById(salesTransferInfo);
+            workflowService.activateInstance(salesTransferInfo.getWorkflowId(), salesTransferInfo.getId());
+        }
+        return "ok";
+    }
+
+    /**
+     * 查看
+     * @param id
+     * @return
+     */
+    @Override
+    public SalesTransferInfo getInfo(String id) {
+        SalesTransferInfo salesTransferInfo=this.selectById(id);
+        if (salesTransferInfo.getCreateUserId() != null) {
+            CommonStaff commonStaff = staffService.getInfo(salesTransferInfo.getCreateUserId());
+            salesTransferInfo.setCreater(commonStaff.getStaffName());
+        }
+        if (StringUtils.isNotBlank(salesTransferInfo.getWorkflowId())) {
+            JSONObject jsonObject = workflowService.getActiveTask(Lists.newArrayList(salesTransferInfo.getWorkflowId()), salesTransferInfo.getId());
+            String taskId = jsonObject.getString("taskId");
+            salesTransferInfo.setTaskId(taskId);
+        }
+        List<TranCarInfo> tranCarInfoList = tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                .eq("sales_transfer_id", salesTransferInfo.getId()));
+        if (!CollectionUtils.isEmpty(tranCarInfoList)){
+            salesTransferInfo.setTranCarInfoList(tranCarInfoList);
+        }
+        return salesTransferInfo;
+    }
+
+    @Override
+    public String editInfo(SalesTransferInfo salesTransferInfo) {
+        List<TranCarInfo> tranCarInfoList=salesTransferInfo.getTranCarInfoList();
+        if (!CollectionUtils.isEmpty(tranCarInfoList)) {
+            tranCarInfoList.forEach(tranCarInfo -> {
+                tranCarInfoService.updateById(tranCarInfo);
+            });
+        }
+        this.updateById(salesTransferInfo);
+        return "ok";
+    }
 
 }

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

@@ -84,7 +84,7 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
     @Autowired
     private INoticeTaskService noticeTaskService;
     @Autowired
-    private INewWorkflowService workflowService;
+    private ISalesTransferInfoService salesTransferInfoService;
     @Autowired
     private ICommonStaffService staffService;
     @Autowired
@@ -2729,6 +2729,14 @@ public class WarehouseInOutInfoServiceImpl extends ServiceImpl<WarehouseInOutInf
         // 查询记录总数
         Integer dataCount = baseMapper.getCountByCondition(pageView);
         List<WarehouseInOutInfo> dataList = baseMapper.getListByCondition(pageView);
+        if (!CollectionUtils.isEmpty(dataList)){
+            for (WarehouseInOutInfo warehouseInOutInfo1:dataList){
+                if ("审核中".equals(warehouseInOutInfo1.getSalesTransferStatus())){
+                    SalesTransferInfo salesTransferInfo=salesTransferInfoService.selectById(warehouseInOutInfo1.getSalesTransferId());
+                    warehouseInOutInfo1.setSalesTransferStatus(salesTransferInfo.getApproveStatus());
+                }
+            }
+        }
         Page<WarehouseInOutInfo> page = new Page<>();
         page.setRecords(dataList == null ? Lists.newArrayList() : dataList);
         page.setTotal(dataCount == null ? 0 : dataCount);

+ 220 - 8
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/workflow/SalesTransferInfoListener.java

@@ -1,17 +1,18 @@
 package com.yh.saas.plugin.yiliangyiyun.workflow;
 
-import com.winsea.svc.base.base.service.IAuditHistoryService;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.yh.saas.common.support.util.IdGenerator;
 import com.yh.saas.common.support.workflow.AbstractWorkflowTaskListener;
 import com.yh.saas.common.support.workflow.annotation.WorkflowTaskListener;
 import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
-import com.yh.saas.plugin.yiliangyiyun.entity.PurchasePrice;
-import com.yh.saas.plugin.yiliangyiyun.entity.SalesTransferInfo;
-import com.yh.saas.plugin.yiliangyiyun.entity.StatusRecord;
-import com.yh.saas.plugin.yiliangyiyun.mapper.CommonUserMapper;
+import com.yh.saas.plugin.yiliangyiyun.entity.*;
 import com.yh.saas.plugin.yiliangyiyun.mapper.StatusRecordMapper;
-import com.yh.saas.plugin.yiliangyiyun.service.IPurchasePriceService;
-import com.yh.saas.plugin.yiliangyiyun.service.ISalesTransferInfoService;
+import com.yh.saas.plugin.yiliangyiyun.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
 
 @WorkflowTaskListener(name = "仓库管理", group = "销售转移")
 public class SalesTransferInfoListener extends AbstractWorkflowTaskListener {
@@ -22,8 +23,29 @@ public class SalesTransferInfoListener extends AbstractWorkflowTaskListener {
     private ISalesTransferInfoService salesTransferInfoService;
     @Autowired
     private StatusRecordMapper statusRecordMapper;
+    @Autowired
+    private IWarehouseInOutInfoService warehouseInOutInfoService;
+    @Autowired
+    private ITranCarInfoService tranCarInfoService;
+    @Autowired
+    private ITranTaskInfoService tranTaskInfoService;
+    @Autowired
+    private ITranProcessInfoService tranProcessInfoService;
+    @Autowired
+    private IWeighingManagementService weighingManagementService;
+    @Autowired
+    private IQualityInspectionManagementService qualityInspectionManagementService;
+    @Autowired
+    private ITranSettlementReportService tranSettlementReportService;
+    @Autowired
+    private IStockSaleReceiptReportService stockSaleReceiptReportService;
+    @Autowired
+    private IContractManagementInfoService contractManagementInfoService;
+    @Autowired
+    private IInOutWarehouseTaskService inOutWarehouseTaskService;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void handleStatusChanged(String businessKey, String status, String statusEn, boolean processIsEnd) {
         SalesTransferInfo salesTransferInfo = salesTransferInfoService.selectById(businessKey);
         StatusRecord statusRecord = new StatusRecord();
@@ -36,7 +58,182 @@ public class SalesTransferInfoListener extends AbstractWorkflowTaskListener {
             salesTransferInfo.setStatus(StatusEnum.ORDER_PASSED.getName());
             salesTransferInfo.setWorkflowId(null);
             salesTransferInfo.setApproveStatus(null);
-
+            List<WarehouseInOutInfo> warehouseInOutInfoList=warehouseInOutInfoService.selectList(new EntityWrapper<WarehouseInOutInfo>()
+                    .eq("sales_transfer_id",salesTransferInfo.getId()));
+            if (!CollectionUtils.isEmpty(warehouseInOutInfoList)){
+                Double contractPrice=0d;
+                //查询新合同单价
+                ContractManagementInfo contractManagementInfo=contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
+                        .eq("comp_id",salesTransferInfo.getCompId())
+                        .eq("contract_no",salesTransferInfo.getContractNoNew()));
+                if (contractManagementInfo!=null&&contractManagementInfo.getUnitContractPrice()!=null){
+                    contractPrice=contractManagementInfo.getUnitContractPrice();
+                }
+                //查询新运输任务
+                TranTaskInfo tranTaskInfo=tranTaskInfoService.selectOne(new EntityWrapper<TranTaskInfo>()
+                        .eq("comp_id",salesTransferInfo.getCompId())
+                        .eq("task_no",salesTransferInfo.getTranTaskNew()));
+                for (WarehouseInOutInfo warehouseInOutInfo:warehouseInOutInfoList){
+                    //更新出库记录销售转移状态 已通过
+                    warehouseInOutInfo.setSalesTransferStatus(StatusEnum.PURCHASE_COMPLETED.getName());
+                    warehouseInOutInfo.setInOutTaskNo(salesTransferInfo.getTaskNoNew());
+                    warehouseInOutInfo.setContractNo(salesTransferInfo.getContractNoNew());
+                    //减去原任务已完成量
+                    InOutWarehouseTask inOutWarehouseTask=inOutWarehouseTaskService.selectOne(new EntityWrapper<InOutWarehouseTask>()
+                            .eq("comp_id",salesTransferInfo.getCompId())
+                            .eq("in_out_task_no",salesTransferInfo.getTaskNo()));
+                    if (inOutWarehouseTask!=null){
+                        inOutWarehouseTask.setCompletedQuantity(inOutWarehouseTask.getCompletedQuantity()-warehouseInOutInfo.getNetWeight());
+                        inOutWarehouseTaskService.updateById(inOutWarehouseTask);
+                    }
+                    //加上新任务已完成量
+                    InOutWarehouseTask inOutWarehouseTask1=inOutWarehouseTaskService.selectOne(new EntityWrapper<InOutWarehouseTask>()
+                            .eq("comp_id",salesTransferInfo.getCompId())
+                            .eq("in_out_task_no",salesTransferInfo.getTaskNoNew()));
+                    if (inOutWarehouseTask1!=null){
+                        inOutWarehouseTask1.setCompletedQuantity(inOutWarehouseTask1.getCompletedQuantity()+warehouseInOutInfo.getNetWeight());
+                        inOutWarehouseTaskService.updateById(inOutWarehouseTask1);
+                    }
+                    //查询销售出库报表
+                    StockSaleReceiptReport stockSaleReceiptReport = stockSaleReceiptReportService.selectOne(new EntityWrapper<StockSaleReceiptReport>()
+                            .eq("warehouse_record_id",warehouseInOutInfo.getId())
+                            .eq("delete_flag","0"));
+                    if(stockSaleReceiptReport != null){
+                        stockSaleReceiptReport.setContractNo(salesTransferInfo.getContractNoNew());
+                        stockSaleReceiptReport.setSettlementPrice(contractPrice);
+                        stockSaleReceiptReport.setAmountIngReceivable(stockSaleReceiptReport.getSettlementPrice() * warehouseInOutInfo.getNetWeight());
+                        stockSaleReceiptReport.setAmountNotReceivable(stockSaleReceiptReport.getAmountIngReceivable());
+                        stockSaleReceiptReportService.updateById(stockSaleReceiptReport);
+                    }
+                    //查询检斤信息
+                    WeighingManagement weighingManagement = weighingManagementService.selectOne(new EntityWrapper<WeighingManagement>()
+                            .eq("warehouse_in_out_id",warehouseInOutInfo.getId())
+                            .eq("delete_flag","0"));
+                    if (weighingManagement != null){
+                        weighingManagement.setInOutTaskNo(salesTransferInfo.getTaskNoNew());
+                        weighingManagement.setContractNo(salesTransferInfo.getContractNoNew());
+                        weighingManagement.setContractPrice(Float.valueOf(String.valueOf(contractPrice)));
+                        weighingManagementService.updateById(weighingManagement);
+                        //查询质检信息
+                        QualityInspectionManagement qualityInspectionManagement = qualityInspectionManagementService.selectOne(new EntityWrapper<QualityInspectionManagement>()
+                                .eq("relation_id",weighingManagement.getRelationId())
+                                .eq("delete_flag","0"));
+                        if (qualityInspectionManagement != null){
+                            qualityInspectionManagement.setInOutTaskNo(salesTransferInfo.getTaskNoNew());
+                            qualityInspectionManagement.setContractNo(salesTransferInfo.getContractNoNew());
+                            qualityInspectionManagementService.updateById(qualityInspectionManagement);
+                        }
+                    }
+                    //自运
+                    if (warehouseInOutInfo.getCarId()!=null){
+                        TranCarInfo tranCarInfo = tranCarInfoService.selectById(warehouseInOutInfo.getCarId());
+                        String tranCarNo = "";
+                        List<TranCarInfo> tranCarInfoList = tranCarInfoService.selectList(new EntityWrapper<TranCarInfo>()
+                                .eq("info_id", tranTaskInfo.getId())
+                                .eq("tran_type", "1"));
+                        if ((tranCarInfoList.size() + 1) < 10) {
+                            tranCarNo = "C00" + (tranCarInfoList.size() + 1);
+                        } else if (tranCarInfoList.size() + 1 < 100) {
+                            tranCarNo = "C0" + (tranCarInfoList.size() + 1);
+                        } else {
+                            tranCarNo = "C" + (tranCarInfoList.size() + 1);
+                        }
+                        tranCarInfo.setTranCarNo(tranCarNo);
+                        tranCarInfo.setInfoId(tranTaskInfo.getId());
+                        tranCarInfo.setLoadNetWeight(Float.valueOf(String.valueOf(warehouseInOutInfo.getNetWeight())));
+                        tranCarInfo.setContractNo(salesTransferInfo.getContractNoNew());
+                        warehouseInOutInfo.setTranCarNo(tranCarNo);
+                        if (tranTaskInfo!=null){
+                            //查询新运输阶段
+                            TranProcessInfo tranProcessInfo=tranProcessInfoService.selectOne(new EntityWrapper<TranProcessInfo>().eq("info_id",tranTaskInfo.getId()));
+                            tranCarInfo.setProcessId(tranProcessInfo.getId());
+                            tranCarInfo.setStatusFlag(StatusEnum.LOADED.getFlag());
+                            tranCarInfo.setStatus(StatusEnum.LOADED.getName());
+                            tranCarInfoService.updateById(tranCarInfo);
+                            TranSettlementReport tranSettlementReport = tranSettlementReportService.selectOne(new EntityWrapper<TranSettlementReport>()
+                                    .eq("car_id", tranCarInfo.getId()));
+                            if (tranSettlementReport != null) {
+                                tranSettlementReport.setContractNo(salesTransferInfo.getContractNoNew());
+                                tranSettlementReport.setTranCarNo(tranCarNo);
+                                tranSettlementReport.setTaskNo(tranTaskInfo.getTaskNo());
+                                tranSettlementReport.setProcessNo(tranProcessInfo.getProcessNo());
+                                tranSettlementReport.setGrainPrice(tranProcessInfo.getGoodsValue());
+                                tranSettlementReport.setBillingMethod(tranCarInfo.getBillingMethod());
+                                //重新卸车
+                                tranSettlementReport.setUnloadingWeight(0f);
+                                tranSettlementReport.setServiceCharge(20d);
+                                tranSettlementReport.setTransportPrice(Float.valueOf(tranCarInfo.getTranPrice()));
+                                tranSettlementReport.setSettlementPrice(Double.valueOf(tranCarInfo.getTranPrice()));
+                                //按吨计费
+                                if("1".equals(tranSettlementReport.getBillingMethod())) {
+                                    //应付=单价x结算重量
+                                    tranSettlementReport.setAmountIngPayable(tranSettlementReport.getTransportPrice() * tranSettlementReport.getSettlementWeight());
+                                }
+                                //按车
+                                else{
+                                    //应付
+                                    tranSettlementReport.setAmountIngPayable(tranSettlementReport.getTransportPrice());
+                                }
+                                //实付金额
+                                tranSettlementReport.setAmountActuallyPaid(tranSettlementReport.getAmountIngPayable()
+                                        - tranSettlementReport.getServiceCharge());
+                                //税点
+                                tranSettlementReport.setTaxPoint(tranSettlementReport.getAmountActuallyPaid() / 0.946 * 0.054);
+                                //合计应付
+                                tranSettlementReport.setTotalPayable(tranSettlementReport.getAmountActuallyPaid() + tranSettlementReport.getTaxPoint());
+                                //未付
+                                tranSettlementReport.setAmountNotPayable(Float.valueOf(String.valueOf(tranSettlementReport.getTotalPayable())));
+                                tranSettlementReportService.updateById(tranSettlementReport);
+                            } else {
+                                //生成汽运报表
+                                TranSettlementReport tranSettlementReport1 = new TranSettlementReport();
+                                tranSettlementReport1.setCompId(tranTaskInfo.getCompId());
+                                tranSettlementReport1.setCarId(tranCarInfo.getId());
+                                tranSettlementReport1.setId(IdGenerator.generateUUID());
+                                tranSettlementReport1.setTranType("汽运");
+                                tranSettlementReport1.setTranTypeKey("1");
+                                tranSettlementReport1.setStartAddress(tranTaskInfo.getSendWarehouse());
+                                tranSettlementReport1.setTaskNo(tranTaskInfo.getTaskNo());
+                                tranSettlementReport1.setCarNo(tranCarInfo.getCarNo());
+                                tranSettlementReport1.setContractNo(salesTransferInfo.getContractNoNew());
+                                tranSettlementReport1.setGrainPrice(tranProcessInfo.getGoodsValue());
+                                tranSettlementReport1.setProcessNo(tranProcessInfo.getProcessNo());
+                                tranSettlementReport1.setSettlementWeight(tranCarInfo.getLoadNetWeight());
+                                tranSettlementReport1.setServiceCharge(20d);
+                                tranSettlementReport1.setBillingMethod(tranCarInfo.getBillingMethod());
+                                tranSettlementReport1.setTransportPrice(Float.valueOf(tranCarInfo.getTranPrice()));
+                                tranSettlementReport1.setSettlementPrice(Double.valueOf(tranCarInfo.getTranPrice()));
+                                //按吨计费
+                                if("1".equals(tranSettlementReport1.getBillingMethod())) {
+                                    //应付=单价x结算重量
+                                    tranSettlementReport1.setAmountIngPayable(tranSettlementReport1.getTransportPrice() * tranSettlementReport1.getSettlementWeight());
+                                }
+                                //按车
+                                else{
+                                    //应付
+                                    tranSettlementReport1.setAmountIngPayable(tranSettlementReport1.getTransportPrice());
+                                }
+                                //实付金额
+                                tranSettlementReport1.setAmountActuallyPaid(tranSettlementReport1.getAmountIngPayable()
+                                        - tranSettlementReport1.getServiceCharge());
+                                //税点
+                                tranSettlementReport1.setTaxPoint(tranSettlementReport1.getAmountActuallyPaid() / 0.946 * 0.054);
+                                //合计应付
+                                tranSettlementReport1.setTotalPayable(tranSettlementReport1.getAmountActuallyPaid() + tranSettlementReport1.getTaxPoint());
+                                //未付
+                                tranSettlementReport1.setAmountNotPayable(Float.valueOf(String.valueOf(tranSettlementReport1.getTotalPayable())));
+                                tranSettlementReport1.setTranCarNo(tranCarInfo.getTranCarNo());
+                                tranSettlementReport1.setLoadingWeight(tranCarInfo.getLoadNetWeight());
+                                tranSettlementReport1.setLoadingImg(tranCarInfo.getLoadPoundImg());
+                                tranSettlementReport1.setStatusFlag(StatusEnum.PENDING_PAY.getFlag());
+                                tranSettlementReport1.setStatus(StatusEnum.PENDING_PAY.getName());
+                                tranSettlementReportService.insert(tranSettlementReport1);
+                            }
+                        }
+                    }
+                    warehouseInOutInfoService.updateById(warehouseInOutInfo);
+                }
+            }
             if(statusRecord1 != null){
                 statusRecord1.setStatus(StatusEnum.ORDER_PASSED.getName());
                 statusRecordMapper.updateById(statusRecord1);
@@ -70,6 +267,21 @@ public class SalesTransferInfoListener extends AbstractWorkflowTaskListener {
         }
         salesTransferInfo.setStatusFlag(StatusEnum.PURCHASE_FAILED.getFlag());
         salesTransferInfo.setStatus(StatusEnum.PURCHASE_FAILED.getName());
+        List<WarehouseInOutInfo> warehouseInOutInfoList=warehouseInOutInfoService.selectList(new EntityWrapper<WarehouseInOutInfo>()
+                .eq("sales_transfer_id",salesTransferInfo.getId()));
+        if (!CollectionUtils.isEmpty(warehouseInOutInfoList)){
+            for (WarehouseInOutInfo warehouseInOutInfo:warehouseInOutInfoList){
+                //更新出库记录销售转移状态 已驳回
+                warehouseInOutInfo.setSalesTransferStatus(StatusEnum.PURCHASE_FAILED.getName());
+                if (warehouseInOutInfo.getCarId()!=null){
+                    TranCarInfo tranCarInfo=tranCarInfoService.selectById(warehouseInOutInfo.getCarId());
+                    //将运输单价还原
+                    tranCarInfo.setTranPrice(String.valueOf(tranCarInfo.getTranPriceOld()));
+                    tranCarInfoService.updateById(tranCarInfo);
+                }
+                warehouseInOutInfoService.updateById(warehouseInOutInfo);
+            }
+        }
         salesTransferInfo.setApproveStatus(null);
         salesTransferInfoService.updateAllColumnById(salesTransferInfo);
         StatusRecord statusRecord = new StatusRecord();