瀏覽代碼

销售出库

yzc 1 年之前
父節點
當前提交
81f52a1e6a
共有 19 個文件被更改,包括 212 次插入47 次删除
  1. 46 0
      hx-mes/src/main/java/com/fjhx/mes/service/WmsServiceImpl.java
  2. 14 0
      hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractOutboundRecordsController.java
  3. 4 1
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractOutboundRecordsSelectDto.java
  4. 17 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractOutboundRecordsVo.java
  5. 10 0
      hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java
  6. 1 0
      hx-sale/src/main/java/com/fjhx/sale/flow/SalesOutboundApprovedFlow.java
  7. 6 0
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractOutboundRecordsMapper.java
  8. 4 4
      hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductMapper.java
  9. 4 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractOutboundRecordsService.java
  10. 8 4
      hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductService.java
  11. 5 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractOutboundInfoServiceImpl.java
  12. 37 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractOutboundRecordsServiceImpl.java
  13. 5 0
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java
  14. 5 6
      hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java
  15. 7 0
      hx-sale/src/main/resources/mapper/contract/ContractOutboundRecordsMapper.xml
  16. 16 3
      hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml
  17. 8 17
      hx-wms/src/main/java/com/fjhx/wms/service/WmsService.java
  18. 4 8
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java
  19. 11 4
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

+ 46 - 0
hx-mes/src/main/java/com/fjhx/mes/service/WmsServiceImpl.java

@@ -0,0 +1,46 @@
+package com.fjhx.mes.service;
+
+import com.fjhx.mes.entity.production.po.ProductionOrder;
+import com.fjhx.mes.service.production.ProduceOrderService;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.fjhx.sale.service.contract.ContractProductService;
+import com.fjhx.wms.service.WmsService;
+import com.ruoyi.common.core.domain.BasePo;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class WmsServiceImpl implements WmsService {
+    @Autowired
+    private ContractProductService contractProductService;
+    @Autowired
+    private ProduceOrderService produceOrderService;
+
+    @Override
+    public void updateProdStatus(Long id) {
+        int status = 10;//已出库
+        List<ContractProductVo> list = contractProductService.getList(IWrapper.<ContractProduct>getWrapper().eq(ContractProduct::getContractId, id));
+        for (ContractProductVo contractProductVo : list) {
+            BigDecimal outboundQuantity = contractProductVo.getOutboundQuantity();
+            BigDecimal quantity = contractProductVo.getQuantity();
+            if (outboundQuantity.compareTo(quantity) <= 0) {
+                status = 5;//出库中
+                break;
+            }
+        }
+        int finalStatus = status;
+        produceOrderService.update(q -> q
+                .eq(ProductionOrder::getContractId, id)
+                .set(ProductionOrder::getProduceStatus, finalStatus)
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+                .set(BasePo::getUpdateTime, new Date())
+        );
+    }
+}

+ 14 - 0
hx-sale/src/main/java/com/fjhx/sale/controller/contract/ContractOutboundRecordsController.java

@@ -1,5 +1,12 @@
 package com.fjhx.sale.controller.contract;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundRecordsSelectDto;
+import com.fjhx.sale.entity.contract.vo.ContractOutboundRecordsVo;
+import com.fjhx.sale.service.contract.ContractOutboundRecordsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -16,5 +23,12 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/contractOutboundRecords")
 public class ContractOutboundRecordsController {
 
+    @Autowired
+    private ContractOutboundRecordsService contractOutboundRecordsService;
+
+    @PostMapping("/page")
+    Page<ContractOutboundRecordsVo> getPage(@RequestBody ContractOutboundRecordsSelectDto dto) {
+        return contractOutboundRecordsService.getPage(dto);
+    }
 
 }

+ 4 - 1
hx-sale/src/main/java/com/fjhx/sale/entity/contract/dto/ContractOutboundRecordsSelectDto.java

@@ -13,5 +13,8 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ContractOutboundRecordsSelectDto extends BaseSelectDto {
-
+    /**
+     * 合同id
+     */
+    private Long contractId;
 }

+ 17 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractOutboundRecordsVo.java

@@ -41,4 +41,21 @@ public class ContractOutboundRecordsVo extends ContractOutboundRecords {
      */
     private String productColor;
 
+    /**
+     * 单位
+     */
+    private String productUnit;
+    /**
+     * 净重
+     */
+    private BigDecimal productNetWeight;
+    /**
+     * 正面纹路
+     */
+    private String productFrontalTexture;
+    /**
+     * 反面纹路
+     */
+    private String productReverseTexture;
+
 }

+ 10 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/contract/vo/ContractProductVo.java

@@ -249,4 +249,14 @@ public class ContractProductVo extends ContractProduct {
      */
     private Long companyId;
 
+    /**
+     * 销售出库数量
+     */
+    private BigDecimal saleOutboundQuantity;
+
+    /**
+     * 实际出库数量
+     */
+    private BigDecimal outboundQuantity;
+
 }

+ 1 - 0
hx-sale/src/main/java/com/fjhx/sale/flow/SalesOutboundApprovedFlow.java

@@ -33,6 +33,7 @@ public class SalesOutboundApprovedFlow extends FlowDelegate {
     @Override
     public Long start(Long flowId, JSONObject submitData) {
         ContractOutboundInfoDto dto = submitData.toJavaObject(ContractOutboundInfoDto.class);
+        dto.setId(null);
         dto.setFlowId(flowId);
         dto.setStatus(FlowStatusEnum1.UNDER_REVIEW.getKey());
         contractService.createOutboundInfo(dto);

+ 6 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractOutboundRecordsMapper.java

@@ -1,7 +1,11 @@
 package com.fjhx.sale.mapper.contract;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.sale.entity.contract.po.ContractOutboundRecords;
+import com.fjhx.sale.entity.contract.vo.ContractOutboundRecordsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -14,4 +18,6 @@ import com.fjhx.sale.entity.contract.po.ContractOutboundRecords;
  */
 public interface ContractOutboundRecordsMapper extends BaseMapper<ContractOutboundRecords> {
 
+    Page<ContractOutboundRecordsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractOutboundRecords> wrapper);
+
 }

+ 4 - 4
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductMapper.java

@@ -27,6 +27,9 @@ public interface ContractProductMapper extends BaseMapper<ContractProduct> {
      */
     Page<ContractProductVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ContractProduct> wrapper);
 
+    List<ContractProductVo> getList(@Param("ew") IWrapper<ContractProduct> wrapper);
+
+
     /**
      * 根据合同产品ID集合查询合同产品
      */
@@ -34,11 +37,8 @@ public interface ContractProductMapper extends BaseMapper<ContractProduct> {
 
     /**
      * 根据合同ID和客户ID查询未包装的产品
-     * @param customerId
-     * @param contractId
-     * @return
      */
-    List<ContractProductVo> getNoPackContractProductById(@Param("customerId")String customerId, @Param("contractIds")List<String> contractId);
+    List<ContractProductVo> getNoPackContractProductById(@Param("customerId") String customerId, @Param("contractIds") List<String> contractId);
 
     /**
      * ehsd交接单列表

+ 4 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractOutboundRecordsService.java

@@ -1,6 +1,9 @@
 package com.fjhx.sale.service.contract;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundRecordsSelectDto;
 import com.fjhx.sale.entity.contract.po.ContractOutboundRecords;
+import com.fjhx.sale.entity.contract.vo.ContractOutboundRecordsVo;
 import com.ruoyi.common.core.service.BaseService;
 
 
@@ -14,4 +17,5 @@ import com.ruoyi.common.core.service.BaseService;
  */
 public interface ContractOutboundRecordsService extends BaseService<ContractOutboundRecords> {
 
+    Page<ContractOutboundRecordsVo> getPage(ContractOutboundRecordsSelectDto dto);
 }

+ 8 - 4
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductService.java

@@ -1,11 +1,12 @@
 package com.fjhx.sale.service.contract;
 
-import com.fjhx.sale.entity.contract.po.ContractProduct;
-import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.sale.entity.contract.vo.ContractProductVo;
-import com.fjhx.sale.entity.contract.dto.ContractProductSelectDto;
 import com.fjhx.sale.entity.contract.dto.ContractProductDto;
+import com.fjhx.sale.entity.contract.dto.ContractProductSelectDto;
+import com.fjhx.sale.entity.contract.po.ContractProduct;
+import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.ruoyi.common.core.service.BaseService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
 
 import java.util.List;
 
@@ -50,8 +51,11 @@ public interface ContractProductService extends BaseService<ContractProduct> {
      */
     void delete(Long id);
 
+    List<ContractProductVo> getList(IWrapper<ContractProduct> wrapper);
+
     /**
      * 根据合同ID和客户ID查询未包装的产品
+     *
      * @param customerId
      * @return
      */

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractOutboundInfoServiceImpl.java

@@ -45,6 +45,11 @@ public class ContractOutboundInfoServiceImpl extends ServiceImpl<ContractOutboun
             item.setProductWidth(productInfo.getWidth());
             item.setProductHeight(productInfo.getHeight());
             item.setProductColor(productInfo.getColor());
+
+            item.setProductUnit(productInfo.getUnit());
+            item.setProductNetWeight(productInfo.getNetWeight());
+            item.setProductReverseTexture(productInfo.getReverseTexture());
+            item.setProductFrontalTexture(productInfo.getFrontalTexture());
         });
 
         detail.setOutboundRecordList(contractOutboundRecordsVos);

+ 37 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractOutboundRecordsServiceImpl.java

@@ -1,11 +1,20 @@
 package com.fjhx.sale.service.contract.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.sale.entity.contract.dto.ContractOutboundRecordsSelectDto;
 import com.fjhx.sale.entity.contract.po.ContractOutboundRecords;
+import com.fjhx.sale.entity.contract.vo.ContractOutboundRecordsVo;
 import com.fjhx.sale.mapper.contract.ContractOutboundRecordsMapper;
 import com.fjhx.sale.service.contract.ContractOutboundRecordsService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -17,5 +26,33 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ContractOutboundRecordsServiceImpl extends ServiceImpl<ContractOutboundRecordsMapper, ContractOutboundRecords> implements ContractOutboundRecordsService {
+    @Autowired
+    private ProductInfoService productInfoService;
+
+    @Override
+    public Page<ContractOutboundRecordsVo> getPage(ContractOutboundRecordsSelectDto dto) {
+        IWrapper<ContractOutboundRecords> wrapper = getWrapper();
+        wrapper.eq("cor.contract_id", dto.getContractId());
+        wrapper.in("coi.status", 10, 30);
+        Page<ContractOutboundRecordsVo> page = baseMapper.getPage(dto.getPage(), wrapper);
+        List<ContractOutboundRecordsVo> records = page.getRecords();
+        if (ObjectUtils.isEmpty(records)) {
+            return page;
+        }
+        //赋值产品信息
+        productInfoService.attributeAssign(records, ContractOutboundRecordsVo::getProductId, (item, productInfo) -> {
+            item.setProductCode(productInfo.getCustomCode());
+            item.setProductName(productInfo.getName());
+            item.setProductLength(productInfo.getLength());
+            item.setProductWidth(productInfo.getWidth());
+            item.setProductHeight(productInfo.getHeight());
+            item.setProductColor(productInfo.getColor());
 
+            item.setProductUnit(productInfo.getUnit());
+            item.setProductNetWeight(productInfo.getNetWeight());
+            item.setProductReverseTexture(productInfo.getReverseTexture());
+            item.setProductFrontalTexture(productInfo.getFrontalTexture());
+        });
+        return page;
+    }
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -188,6 +188,11 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         return page;
     }
 
+    @Override
+    public List<ContractProductVo> getList(IWrapper<ContractProduct> wrapper) {
+        return baseMapper.getList(wrapper);
+    }
+
     /**
      * 根据合同ID和客户ID查询未包装的产品
      *

+ 5 - 6
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -1198,9 +1198,8 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
 
     @Override
     public ContractVo detail(Long id) {
-        Contract contract = this.getById(id);
-        Assert.notEmpty(contract, "查询不到合同信息");
-        ContractVo result = BeanUtil.toBean(contract, ContractVo.class);
+        ContractVo result = baseMapper.detail(id);
+        Assert.notEmpty(result, "查询不到合同信息");
 
         //赋值模板名称
         ContractTemplate contractTemplate = contractTemplateService.getById(result.getContractTemplateId());
@@ -1224,8 +1223,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
             result.setShroffAccountName(accountManagement.getName());
         }
 
-        List<ContractProduct> contractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, id));
-        List<ContractProductVo> contractProductVos = BeanUtil.copyToList(contractProductList, ContractProductVo.class);
+        List<ContractProductVo> contractProductVos = contractProductService.getList(IWrapper.<ContractProduct>getWrapper().eq(ContractProduct::getContractId, id));
         List<Long> contractProductIds = contractProductVos.stream().map(ContractProduct::getId).collect(Collectors.toList());
 
 
@@ -3160,8 +3158,9 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         contractOutboundInfoService.save(dto);
         List<ContractOutboundRecords> outboundRecordList = dto.getOutboundRecordList();
         for (ContractOutboundRecords records : outboundRecordList) {
+            records.setId(null);
             Assert.notEmpty(records.getContractProductId(), "合同明细id不能为空!");
-            records.setContractId(records.getContractId());
+            records.setContractId(dto.getContractId());
             records.setRecordId(dto.getId());
             ContractProduct contractProduct = contractProductService.getById(records.getContractProductId());
             Assert.notEmpty(contractProduct, "查询不到合同明细信息!");

+ 7 - 0
hx-sale/src/main/resources/mapper/contract/ContractOutboundRecordsMapper.xml

@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.sale.mapper.contract.ContractOutboundRecordsMapper">
+
+    <select id="getPage" resultType="com.fjhx.sale.entity.contract.vo.ContractOutboundRecordsVo">
+        SELECT cor.*
+        FROM contract_outbound_records cor
+                 JOIN contract_outbound_info coi ON cor.record_id = coi.id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>

+ 16 - 3
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -214,9 +214,9 @@
             ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime,
             t2.create_user
         FROM
-            contract_product t1
-            LEFT JOIN contract t2 ON t1.contract_id = t2.id
-            <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
+        contract_product t1
+        LEFT JOIN contract t2 ON t1.contract_id = t2.id
+        <!-- 列表中只显示存在交接单的数据 获取到交接单时间最单的一条-->
         left join(SELECT business_id,create_time sampleTime from file_info GROUP BY business_id HAVING
         MAX(create_time)) t3 on
         t2.id = t3.business_id
@@ -224,5 +224,18 @@
         left join sys_user us on c.user_id = us.user_id
         ${ew.customSqlSegment}
     </select>
+    <select id="getList" resultType="com.fjhx.sale.entity.contract.vo.ContractProductVo">
+        SELECT (SELECT IFNULL(sum(cor.quantity), 0)
+                FROM contract_outbound_records cor
+                         JOIN contract_outbound_info coi ON cor.record_id = coi.id
+                WHERE cor.contract_product_id = cp.id
+                  AND coi.`status` IN (10, 30))       AS saleOutboundQuantity,
+               (SELECT IFNULL(sum(swd.receipt_quantity), 0)
+                FROM stock_wait_details swd
+                WHERE swd.contract_detail_id = cp.id) AS outboundQuantity
+            cp.*
+        FROM contract_product cp
+            ${ew.customSqlSegment}
+    </select>
 
 </mapper>

+ 8 - 17
hx-wms/src/main/java/com/fjhx/wms/service/WmsService.java

@@ -1,17 +1,8 @@
-//package com.fjhx.wms.service;
-//
-//import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
-//import com.fjhx.wms.entity.stock.dto.StockWaitDto;
-//
-//public interface WmsService {
-//
-//    /**
-//     * 销售订单出库
-//     */
-//    void outbound(StockWaitDetailsDto stockWaitDetailsDto);
-//
-//    /**
-//     * 销售订单出库多条
-//     */
-//    void outbounds(StockWaitDto stockWaitDto);
-//}
+package com.fjhx.wms.service;
+
+public interface WmsService {
+    /**
+     * 更新生产状态
+     */
+    void updateProdStatus(Long id);
+}

+ 4 - 8
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitDetailsServiceImpl.java

@@ -11,7 +11,6 @@ import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.wms.entity.stock.dto.StockWaitDetailsDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDetailsSelectDto;
 import com.fjhx.wms.entity.stock.dto.StockWaitDto;
-import com.fjhx.wms.entity.stock.emums.JournalType;
 import com.fjhx.wms.entity.stock.po.StockWait;
 import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
@@ -24,7 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -172,12 +174,6 @@ public class StockWaitDetailsServiceImpl extends ServiceImpl<StockWaitDetailsMap
         StockWait byId = stockWaitService.getById(stockWaitDto.getId());
         if (statusFlag == stockWaitDetailsList.size()) {
             byId.setStatus(2);//入库完成
-
-            //销售出库 修改生产订单为已出库
-            if (Objects.equals(JournalType.SALE_OUT, JournalType.getByDetailType(byId.getBusinessType()))) {
-                Long businessId = byId.getBusinessId();
-                baseMapper.updateOrderStatusByContractId(businessId, 10);
-            }
         } else {
             byId.setStatus(1);//部分入库
         }

+ 11 - 4
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -21,6 +21,7 @@ import com.fjhx.wms.entity.stock.vo.StockWaitDetailsVo;
 import com.fjhx.wms.entity.stock.vo.StockWaitVo;
 import com.fjhx.wms.entity.warehouse.po.Warehouse;
 import com.fjhx.wms.mapper.stock.StockWaitMapper;
+import com.fjhx.wms.service.WmsService;
 import com.fjhx.wms.service.stock.*;
 import com.fjhx.wms.service.warehouse.WarehouseService;
 import com.fjhx.wms.utils.CodeEnum;
@@ -34,10 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -69,6 +67,8 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
     private ProductStockInfoService productStockInfoService;
     @Autowired
     private CustomerService customerService;
+    @Autowired
+    private WmsService wmsService;
 
     @Override
     public Page<StockWaitVo> getPage(StockWaitSelectDto dto) {
@@ -281,6 +281,13 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
         stockService.changeStock(inOutBoList, warehouseId, journalType);
         //保存出入库明细
         stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+
+        //更新生产状态
+        //销售出库 修改生产订单为已出库
+        if (Objects.equals(JournalType.SALE_OUT, JournalType.getByDetailType(stockWait.getBusinessType()))) {
+            Long businessId = stockWait.getContractId();
+            wmsService.updateProdStatus(businessId);
+        }
     }
 
     @Override