Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

1018653686@qq.com 1 an în urmă
părinte
comite
b0819c41a1
16 a modificat fișierele cu 451 adăugiri și 82 ștergeri
  1. 7 7
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProduceOrderController.java
  2. 64 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionSchedulingController.java
  3. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionSchedulingDto.java
  4. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionSchedulingSelectDto.java
  5. 45 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionScheduling.java
  6. 31 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionSchedulingVo.java
  7. 13 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskProgressVo.java
  8. 26 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionSchedulingMapper.java
  9. 4 4
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProduceOrderService.java
  10. 39 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionSchedulingService.java
  11. 21 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderDetailServiceImpl.java
  12. 41 28
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java
  13. 57 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionSchedulingServiceImpl.java
  14. 17 0
      hx-mes/src/main/resources/mapper/production/ProductionSchedulingMapper.xml
  15. 43 35
      hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseUpdateFlow.java
  16. 9 8
      hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

+ 7 - 7
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProduceOrderController.java

@@ -56,13 +56,13 @@ public class ProduceOrderController {
         return produceOrderService.getSchedulingList(produceOrderDto);
     }
 
-    /**
-     * 投产
-     */
-    @PostMapping("/putProduction")
-    public void putProduction(@RequestBody ProduceOrderSelectDto dto) {
-        produceOrderService.putProduction(dto);
-    }
+//    /**
+//     * 投产
+//     */
+//    @PostMapping("/putProduction")
+//    public void putProduction(@RequestBody ProduceOrderSelectDto dto) {
+//        produceOrderService.putProduction(dto);
+//    }
 
     /**
      * 投产

+ 64 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionSchedulingController.java

@@ -0,0 +1,64 @@
+package com.fjhx.mes.controller.production;
+
+import com.fjhx.mes.entity.production.dto.ProductionSchedulingDto;
+import com.fjhx.mes.entity.production.dto.ProductionSchedulingSelectDto;
+import com.fjhx.mes.entity.production.vo.ProductionSchedulingVo;
+import com.fjhx.mes.service.production.ProductionSchedulingService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+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;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产排程 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-02-03
+ */
+@RestController
+@RequestMapping("/productionScheduling")
+public class ProductionSchedulingController {
+
+    @Autowired
+    private ProductionSchedulingService productionSchedulingService;
+
+    /**
+     * 生产排程列表
+     */
+    @PostMapping("/listMap")
+    public Map<String, List<ProductionSchedulingVo>> listMap(@RequestBody ProductionSchedulingSelectDto dto) {
+        return productionSchedulingService.listMap(dto);
+    }
+
+    /**
+     * 生产排程新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductionSchedulingDto productionSchedulingDto) {
+        productionSchedulingService.add(productionSchedulingDto);
+    }
+
+    /**
+     * 生产排程编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductionSchedulingDto productionSchedulingDto) {
+        productionSchedulingService.edit(productionSchedulingDto);
+    }
+
+    /**
+     * 生产排程删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        productionSchedulingService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionSchedulingDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 生产排程新增编辑入参实体
+ *
+ * @author
+ * @since 2024-02-03
+ */
+@Getter
+@Setter
+public class ProductionSchedulingDto extends ProductionScheduling {
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionSchedulingSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 生产排程列表查询入参实体
+ *
+ * @author
+ * @since 2024-02-03
+ */
+@Getter
+@Setter
+public class ProductionSchedulingSelectDto extends BaseSelectDto {
+
+}

+ 45 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionScheduling.java

@@ -0,0 +1,45 @@
+package com.fjhx.mes.entity.production.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 生产排程
+ * </p>
+ *
+ * @author
+ * @since 2024-02-03
+ */
+@Getter
+@Setter
+@TableName("production_scheduling")
+public class ProductionScheduling extends BasePo {
+
+    /**
+     * 任务id
+     */
+    private Long taskId;
+
+    /**
+     * 工序id
+     */
+    private Long processesId;
+
+    /**
+     * 排程时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date schedulingDate;
+
+    /**
+     * 排程数量
+     */
+    private Integer quantity;
+
+}

+ 31 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionSchedulingVo.java

@@ -0,0 +1,31 @@
+package com.fjhx.mes.entity.production.vo;
+
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 生产排程列表查询返回值实体
+ *
+ * @author
+ * @since 2024-02-03
+ */
+@Getter
+@Setter
+public class ProductionSchedulingVo extends ProductionScheduling {
+
+    /**
+     * 工序名称
+     */
+    private String processesName;
+    /**
+     * 负载量
+     */
+    private Integer capacity;
+
+    /**
+     * 排程时间字符串
+     */
+    private String schedulingDateStr;
+
+}

+ 13 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskProgressVo.java

@@ -1,9 +1,12 @@
 package com.fjhx.mes.entity.production.vo;
 
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
 import com.fjhx.mes.entity.production.po.ProductionTaskProgress;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 生产任务进度列表查询返回值实体
  *
@@ -19,4 +22,14 @@ public class ProductionTaskProgressVo extends ProductionTaskProgress {
      */
     private String progressName;
 
+    /**
+     * 排程列表
+     */
+    private List<ProductionScheduling> schedulingList;
+
+    /**
+     * 排程总数
+     */
+    private Integer schedulingCount;
+
 }

+ 26 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionSchedulingMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.mes.mapper.production;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
+import com.fjhx.mes.entity.production.vo.ProductionSchedulingVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 生产排程 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-02-03
+ */
+public interface ProductionSchedulingMapper extends BaseMapper<ProductionScheduling> {
+
+    /**
+     * 排程合并数量
+     */
+    List<ProductionSchedulingVo> listSumQuantity(@Param("ew") IWrapper<ProductionScheduling> wrapper);
+
+}

+ 4 - 4
hx-mes/src/main/java/com/fjhx/mes/service/production/ProduceOrderService.java

@@ -35,10 +35,10 @@ public interface ProduceOrderService extends BaseService<ProductionOrder> {
      */
     List<ProductionOrderVo> getSchedulingList(ProduceOrderSelectDto dto);
 
-    /**
-     * 投产
-     */
-    void putProduction(ProduceOrderSelectDto dto);
+//    /**
+//     * 投产
+//     */
+//    void putProduction(ProduceOrderSelectDto dto);
 
     /**
      * 修改投产时间

+ 39 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionSchedulingService.java

@@ -0,0 +1,39 @@
+package com.fjhx.mes.service.production;
+
+import com.fjhx.mes.entity.production.dto.ProductionSchedulingDto;
+import com.fjhx.mes.entity.production.dto.ProductionSchedulingSelectDto;
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
+import com.fjhx.mes.entity.production.vo.ProductionSchedulingVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 生产排程 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-02-03
+ */
+public interface ProductionSchedulingService extends BaseService<ProductionScheduling> {
+
+    Map<String, List<ProductionSchedulingVo>> listMap(ProductionSchedulingSelectDto dto);
+
+    /**
+     * 生产排程新增
+     */
+    void add(ProductionSchedulingDto productionSchedulingDto);
+
+    /**
+     * 生产排程编辑
+     */
+    void edit(ProductionSchedulingDto productionSchedulingDto);
+
+    /**
+     * 生产排程删除
+     */
+    void delete(Long id);
+
+}

+ 21 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderDetailServiceImpl.java

@@ -12,6 +12,7 @@ import com.fjhx.mes.entity.production.dto.ProductionOrderDetailDto;
 import com.fjhx.mes.entity.production.dto.ProductionTaskDetailDto;
 import com.fjhx.mes.entity.production.po.ProductionOrder;
 import com.fjhx.mes.entity.production.po.ProductionOrderDetail;
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
 import com.fjhx.mes.entity.production.po.ProductionTaskProgress;
 import com.fjhx.mes.entity.production.vo.ProductionOrderDetailVo;
 import com.fjhx.mes.entity.production.vo.ProductionTaskProgressVo;
@@ -19,6 +20,7 @@ import com.fjhx.mes.mapper.production.ProduceOrderDetailMapper;
 import com.fjhx.mes.mapper.production.ProductionTaskProgressMapper;
 import com.fjhx.mes.service.production.ProduceOrderDetailService;
 import com.fjhx.mes.service.production.ProduceOrderService;
+import com.fjhx.mes.service.production.ProductionSchedulingService;
 import com.fjhx.sale.entity.contract.po.ContractProductBom;
 import com.fjhx.sale.entity.contract.vo.ContractProductBomVo;
 import com.fjhx.sale.service.contract.ContractProductBomService;
@@ -61,6 +63,8 @@ public class ProduceOrderDetailServiceImpl extends ServiceImpl<ProduceOrderDetai
     private ProduceOrderService produceOrderService;
     @Autowired
     private ISysUserService sysUserService;
+    @Autowired
+    private ProductionSchedulingService productionSchedulingService;
 
     @Override
     public Page<ProductionOrderDetailVo> getPage(ProduceOrderDetailSelectDto dto) {
@@ -140,6 +144,23 @@ public class ProduceOrderDetailServiceImpl extends ServiceImpl<ProduceOrderDetai
         Map<Long, List<ProductionTaskProgressVo>> productionTaskProgressMap = productionTaskProgressList
                 .stream().collect(Collectors.groupingBy(ProductionTaskProgress::getTaskId));
 
+        //对进度列表赋值排程信息
+        List<ProductionScheduling> pShList = productionSchedulingService.list(q -> q.in(ProductionScheduling::getTaskId, tIds));
+        for (ProductionTaskProgressVo productionTaskProgressVo : productionTaskProgressList) {
+            List<ProductionScheduling> schedulingList = pShList.stream()
+                    .filter(item ->
+                            ObjectUtil.equals(item.getTaskId(), productionTaskProgressVo.getTaskId()) &&
+                                    ObjectUtil.equals(item.getProcessesId(), productionTaskProgressVo.getProcessesId())
+                    ).collect(Collectors.toList());
+            productionTaskProgressVo.setSchedulingList(schedulingList);
+
+            //排程数量求和
+            int schedulingCount = schedulingList.stream().map(ProductionScheduling::getQuantity).mapToInt(Integer::intValue).sum();
+            ;
+            productionTaskProgressVo.setSchedulingCount(schedulingCount);
+        }
+
+
         //获取生产公司信息
         List<Long> companyIds = records.stream().map(ProductionOrderDetail::getCompanyId).collect(Collectors.toList());
         Map<Long, String> companyNameMap = DeptUstil.getDeptNameMap(companyIds);

+ 41 - 28
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java

@@ -272,33 +272,33 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
         }
     }
 
-    /**
-     * 投产
-     */
-    @Override
-    @DSTransactional
-    public synchronized void putProduction(ProduceOrderSelectDto dto) {
-        Long orderId = dto.getId();
-        Date produceTime = dto.getProduceTime();
-
-        Assert.notEmpty(orderId, "投产id不能为空!");
-        Assert.notEmpty(produceTime, "投产时间不能为空!");
-
-        ProductionOrder productionOrder = this.getById(orderId);
-        Assert.notEmpty(productionOrder, "查询不到订单信息!");
-
-        if (ObjectUtil.isNotEmpty(productionOrder.getProduceTime())) {
-            throw new ServiceException("该订单已投产,请勿重复投产!!");
-        }
-
-        //生成待备料
-        createMaterialPreparation(productionOrder);
-
-        productionOrder.setProduceStatus(1);
-        productionOrder.setProduceTime(produceTime);
-
-        this.updateById(productionOrder);
-    }
+//    /**
+//     * 投产
+//     */
+//    @Override
+//    @DSTransactional
+//    public synchronized void putProduction(ProduceOrderSelectDto dto) {
+//        Long orderId = dto.getId();
+//        Date produceTime = dto.getProduceTime();
+//
+//        Assert.notEmpty(orderId, "投产id不能为空!");
+//        Assert.notEmpty(produceTime, "投产时间不能为空!");
+//
+//        ProductionOrder productionOrder = this.getById(orderId);
+//        Assert.notEmpty(productionOrder, "查询不到订单信息!");
+//
+//        if (ObjectUtil.isNotEmpty(productionOrder.getProduceTime())) {
+//            throw new ServiceException("该订单已投产,请勿重复投产!!");
+//        }
+//
+//        //生成待备料
+//        createMaterialPreparation(productionOrder);
+//
+//        productionOrder.setProduceStatus(1);
+//        productionOrder.setProduceTime(produceTime);
+//
+//        this.updateById(productionOrder);
+//    }
 
     /**
      * 修改投产时间
@@ -478,7 +478,7 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
 
     @DSTransactional
     @Override
-    public void deliveryConfirm(ProductionOrderDto dto) {
+    public synchronized void deliveryConfirm(ProductionOrderDto dto) {
         this.updateById(dto);
         Long id = dto.getId();
         ProductionOrder productionOrder = this.getById(id);
@@ -507,6 +507,19 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
 
             //创建生产任务
             createOrderDetails(productionOrder);
+
+            //投产
+            if (ObjectUtil.isNotEmpty(productionOrder.getProduceTime())) {
+                throw new ServiceException("该订单已投产,请勿重复投产!!");
+            }
+
+            //生成待备料
+            createMaterialPreparation(productionOrder);
+
+            productionOrder.setProduceStatus(1);
+            productionOrder.setProduceTime(new Date());//投产时间直接当前值
+
+            this.updateById(productionOrder);
         }
     }
 

+ 57 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionSchedulingServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.mes.service.production.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mes.entity.production.dto.ProductionSchedulingDto;
+import com.fjhx.mes.entity.production.dto.ProductionSchedulingSelectDto;
+import com.fjhx.mes.entity.production.po.ProductionScheduling;
+import com.fjhx.mes.entity.production.vo.ProductionSchedulingVo;
+import com.fjhx.mes.mapper.production.ProductionSchedulingMapper;
+import com.fjhx.mes.service.production.ProductionSchedulingService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 生产排程 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-02-03
+ */
+@Service
+public class ProductionSchedulingServiceImpl extends ServiceImpl<ProductionSchedulingMapper, ProductionScheduling> implements ProductionSchedulingService {
+
+    @Override
+    public Map<String, List<ProductionSchedulingVo>> listMap(ProductionSchedulingSelectDto dto) {
+        IWrapper<ProductionScheduling> wrapper = getWrapper();
+        //数据分组
+        wrapper.groupBy("ps.scheduling_date", "ps.processes_id");
+        //时间范围过滤
+        wrapper.ge("ps", ProductionScheduling::getSchedulingDate, dto.getBeginTime());
+        wrapper.le("ps", ProductionScheduling::getSchedulingDate, dto.getEndTime());
+        //排序
+        wrapper.orderByAsc("ps", ProductionScheduling::getSchedulingDate);
+        List<ProductionSchedulingVo> list = this.baseMapper.listSumQuantity(wrapper);
+        return list.stream().collect(Collectors.groupingBy(ProductionSchedulingVo::getSchedulingDateStr));
+    }
+
+    @Override
+    public void add(ProductionSchedulingDto productionSchedulingDto) {
+        this.save(productionSchedulingDto);
+    }
+
+    @Override
+    public void edit(ProductionSchedulingDto productionSchedulingDto) {
+        this.updateById(productionSchedulingDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 17 - 0
hx-mes/src/main/resources/mapper/production/ProductionSchedulingMapper.xml

@@ -0,0 +1,17 @@
+<?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.mes.mapper.production.ProductionSchedulingMapper">
+
+    <select id="listSumQuantity" resultType="com.fjhx.mes.entity.production.vo.ProductionSchedulingVo">
+        SELECT ps.scheduling_date,
+               DATE_FORMAT(ps.scheduling_date, '%Y-%m-%d') AS schedulingDateStr,
+               sum(ps.quantity)                            AS quantity,
+               ps.processes_id,
+               pp.`name`                                   AS processesName,
+               pp.capacity
+        FROM production_scheduling ps
+                 JOIN production_processes pp ON ps.processes_id = pp.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 43 - 35
hx-sale/src/main/java/com/fjhx/sale/flow/EhsdPurchaseUpdateFlow.java

@@ -12,14 +12,15 @@ import com.fjhx.flow.enums.FlowStatusEnum;
 import com.fjhx.item.enums.ProductAvailableRecordType;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
+import com.fjhx.sale.entity.arrival.po.Arrival;
 import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
 import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProject;
+import com.fjhx.sale.service.arrival.ArrivalService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseProjectService;
 import com.fjhx.sale.service.purchase.EhsdPurchaseService;
-import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.core.domain.BasePo;
@@ -53,6 +54,8 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
     private StockWaitDetailsService stockWaitDetailsService;
     @Autowired
     private StockWaitService stockWaitService;
+    @Autowired
+    private ArrivalService arrivalService;
 
     @Override
     public String getFlowKey() {
@@ -66,6 +69,7 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
     public Long start(Long flowId, JSONObject submitData) {
         EhsdPurchaseDto purchase = submitData.toJavaObject(EhsdPurchaseDto.class);
         Assert.notEmpty(purchase.getId(), "原采购订单id不能为空");
+
         //赋值原采购id 并 清空id
         purchase.setOldPurchaseId(purchase.getId());
         purchase.setId(null);
@@ -76,6 +80,11 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         //获取原采购id
         Long oldPurchaseId = purchase.getOldPurchaseId();
 
+        //存在到货不允许变更
+        if (arrivalService.count(q -> q.eq(Arrival::getPurchaseId, oldPurchaseId)) > 0) {
+            throw new ServiceException("该采购订单存在到货记录,禁止变更!");
+        }
+
         //判断合同是否在变更中,防止用户缓存导致重复变更
         EhsdPurchase oldPurchase = ehsdPurchaseService.getById(oldPurchaseId);
         Assert.notEmpty(oldPurchase, "查询不到原采购订单信息");
@@ -141,40 +150,39 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
         List<AvailableStockBo> availableStockBoList = new ArrayList<>();
 
         //旧数据处理
-        Long stockWaitId = null;
         for (EhsdPurchaseProduct oldPurchaseProduct : oldPurchaseProductList) {
             //新数量
             BigDecimal newQuantity = newQuantityMap.get(oldPurchaseProduct.getId());
-            //已入库数量
-            StockWaitDetails stockWaitDetails = stockWaitDetailsService.getOne(q -> q.eq(StockWaitDetails::getBusinessDetailsId, oldPurchaseProduct.getId()));
-            stockWaitId = stockWaitDetails.getStockWaitId();
+//            //已入库数量
+//            StockWaitDetails stockWaitDetails = stockWaitDetailsService.getOne(q -> q.eq(StockWaitDetails::getBusinessDetailsId, oldPurchaseProduct.getId()));
+//            stockWaitId = stockWaitDetails.getStockWaitId();
 
             //生成操作可用库存的实体
             AvailableStockBo availableStockBo = new AvailableStockBo();
             availableStockBo.setProductId(oldPurchaseProduct.getProductId());
             availableStockBo.setQuantity(oldPurchaseProduct.getQuantity());
             availableStockBo.setNewQuantity(newQuantity);
-            availableStockBo.setInStockQuantity(stockWaitDetails.getReceiptQuantity());
+            availableStockBo.setInStockQuantity(BigDecimal.ZERO);
 
             availableStockBoList.add(availableStockBo);
 
 
-            //操作待入库数据
-            if (ObjectUtils.isEmpty(newQuantity)) {
-                //原数据被删,检查已入库数量,>0禁止变更
-                stockWaitDetailsService.removeById(stockWaitDetails);
-            } else {
-                stockWaitDetails.setQuantity(newQuantity);
-                //计算状态
-                int status = stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) >= 0 ? 2 : 1;
-                if (stockWaitDetails.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0) {
-                    status = 0;
-                }
-                stockWaitDetails.setStatus(status);
-                stockWaitDetailsService.updateById(stockWaitDetails);
-
-                stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
-            }
+//            //操作待入库数据
+//            if (ObjectUtils.isEmpty(newQuantity)) {
+//                //原数据被删,检查已入库数量,>0禁止变更
+//                stockWaitDetailsService.removeById(stockWaitDetails);
+//            } else {
+//                stockWaitDetails.setQuantity(newQuantity);
+//                //计算状态
+//                int status = stockWaitDetails.getReceiptQuantity().compareTo(stockWaitDetails.getQuantity()) >= 0 ? 2 : 1;
+//                if (stockWaitDetails.getReceiptQuantity().compareTo(BigDecimal.ZERO) == 0) {
+//                    status = 0;
+//                }
+//                stockWaitDetails.setStatus(status);
+//                stockWaitDetailsService.updateById(stockWaitDetails);
+//
+//                stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
+//            }
         }
 
         //新添加的数据处理
@@ -191,19 +199,19 @@ public class EhsdPurchaseUpdateFlow extends FlowDelegate {
             availableStockBo.setInStockQuantity(null);
             availableStockBoList.add(availableStockBo);
 
-            //生成待入库
-            Assert.notEmpty(stockWaitId, "查询不到待入库信息!");
-            StockWaitDetails stockWaitDetails = new StockWaitDetails();
-            stockWaitDetails.setStockWaitId(stockWaitId);
-            stockWaitDetails.setBusinessDetailsId(newPurchaseProduct.getId());
-            stockWaitDetails.setPurchaseDetailId(newPurchaseProduct.getId());
-
-            stockWaitDetails.setProductId(newPurchaseProduct.getProductId());
-            stockWaitDetails.setQuantity(newPurchaseProduct.getQuantity());
-            stockWaitDetails.setStatus(0);
-            stockWaitDetailsService.save(stockWaitDetails);
-
-            stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
+//            //生成待入库
+//            Assert.notEmpty(stockWaitId, "查询不到待入库信息!");
+//            StockWaitDetails stockWaitDetails = new StockWaitDetails();
+//            stockWaitDetails.setStockWaitId(stockWaitId);
+//            stockWaitDetails.setBusinessDetailsId(newPurchaseProduct.getId());
+//            stockWaitDetails.setPurchaseDetailId(newPurchaseProduct.getId());
+//
+//            stockWaitDetails.setProductId(newPurchaseProduct.getProductId());
+//            stockWaitDetails.setQuantity(newPurchaseProduct.getQuantity());
+//            stockWaitDetails.setStatus(0);
+//            stockWaitDetailsService.save(stockWaitDetails);
+//
+//            stockWaitService.updateStatus(stockWaitDetails.getStockWaitId());
         }
 
 

+ 9 - 8
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockWaitServiceImpl.java

@@ -56,6 +56,15 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
     @Override
     public Page<StockWaitVo> getPage(StockWaitSelectDto dto) {
         IWrapper<StockWait> wrapper = getWrapper();
+
+        //权限过滤:待出入库-子公司看自己的,总公司看全部
+        Long companyId = SecurityUtils.getCompanyId();
+        if (!Objects.equals(companyId, 100L)) {
+            wrapper.eq("sw", StockWait::getCompanyId, companyId);
+        } else {
+            wrapper.eq("sw", StockWait::getCompanyId, dto.getCompanyId());
+        }
+
         //过滤入库/出库
         wrapper.eq(StockWait::getType, dto.getType());
         wrapper.eq("sw", StockWait::getBusinessType, dto.getBusinessType());
@@ -67,14 +76,6 @@ public class StockWaitServiceImpl extends ServiceImpl<StockWaitMapper, StockWait
             return page;
         }
 
-        //权限过滤:待出入库-子公司看自己的,总公司看全部
-        Long companyId = SecurityUtils.getCompanyId();
-        if (!Objects.equals(companyId, 100L)) {
-            wrapper.eq("sw", StockWait::getCompanyId, companyId);
-        } else {
-            wrapper.eq("sw", StockWait::getCompanyId, dto.getCompanyId());
-        }
-
         //赋值明细列表
         setDetailsInfo(records);