zhangyuewww 2 سال پیش
والد
کامیت
c57c82179a

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

@@ -46,7 +46,6 @@ public enum YExceptionEnum {
 	IN_WEIGHT_STATUS_ERROR("ERROR", "入库检斤《已称皮重》状态不允许删除,请先退回!"),
 	OUT_WEIGHT_STATUS_ERROR("ERROR", "出库检斤《已称毛重》状态不允许删除,请先退回!"),
 	IN_OUT_STATUS_ERROR("ERROR", "出入库记录状态异常"),
-	AMOUNT_EXCEEDS__ERROR("ERROR", "合同请款金额不能超出总粮款!"),
 	;
 	@Getter
 	private String value;

+ 19 - 12
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ExpenseInfoServiceImpl.java

@@ -208,6 +208,7 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String addInfo(ExpenseInfo expenseInfo) {
+        Integer flag=0;
         expenseInfo.setId(IdGenerator.generateUUID());
         SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
         Integer num = this.expenseCount(expenseInfo) + 1;
@@ -257,7 +258,6 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
             if(!"1".equals(expenseInfo.getCostType())&&!"1".equals(expenseInfo.getExpensesPurpose())) {
                 expenseInfo.setUnallocatedAmount(expenseInfo.getAmountMoney());
             }
-            this.insert(expenseInfo);
             //合同粮款校验
             if("1".equals(expenseInfo.getCostType())&&"1".equals(expenseInfo.getExpensesPurpose())) {
                 ContractManagementInfo contractManagementInfo=contractManagementInfoService.selectOne(new EntityWrapper<ContractManagementInfo>()
@@ -269,6 +269,8 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
                         Double grainFund=contractManagementInfo.getUnitContractPrice()*contractManagementInfo.getWeight();
                         //合同已请粮款金额
                         Double money=0d;
+                        //合同保证金余额+预付款余额
+                        money=contractManagementInfo.getAccumulatedPrepayment()-contractManagementInfo.getAccumulatedRecovery()-contractManagementInfo.getPrepaidAssigned()+contractManagementInfo.getAccumulatedMargin()-contractManagementInfo.getWithdrawalOfMargin()-contractManagementInfo.getAllocatedMargin();
                         List<ExpenseInfo> expenseInfoList=this.selectList(new EntityWrapper<ExpenseInfo>()
                                 .eq("contract_no",expenseInfo.getContractNo())
                                 .ne("status","已驳回")
@@ -277,13 +279,14 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
                             money = expenseInfoList.stream().mapToDouble(ExpenseInfo::getAmountMoney).sum();
                         }
                         //本次金额加上已请款金额>总粮款时
-//                        if (money+expenseInfo.getAmountMoney()>grainFund){
-//                            throw new YException(YExceptionEnum.AMOUNT_EXCEEDS__ERROR);
-//                        }
+                        if (money+expenseInfo.getAmountMoney()>grainFund){
+                            flag=1;
+                        }
                     }
                 }
 
             }
+            this.insert(expenseInfo);
             //分配列表
             List<ExpenseAllocationInfo> expenseAllocationInfoList = expenseInfo.getExpenseAllocationInfoList();
             if (!CollectionUtils.isEmpty(expenseAllocationInfoList)) {
@@ -323,12 +326,16 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
                 workflowService.activateInstance(expenseInfo.getWorkflowId(), expenseInfo.getId());
             }
         }
+        if (flag==1){
+            return "合同请款金额超出总粮款!";
+        }
         return "ok";
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String editInfo(ExpenseInfo expenseInfo) {
+        Integer flag=0;
         ExpenseInfo expenseInfo1=this.selectById(expenseInfo.getId());
         //确认收款
         if ("0".equals(expenseInfo.getFlag())) {
@@ -506,6 +513,8 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
                         Double grainFund=contractManagementInfo.getUnitContractPrice()*contractManagementInfo.getWeight();
                         //合同已请粮款金额
                         Double money=0d;
+                        //合同保证金余额+预付款余额
+                        money=contractManagementInfo.getAccumulatedPrepayment()-contractManagementInfo.getAccumulatedRecovery()-contractManagementInfo.getPrepaidAssigned()+contractManagementInfo.getAccumulatedMargin()-contractManagementInfo.getWithdrawalOfMargin()-contractManagementInfo.getAllocatedMargin();
                         List<ExpenseInfo> expenseInfoList=this.selectList(new EntityWrapper<ExpenseInfo>()
                                 .eq("contract_no",expenseInfo1.getContractNo())
                                 .ne("status","已驳回")
@@ -514,9 +523,9 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
                             money = expenseInfoList.stream().mapToDouble(ExpenseInfo::getAmountMoney).sum();
                         }
                         //本次金额加上已请款金额>总粮款时
-//                        if (money+expenseInfo.getAmountMoney()>grainFund){
-//                            throw new YException(YExceptionEnum.AMOUNT_EXCEEDS__ERROR);
-//                        }
+                        if (money+expenseInfo.getAmountMoney()>grainFund){
+                            flag=1;
+                        }
                     }
                 }
 
@@ -565,13 +574,11 @@ public class ExpenseInfoServiceImpl extends ServiceImpl<ExpenseInfoMapper, Expen
             expenseInfo.setStatus(StatusEnum.REJECTED.getName());
         }
         // 主表信息编辑
-        boolean one = this.updateById(expenseInfo);
-        // 假如成功返回ok
-        if (one) {
+        this.updateById(expenseInfo);
+        if (flag==1) {
             return "OK";
-        } else {
-            return "NG";
         }
+        return "OK";
     }
 
     /**