浏览代码

fix 计费单商品

he2802 3 年之前
父节点
当前提交
8fc30062d8

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -21,6 +21,10 @@ import com.zhongzheng.common.annotation.Excel;
 @TableName("order_goods")
 public class OrderGoods implements Serializable {
 
+    public static final Integer PAY_NO =1;  //1未收费
+    public static final Integer PAY_PART =2;  //2部分收费
+    public static final Integer PAY_FULL =3;  //3完全收费
+
 private static final long serialVersionUID=1L;
     /** $column.columnComment */
     @TableId(value = "order_goods_id")

+ 22 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderBillSheetServiceImpl.java

@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -135,13 +136,33 @@ public class OrderBillSheetServiceImpl extends ServiceImpl<OrderBillSheetMapper,
         //生成订单
         Collection<OrderBillGoods> coll = new HashSet<>();
         for (OrderBillGoodsAddBo g : goodsList) {
+            //计费单商品
             OrderBillGoods orderGoods = BeanUtil.toBean(g, OrderBillGoods.class);
             orderGoods.setOrderSn(bo.getOrderSn());
             orderGoods.setSheetSn(sheet_no);
             orderGoods.setCreateTime(DateUtils.getNowTime());
             orderGoods.setUpdateTime(DateUtils.getNowTime());
             coll.add(orderGoods);
-            iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderSn, bo.getOrderSn()));
+            if(orderGoods.getAmount().compareTo(BigDecimal.ZERO)!=1){
+                throw new CustomException("已收费用必须大于0");
+            }
+            //订单商品
+            OrderGoods goods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderSn, bo.getOrderSn()).eq(OrderGoods::getGoodsId,g.getGoodsId()));
+            //计费单已收费用累加
+            goods.getGoodsReceived().add(orderGoods.getAmount());
+            if(goods.getGoodsRealPrice().compareTo(goods.getGoodsReceived()) == -1){
+                throw new CustomException("已收费用超出成交价");
+            }
+            else if(goods.getGoodsRealPrice().compareTo(goods.getGoodsReceived()) == 0){
+                //完全收费
+                goods.setPayStatus(OrderGoods.PAY_FULL);
+            }
+            else{
+                //部分收费
+                goods.setPayStatus(OrderGoods.PAY_PART);
+            }
+            goods.setUpdateTime(DateUtils.getNowTime());
+            iOrderGoodsService.updateById(goods);
         }
         iOrderBillGoodsService.saveBatch(coll);
         this.save(add);