zhangyuewww 1 年之前
父節點
當前提交
168a333846

+ 1 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/exception/YExceptionEnum.java

@@ -63,6 +63,7 @@ public enum YExceptionEnum {
 	LOGIN_OUT_TIME("ERROR", "登录状态已失效,请重新登录!"),
 	RETURN_EXCEED_OUTBOUND_ERROR("ERROR", "退库量不可超出出库总量!"),
 	SOURCE_BOUNDED_ERROR("ERROR", "所选货源已被其他仓单绑定!"),
+	WEIGHT_EXCEED_ERROR("ERROR", "累计出库任务重量不可大于累计放粮重量!"),
 	;
 	@Getter
 	private String value;

+ 37 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/InOutWarehouseTaskServiceImpl.java

@@ -104,6 +104,10 @@ public class InOutWarehouseTaskServiceImpl extends ServiceImpl<InOutWarehouseTas
     @Autowired
     private IContractManagementInfoService contractManagementInfoService;
     @Autowired
+    private ITradeWarehouseReceiptApplService tradeWarehouseReceiptApplService;
+    @Autowired
+    private IRepaymentManagementService repaymentManagementService;
+    @Autowired
     private IWarehouseBaseInfoService warehouseBaseInfoService;
     @Value("${file-root-path}")
     private String localPath;
@@ -130,6 +134,39 @@ public class InOutWarehouseTaskServiceImpl extends ServiceImpl<InOutWarehouseTas
             inOutWarehouseTask.setEstablishDate(new Date());
             //出库插入货源关联数据
             if ("1".equals(inOutWarehouseTask.getInOutFlag())) {
+                Wrapper<TradeWarehouseReceiptAppl> tradeWarehouseReceiptApplWrapper = new EntityWrapper<>();
+                tradeWarehouseReceiptApplWrapper.eq("comp_id",inOutWarehouseTask.getCompId())
+                        .eq("warehouse_name",inOutWarehouseTask.getWarehouseName());
+                tradeWarehouseReceiptApplWrapper.andNew().eq("status_flag", "3")
+                        .or().eq("status_flag","5");
+                //有贸易仓单的仓库校验累计出库任务重量不可大于累计放粮重量
+                List<TradeWarehouseReceiptAppl> tradeWarehouseReceiptApplList=tradeWarehouseReceiptApplService.selectList(tradeWarehouseReceiptApplWrapper);
+                if (CollectionUtils.isNotEmpty(tradeWarehouseReceiptApplList)){
+                    List<RepaymentManagement> repaymentManagementList=repaymentManagementService.selectList(new EntityWrapper<RepaymentManagement>()
+                            .eq("comp_id",inOutWarehouseTask.getCompId())
+                            .eq("borrowing_warehouse",inOutWarehouseTask.getWarehouseName()));
+                    if (CollectionUtils.isNotEmpty(repaymentManagementList)){
+                        //累计放粮>0
+                        Double weight=repaymentManagementList.stream().mapToDouble(RepaymentManagement::getRepaymentEdAmount).sum();
+                        //累计出库量
+                        Double outWeight=0d;
+                        Wrapper<InOutWarehouseTask> inOutWarehouseTaskWrapper = new EntityWrapper<>();
+                        inOutWarehouseTaskWrapper.eq("comp_id",inOutWarehouseTask.getCompId())
+                                .eq("warehouse_name",inOutWarehouseTask.getWarehouseName());
+                        inOutWarehouseTaskWrapper.andNew().eq("task_status_key", "5")
+                                .or().eq("task_status_key","7");
+                        List<InOutWarehouseTask> inOutWarehouseTasks=this.selectList(inOutWarehouseTaskWrapper);
+                        if (CollectionUtils.isNotEmpty(inOutWarehouseTasks)){
+                            outWeight=inOutWarehouseTasks.stream().mapToDouble(InOutWarehouseTask::getWeight).sum();
+                        }
+                        if (outWeight+inOutWarehouseTask.getWeight()>weight){
+                            throw new YException(YExceptionEnum.WEIGHT_EXCEED_ERROR);
+                        }
+                    }
+                    else{
+                        throw new YException(YExceptionEnum.WEIGHT_EXCEED_ERROR);
+                    }
+                }
                 List<SourceRelationInfo> sourceRelationInfoList = inOutWarehouseTask.getSourceRelationInfoList();
                 if (CollectionUtils.isNotEmpty(sourceRelationInfoList)) {
                     for (int i=0;i<sourceRelationInfoList.size();i++){

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

@@ -397,9 +397,10 @@ public class TradeWarehouseReceiptApplServiceImpl extends ServiceImpl<TradeWareh
                 .eq("bank_id",tradeWarehouseReceiptAppl.getBankId())
                 .eq("comp_id",tradeWarehouseReceiptAppl.getCompId())
                 .eq("borrowing_warehouse",tradeWarehouseReceiptAppl.getWarehouseName())
+                .eq("interest_flag","2")
                 .eq("goods_name",tradeWarehouseReceiptAppl.getGoodsName()));
         if (!CollectionUtils.isEmpty(repaymentManagementList)){
-            weight=repaymentManagementList.stream().mapToDouble(RepaymentManagement::getRepaymentEdAmount).sum();
+            grainWeight=repaymentManagementList.stream().mapToDouble(RepaymentManagement::getRepaymentEdAmount).sum();
         }
         Double detainedWeight=weight-grainWeight;
         return detainedWeight;