service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivable.java
@@ -75,7 +75,7 @@ @Excel(name = "预估费用金额") @TableField("estimated_amount") private Long estimatedAmount; private BigDecimal estimatedAmount; /** 币制 */ service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBill.java
@@ -54,20 +54,20 @@ @Excel(name = "应结算金额") @TableField("total_amount") private Long totalAmount; private BigDecimal totalAmount; /** 已结算金额 */ @Excel(name = "已结算金额") @TableField("settled_amount") private Long settledAmount; private BigDecimal settledAmount; /** * 本次结算金额 */ @TableField(exist = false) private Long settlementAmount; private BigDecimal settlementAmount; /** 开票状态 */ @Excel(name = "开票状态") service/src/main/java/com/ruoyi/cwgl/domain/EstimatedReceivableBillLog.java
@@ -44,5 +44,10 @@ @TableField("operation") private String operation; /** * 附件名称 */ @TableField("file_name") private String fileName; } service/src/main/java/com/ruoyi/cwgl/domain/PendingSettlementBusiness.java
@@ -167,21 +167,21 @@ @Excel(name = "预估总收入") @TableField("estimated_total_income") private Long estimatedTotalIncome; private BigDecimal estimatedTotalIncome; /** 预估总成本 */ @Excel(name = "预估总成本") @TableField("estimated_total_cost") private Long estimatedTotalCost; private BigDecimal estimatedTotalCost; /** 预估利润 */ @Excel(name = "预估利润") @TableField("estimated_profit") private Long estimatedProfit; private BigDecimal estimatedProfit; /** 电子锁 */ service/src/main/java/com/ruoyi/cwgl/domain/vo/CreateBillVo.java
@@ -3,6 +3,8 @@ import lombok.Data; import java.math.BigDecimal; /** * 创建账单vo */ @@ -28,5 +30,5 @@ /** * 结算金额 */ private Long price; private BigDecimal price; } service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.cwgl.service.impl; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -215,11 +216,11 @@ Integer id = estimatedReceivableBill.getId(); EstimatedReceivableBill oldData = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(id); //应结算金额 Long totalAmount = oldData.getTotalAmount()==null?0L:oldData.getTotalAmount(); BigDecimal totalAmount = oldData.getTotalAmount()==null?BigDecimal.ZERO:oldData.getTotalAmount(); //已结算金额 Long settledAmount = oldData.getSettledAmount()==null?0L:oldData.getSettledAmount(); BigDecimal settledAmount = oldData.getSettledAmount()==null?BigDecimal.ZERO:oldData.getSettledAmount(); //当前提交金额 Long settlementAmount = estimatedReceivableBill.getSettlementAmount(); BigDecimal settlementAmount = estimatedReceivableBill.getSettlementAmount(); EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog(); estimatedReceivableBill.setSettledAmount(settlementAmount); @@ -227,10 +228,11 @@ estimatedReceivableBillLog.setBillId(estimatedReceivableBill.getId()); estimatedReceivableBillLog.setCreateBy(SecurityUtils.getUsername()); estimatedReceivableBillLog.setOperation("本次提交金额"+ settlementAmount); estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment()); logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog); settledAmount = settledAmount+settlementAmount; settledAmount = settledAmount.add(settlementAmount); List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId()); if (settledAmount>totalAmount){ if (settledAmount.compareTo(totalAmount) > 0){ //已结算大于应计算金额为已结算 estimatedReceivableBill.setStatus(2); estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3); @@ -252,8 +254,8 @@ EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(billId); estimatedReceivableBill.setDispatchCount(estimatedReceivableBill.getDispatchCount()-1); //应结算金额修改 Long totalAmount = estimatedReceivableBill.getTotalAmount(); estimatedReceivableBill.setTotalAmount(totalAmount-pendingSettlementBusiness.getEstimatedTotalIncome()); BigDecimal totalAmount = estimatedReceivableBill.getTotalAmount(); estimatedReceivableBill.setTotalAmount(totalAmount.subtract(pendingSettlementBusiness.getEstimatedTotalIncome())); EstimatedReceivableBillLog estimatedReceivableBillLog = new EstimatedReceivableBillLog(); estimatedReceivableBillLog.setCreateTime(new Date()); estimatedReceivableBillLog.setBillId(billId); service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.cwgl.service.impl; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -158,19 +159,19 @@ throw new ServiceException("结算中或已结算无法修改"); } //原本金额 Long oldAmount = estimatedReceivable1.getEstimatedAmount(); BigDecimal oldAmount = estimatedReceivable1.getEstimatedAmount(); //新金额 Long newAmount = estimatedReceivable.getEstimatedAmount(); BigDecimal newAmount = estimatedReceivable.getEstimatedAmount(); if (!oldAmount.equals(newAmount)) { PendingSettlementBusiness pendingSettlementBusiness = pendingSettlementBusinessMapper.selectPendingSettlementBusinessByNo(estimatedReceivable.getDispatchNo()); if (pendingSettlementBusiness!=null) { Long estimatedTotalIncome = pendingSettlementBusiness.getEstimatedTotalIncome(); pendingSettlementBusiness.setEstimatedTotalIncome(estimatedTotalIncome-oldAmount+newAmount); BigDecimal estimatedTotalIncome = pendingSettlementBusiness.getEstimatedTotalIncome(); pendingSettlementBusiness.setEstimatedTotalIncome(estimatedTotalIncome.subtract(oldAmount).add(newAmount)); pendingSettlementBusinessMapper.updatePendingSettlementBusiness(pendingSettlementBusiness); if (pendingSettlementBusiness.getBillId() != null) { EstimatedReceivableBill estimatedReceivableBill = estimatedReceivableBillMapper.selectEstimatedReceivableBillById(pendingSettlementBusiness.getBillId()); estimatedReceivableBill.setTotalAmount(estimatedReceivableBill.getTotalAmount() -oldAmount + newAmount); estimatedReceivableBill.setTotalAmount(estimatedReceivableBill.getTotalAmount().subtract( oldAmount).add( newAmount)); estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill); } } service/src/main/java/com/ruoyi/cwgl/service/impl/PendingSettlementBusinessServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.cwgl.service.impl; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; @@ -248,7 +249,7 @@ String customerName = pendingSettlementBusinesses.get(0).getCustomerName(); createBillVo.setCustomerName(customerName); createBillVo.setCount(pendingSettlementBusinesses.size()); long priceTotal = 0L; BigDecimal priceTotal = BigDecimal.ZERO; for (PendingSettlementBusiness pendingSettlementBusiness : pendingSettlementBusinesses) { if (pendingSettlementBusiness.getIsCreate().equals(1)){ throw new ServiceException(pendingSettlementBusiness.getDispatchNo()+"已入账"); @@ -258,7 +259,7 @@ throw new ServiceException("只能选择相同客户名称的数据"); } priceTotal += pendingSettlementBusiness.getEstimatedTotalIncome()==null?0L:pendingSettlementBusiness.getEstimatedTotalIncome(); priceTotal =priceTotal.add( pendingSettlementBusiness.getEstimatedTotalIncome()==null?BigDecimal.ZERO:pendingSettlementBusiness.getEstimatedTotalIncome()); } createBillVo.setPrice(priceTotal); return createBillVo; @@ -272,9 +273,9 @@ } pendingSettlementBusiness.setIsCreate(0); List<PendingSettlementBusiness> pendingSettlementBusinesses = pendingSettlementBusinessMapper.selectPendingSettlementBusinessList(pendingSettlementBusiness); long priceTotal = pendingSettlementBusinesses.stream() .mapToLong(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(0L)) .sum(); BigDecimal priceTotal = pendingSettlementBusinesses.stream() .map(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(BigDecimal.ZERO)) .reduce(BigDecimal.ZERO, BigDecimal::add); CreateBillVo createBillVo = new CreateBillVo(); createBillVo.setCustomerName(customerName); createBillVo.setCount(pendingSettlementBusinesses.size()); @@ -313,7 +314,7 @@ estimatedReceivableBill.setCustomerName(createBillVo.getCustomerName()); estimatedReceivableBill.setDispatchCount(createBillVo.getCount()); estimatedReceivableBill.setTotalAmount(createBillVo.getPrice()); estimatedReceivableBill.setSettledAmount(0L); estimatedReceivableBill.setSettledAmount(BigDecimal.ZERO); estimatedReceivableBill.setInvoiceStatus(0); estimatedReceivableBill.setStatus(0); estimatedReceivableBill.setCreateBy(username); @@ -347,9 +348,9 @@ Date date = new Date(); String datePart = dateFormat.format(date); long priceTotal = pendingSettlementBusinesses.stream() .mapToLong(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(0L)) .sum(); BigDecimal priceTotal = pendingSettlementBusinesses.stream() .map(b -> Optional.ofNullable(b.getEstimatedTotalIncome()).orElse(BigDecimal.ZERO)) .reduce(BigDecimal.ZERO, BigDecimal::add); //调度单集合 List<String> collect = pendingSettlementBusinesses.stream().map(PendingSettlementBusiness::getDispatchNo).collect(Collectors.toList()); EstimatedReceivableBill estimatedReceivableBill = new EstimatedReceivableBill(); @@ -359,7 +360,7 @@ estimatedReceivableBill.setCustomerName(customerName); estimatedReceivableBill.setDispatchCount(pendingSettlementBusinesses.size()); estimatedReceivableBill.setTotalAmount(priceTotal); estimatedReceivableBill.setSettledAmount(0L); estimatedReceivableBill.setSettledAmount(BigDecimal.ZERO); estimatedReceivableBill.setInvoiceStatus(0); estimatedReceivableBill.setStatus(0); estimatedReceivableBill.setCreateBy(username); service/src/main/resources/mapper/cwgl/EstimatedReceivableBillLogMapper.xml
@@ -10,10 +10,11 @@ <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> <result property="operation" column="operation" /> <result property="fileName" column="file_name" /> </resultMap> <sql id="selectEstimatedReceivableBillLogVo"> select thisTab.id, thisTab.bill_id, thisTab.create_by, thisTab.create_time, thisTab.operation from estimated_receivable_bill_log AS thisTab select thisTab.id, thisTab.bill_id, thisTab.create_by, thisTab.create_time, thisTab.operation, thisTab.file_name from estimated_receivable_bill_log AS thisTab </sql> <sql id="selectEstimatedReceivableBillLogVoCount"> select count(0) from estimated_receivable_bill_log as thisTab @@ -53,12 +54,14 @@ <if test="createBy != null">create_by,</if> <if test="createTime != null">create_time,</if> <if test="operation != null">operation,</if> <if test="fileName != null">file_name,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="billId != null">#{billId},</if> <if test="createBy != null">#{createBy},</if> <if test="createTime != null">#{createTime},</if> <if test="operation != null">#{operation},</if> <if test="fileName != null">#{fileName},</if> </trim> </insert>