Sfoglia il codice sorgente

采购数量驳回回滚 交接单限制去除

yzc 2 anni fa
parent
commit
0439c5f205

+ 3 - 3
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderServiceImpl.java

@@ -209,9 +209,9 @@ public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder
                     throw new ServiceException("该合同产品不存在,请检查");
                 }
                 BigDecimal expendQuantity = contractProduct.getExpendQuantity().subtract(w.getQuantity());
-                if (expendQuantity.compareTo(BigDecimal.ZERO) < 1) {//小于0不让继续执行
-                    throw new ServiceException("生产数量不得大于销售合同数量");
-                }
+//                if (expendQuantity.compareTo(BigDecimal.ZERO) < 1) {//小于0不让继续执行
+//                    throw new ServiceException("生产数量不得大于销售合同数量");
+//                }
                 contractProduct.setExpendQuantity(expendQuantity);
                 upContractProduct.add(contractProduct);
             }

+ 9 - 3
hx-purchase/src/main/java/com/fjhx/purchase/mapper/purchase/PurchaseDetailMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.purchase.mapper.purchase;
 
-import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;
@@ -30,14 +30,20 @@ public interface PurchaseDetailMapper extends BaseMapper<PurchaseDetail> {
      * @param dataResourceIds
      * @return
      */
-    List<PurchaseDetailVo> getSumCountInDataResourceId(@Param("dataResourceIds")List<Long> dataResourceIds);
+    List<PurchaseDetailVo> getSumCountInDataResourceId(@Param("dataResourceIds") List<Long> dataResourceIds);
 
 
     /**
      * 获取外销合同总采购量审批通过的
+     *
      * @param dataResourceIds
      * @return
      */
-    List<PurchaseDetailVo> getSumCountInDataResourceIds(@Param("dataResourceIds")List<Long> dataResourceIds);
+    List<PurchaseDetailVo> getSumCountInDataResourceIds(@Param("dataResourceIds") List<Long> dataResourceIds);
+
+    /**
+     * 获取明细列表
+     */
+    List<PurchaseDetailVo> getPurchaseDetailList(@Param("ew") IWrapper<PurchaseDetail> wrapper);
 
 }

+ 5 - 5
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseDetailService.java

@@ -1,11 +1,11 @@
 package com.fjhx.purchase.service.purchase;
 
-import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
-import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
-import com.fjhx.purchase.entity.purchase.dto.PurchaseDetailSelectDto;
 import com.fjhx.purchase.entity.purchase.dto.PurchaseDetailDto;
+import com.fjhx.purchase.entity.purchase.dto.PurchaseDetailSelectDto;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.ruoyi.common.core.service.BaseService;
 
 import java.util.List;
 
@@ -57,5 +57,5 @@ public interface PurchaseDetailService extends BaseService<PurchaseDetail> {
      */
     List<PurchaseDetailVo> getSumCountInDataResourceIds(List<Long> dataResourceIds);
 
-
+    List<PurchaseDetailVo> getPurchaseCountListBySubscribeDetailIds(List<Long> PurchaseDetailIds);
 }

+ 9 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseDetailServiceImpl.java

@@ -75,6 +75,7 @@ public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailMapper,
 
     /**
      * 获取外销合同总采购量审批通过的
+     *
      * @param dataResourceIds
      * @return
      */
@@ -83,4 +84,12 @@ public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailMapper,
         return baseMapper.getSumCountInDataResourceIds(dataResourceIds);
     }
 
+    @Override
+    public List<PurchaseDetailVo> getPurchaseCountListBySubscribeDetailIds(List<Long> subscribeDetailIds) {
+        IWrapper<PurchaseDetail> wrapper = getWrapper();
+        wrapper.ne("p.purchase_status", "20");//过滤掉驳回数据
+        wrapper.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds);
+        return baseMapper.getPurchaseDetailList(wrapper);
+    }
+
 }

+ 3 - 1
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -16,6 +16,7 @@ import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
 import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailDto;
 import com.fjhx.purchase.entity.subscribe.dto.SubscribeDetailSelectDto;
 import com.fjhx.purchase.entity.subscribe.po.Subscribe;
@@ -137,7 +138,8 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
 
         // 赋值采购数量
         List<Long> subscribeDetailIds = list.stream().map(SubscribeDetail::getId).collect(Collectors.toList());
-        List<PurchaseDetail> purchaseDetailsList = purchaseDetailService.list(q -> q.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds));
+        List<PurchaseDetailVo> purchaseDetailsList = purchaseDetailService.getPurchaseCountListBySubscribeDetailIds(subscribeDetailIds);
+//        List<PurchaseDetail> purchaseDetailsList = purchaseDetailService.list(q -> q.in(PurchaseDetail::getSubscribeDetailId, subscribeDetailIds));
         Map<Long, List<PurchaseDetail>> purchaseDetailsMap = purchaseDetailsList.stream().collect(Collectors.groupingBy(PurchaseDetail::getSubscribeDetailId));
         for (SubscribeDetailVo subscribeDetailVo : list) {
             List<PurchaseDetail> purchaseDetails = purchaseDetailsMap.get(subscribeDetailVo.getId());

+ 9 - 2
hx-purchase/src/main/resources/mapper/purchase/PurchaseDetailMapper.xml

@@ -50,12 +50,19 @@
             AND t2.`purchase_status` &gt;= 30
             AND t2.purchase_status &lt; 88
             <if test="dataResourceIds neq null and dataResourceIds.size() > 0">
-                <foreach collection="dataResourceIds" item="dataResourceId" open="AND t1.data_resource_id IN (" separator="," close=")">
+                <foreach collection="dataResourceIds" item="dataResourceId" open="AND t1.data_resource_id IN ("
+                         separator="," close=")">
                     #{dataResourceId}
                 </foreach>
             </if>
         </where>
         GROUP BY
-            data_resource_id
+        data_resource_id
+    </select>
+    <select id="getPurchaseDetailList" resultType="com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo">
+        SELECT pd.*
+        FROM purchase_detail pd
+                 LEFT JOIN purchase p on pd.purchase_id = p.id
+            ${ew.customSqlSegment}
     </select>
 </mapper>

+ 21 - 3
hx-sale/src/main/java/com/fjhx/sale/flow/PurchaseFlow.java

@@ -10,6 +10,8 @@ import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.enums.CodingRuleEnum;
 import com.fjhx.common.service.coding.CodingRuleService;
 import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.flow.core.FlowThreadLocalUtil;
+import com.fjhx.flow.enums.HandleTypeEnum;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseDataResourceEnum;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseDetailStatusEnum;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
@@ -24,7 +26,9 @@ import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.sample.po.SampleProduct;
 import com.fjhx.sale.service.contract.ContractProductService;
 import com.fjhx.sale.service.sample.SampleProductService;
+import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -122,9 +126,9 @@ public class PurchaseFlow extends FlowDelegate {
                     p.getDataResource() == PurchaseDataResourceEnum.DATA_RESOURCE_1.getKey()) {//如果采购的是外销合同
                 ContractProduct contractProduct = contractProductService.getById(p.getDataResourceId());
                 BigDecimal expendQuantity = contractProduct.getExpendQuantity().subtract(p.getCount());
-                if (expendQuantity.compareTo(BigDecimal.ZERO) < 1) {//小于0不让继续执行
-                    throw new ServiceException("采购数量不得大于合同剩余采购数量");
-                }
+//                if (expendQuantity.compareTo(BigDecimal.ZERO) < 1) {//小于0不让继续执行
+//                    throw new ServiceException("采购数量不得大于合同剩余采购数量");
+//                }
                 contractProduct.setExpendQuantity(expendQuantity);
                 upContractProduct.add(contractProduct);
             }
@@ -156,4 +160,18 @@ public class PurchaseFlow extends FlowDelegate {
                 .lambda().eq(PurchaseDetail::getPurchaseId, purchase.getId()));
     }
 
+    /**
+     * 驳回方法
+     */
+    public void reject() {
+        if (HandleTypeEnum.REJECT.equals(FlowThreadLocalUtil.getHandleTypeEnum())) {
+            purchaseService.update(q -> q
+                    .eq(Purchase::getId, FlowThreadLocalUtil.getBusinessId())
+                    .set(Purchase::getPurchaseStatus, 20)
+                    .set(Purchase::getUpdateTime, new Date())
+                    .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+            );
+        }
+    }
+
 }

+ 2 - 1
hx-sale/src/main/resources/mapper/pack/PackDetailMapper.xml

@@ -14,7 +14,8 @@
                t1.box_high,
                sum(t1.bom_volume)                                    bomVolume,
                t1.shipment_status,
-               t1.shipment_time
+               t1.shipment_time,
+               t1.contract_ids
         FROM pack_detail t1
         GROUP BY t1.pack_id
         ORDER BY t1.create_time DESC