From f7ab0ab24d7f103a276abc6f9e022bd9fe11deff Mon Sep 17 00:00:00 2001 From: wuwenxiong <646448316@qq.com> Date: Tue, 4 Jan 2022 02:13:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96-2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cowr/model/base/BasePresellOrder.java | 22 -------- .../presellorder/PresellOrderService.java | 56 +++++++++++++++---- .../ssjygl/stat/sale/OrderStatService.java | 14 ++++- .../order/ordertemp/OrderTempSyncService.java | 36 ++++++------ .../ordercluster/OrderclusterSyncService.java | 10 +++- .../order/ordertemp/OrderTempSyncService.java | 36 ++++++------ 6 files changed, 101 insertions(+), 73 deletions(-) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java index daecf8d..eade0dc 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BasePresellOrder.java @@ -130,28 +130,6 @@ public abstract class BasePresellOrder> extends Ba return get("presell_amount"); } - /** - * name: pug_amount - * type: DECIMAL(12,2) - * isNullable: NO - * isPrimaryKey: NO - * defaultValue: 0.00 - * @param pugAmount 已提货额 - */ - @JSONField(name="pug_amount") - public void setPugAmount(java.math.BigDecimal pugAmount) { - set("pug_amount", pugAmount); - } - - - /** - * @return pug_amount 已提货额 - */ - @JSONField(name="pug_amount") - public java.math.BigDecimal getPugAmount() { - return get("pug_amount"); - } - /** * name: invoice_number * type: VARCHAR(20) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/presellorder/PresellOrderService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/presellorder/PresellOrderService.java index 8690f59..65d2e6c 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/presellorder/PresellOrderService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/presellorder/PresellOrderService.java @@ -24,12 +24,23 @@ public class PresellOrderService extends BaseService { public static final PresellOrderService me = new PresellOrderService(); public Page find(PageParam pp, Integer customer_id, Integer supermarket_id, Integer del, String name, String stm, String etm, Integer type) { - String selectsql = "select t.*, c.name customer_name, s.name supermarket_name, c.address, c.texpayer_name, c.texpayer_num, c.memo,\n" + - " (t.presell_amount - t.pug_amount) as surplus \n"; + String selectsql = "select t.*, c.name customer_name, s.name supermarket_name, c.texpayer_name, c.texpayer_num,\n" + + " ifnull(g.total_price, 0) yth_amount, t.presell_amount - ifnull(g.total_price, 0) surplus \n"; String fromsql = " from presell_order t \n" + " left join customer c on t.customer_id = c.id \n" + - " left join prepay_customer p on t.customer_id = p.customer_id \n" + " left join supermarket s on t.supermarket_id = s.id \n" + + " left join ( \n" + + "SELECT\n" + + " o.presell_order_id,\n" + + " ifnull(SUM(d.total_price), 0) total_price\n" + + "FROM\n" + + " `order_temp` d\n" + + "LEFT JOIN ordercluster o ON d.ordercluster_id = o.id\n" + + "WHERE\n" + + " d.sale_type = 1\n" + + "AND d.state = 5\n" + + "GROUP BY\n" + + " o.presell_order_id" + ") g on g.presell_order_id = t.id\n" + " where 1=1 \n"; List paraList = new ArrayList<>(); @@ -65,9 +76,9 @@ public class PresellOrderService extends BaseService { if (type != null && (type == 0 || type == 1)) { if (type == 0) { - fromsql += " and t.presell_amount > t.pug_amount \n"; + fromsql += " and t.presell_amount - ifnull(g.total_price, 0) > 0\n"; } else { - fromsql += " and t.presell_amount = t.pug_amount \n"; + fromsql += " and t.presell_amount = g.total_price \n"; } } @@ -91,12 +102,23 @@ public class PresellOrderService extends BaseService { } public List list(Integer customer_id, Integer supermarket_id, Integer del, String name, String stm, String etm, Integer type) { - String sql = "select t.*, c.name customer_name, s.name supermarket_name, c.address, c.texpayer_name, c.texpayer_num, c.memo, \n" + - " (t.presell_amount - t.pug_amount) as surplus\n" + + String sql = "select t.*, c.name customer_name, s.name supermarket_name, c.texpayer_name, c.texpayer_num,\n" + + " ifnull(g.total_price, 0) yth_amount, t.presell_amount - ifnull(g.total_price, 0) surplus \n" + " from presell_order t \n" + " left join customer c on t.customer_id = c.id \n" + - " left join prepay_customer p on t.customer_id = p.customer_id \n" + " left join supermarket s on t.supermarket_id = s.id \n" + + " left join ( \n" + + "SELECT\n" + + " o.presell_order_id,\n" + + " ifnull(SUM(d.total_price), 0) total_price\n" + + "FROM\n" + + " `order_temp` d\n" + + "LEFT JOIN ordercluster o ON d.ordercluster_id = o.id\n" + + "WHERE\n" + + " d.sale_type = 1\n" + + "AND d.state = 5\n" + + "GROUP BY\n" + + " o.presell_order_id" + ") g on g.presell_order_id = t.id\n" + " where 1=1 \n"; List paraList = new ArrayList<>(); @@ -132,9 +154,9 @@ public class PresellOrderService extends BaseService { if (type != null && (type == 0 || type == 1)) { if (type == 0) { - sql += " and t.presell_amount > t.pug_amount \n"; + sql += " and t.presell_amount - ifnull(g.total_price, 0) > 0\n"; } else { - sql += " and t.presell_amount = t.pug_amount \n"; + sql += " and t.presell_amount = g.total_price \n"; } } @@ -142,7 +164,19 @@ public class PresellOrderService extends BaseService { } public BigDecimal getPresellCustomerSurplusById(String id) { - String sql = "select t.presell_amount - t.pug_amount as surplus from presell_order t\n" + + String sql = "select t.presell_amount - ifnull(g.total_price, 0) surplus from presell_order t\n" + + " left join ( \n" + + "SELECT\n" + + " o.presell_order_id,\n" + + " SUM(d.total_price) total_price\n" + + "FROM\n" + + " `order_temp` d\n" + + "LEFT JOIN ordercluster o ON d.ordercluster_id = o.id\n" + + "WHERE\n" + + " d.sale_type = 1\n" + + "AND d.state = 5\n" + + "GROUP BY\n" + + " o.presell_order_id" + ") g on g.presell_order_id = t.id\n" + "WHERE t.id = ?"; return Db.queryBigDecimal(sql, id); } diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java index 1805114..01d55f9 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java @@ -2760,9 +2760,21 @@ public class OrderStatService { " p.customer_id,\n" + " p.supermarket_id,\n" + " ifnull(sum(p.presell_amount), 0) presell_amount,\n" + - " ifnull(sum(p.pug_amount), 0) pug_amount\n" + + " ifnull(sum(g.total_price), 0) pug_amount\n" + " FROM\n" + " presell_order p\n" + + " left join ( \n" + + " SELECT\n" + + " o.presell_order_id,\n" + + " ifnull(SUM(d.total_price), 0) total_price\n" + + " FROM\n" + + " `order_temp` d\n" + + " LEFT JOIN ordercluster o ON d.ordercluster_id = o.id\n" + + " WHERE\n" + + " d.sale_type = 1\n" + + " AND d.state = 5\n" + + " GROUP BY\n" + + " o.presell_order_id" + ") g on g.presell_order_id = p.id\n" + " WHERE\n" + " p.del = 0\n" + paramsSql + diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java index 175a872..26a9139 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java @@ -1271,24 +1271,24 @@ public class OrderTempSyncService { order.setPaid(new BigDecimal(0)); // 预付费的实际支付为 0 order.setPrepayCustomerId(prepayCustomer.getId()); - PresellOrder presellOrder = PresellOrder.dao.findById(ordercluster.getPresellOrderId()); - if (presellOrder == null) return false; - - synctask.addIncrementData( - presellOrder.getTablename(), - "id", - presellOrder.getId(), - new JSONObject().fluentPut("pug_amount", order.getTotalPrice()) // 结算完成,更新提货额 - ); - - // 更新本地presellOrder的pug_amount - presellOrder.setPugAmount(presellOrder.getPugAmount().add(order.getTotalPrice())); - - ret = presellOrder.update(); - - if (!ret) { - return false; - } +// PresellOrder presellOrder = PresellOrder.dao.findById(ordercluster.getPresellOrderId()); +// if (presellOrder == null) return false; +// +// synctask.addIncrementData( +// presellOrder.getTablename(), +// "id", +// presellOrder.getId(), +// new JSONObject().fluentPut("pug_amount", order.getTotalPrice()) // 结算完成,更新提货额 +// ); +// +// // 更新本地presellOrder的pug_amount +// presellOrder.setPugAmount(presellOrder.getPugAmount().add(order.getTotalPrice())); +// +// ret = presellOrder.update(); +// +// if (!ret) { +// return false; +// } ret = order.save() && transport.update(); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterSyncService.java index 29f028a..d64a0a2 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterSyncService.java @@ -18,6 +18,7 @@ import com.cowr.ssjygl.modifylog.ModifyLogService; import com.cowr.ssjygl.order.ordercluster.OrderclusterService; import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService; import com.cowr.ssjygl.prepay.refunddetail.RefundDetailService; +import com.cowr.ssjygl.presellorder.PresellOrderService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.ssjygl.supermarket.receiverdistance.SupermarketReceiverDistanceService; import com.jfinal.kit.StrKit; @@ -584,7 +585,8 @@ public class OrderclusterSyncService extends BaseSyncService { } // 余额 - BigDecimal surplus = presellOrder.getPresellAmount().subtract(presellOrder.getPugAmount()); + BigDecimal pug_amount = PresellOrderService.me.getPresellCustomerSurplusById(model.getPresellOrderId()); + BigDecimal surplus = presellOrder.getPresellAmount().subtract(pug_amount); if (unitprice.multiply(model.getTotalWeight()).compareTo(surplus) > 0) { return Result.failedstr("余额 %.2f 不足以购买 %.2f 吨 %s", surplus, model.getTotalWeight(), product.getName()); @@ -899,7 +901,8 @@ public class OrderclusterSyncService extends BaseSyncService { return Result.failed(false, "未获取到订单信息"); } // 余额 - BigDecimal surplus = order.getPresellAmount().subtract(order.getPugAmount()); + BigDecimal pug_amount = PresellOrderService.me.getPresellCustomerSurplusById(oldobj.getPresellOrderId()); + BigDecimal surplus = order.getPresellAmount().subtract(pug_amount); if (plan_total_price.compareTo(surplus) > 0) { return Result.failedstr("共计总配额达 %.2f元,客户余额(%.2f元)不足", plan_total_price, surplus); } @@ -1125,7 +1128,8 @@ public class OrderclusterSyncService extends BaseSyncService { } else { PresellOrder order = PresellOrder.dao.findById(presell_order_id); if (order != null) { - availableBalance = order.getPresellAmount().subtract(order.getPugAmount()); + BigDecimal pug_amount = PresellOrderService.me.getPresellCustomerSurplusById(presell_order_id); + availableBalance = order.getPresellAmount().subtract(pug_amount); maximumConfiguration = availableBalance.divide(new BigDecimal(unit_price), 2, BigDecimal.ROUND_DOWN); } } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordertemp/OrderTempSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordertemp/OrderTempSyncService.java index 63d5c11..8b21e1a 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordertemp/OrderTempSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordertemp/OrderTempSyncService.java @@ -14,7 +14,6 @@ import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.IAtom; import com.jfinal.plugin.activerecord.Record; -import java.math.BigDecimal; import java.util.Date; public class OrderTempSyncService { @@ -183,24 +182,25 @@ public class OrderTempSyncService { ret = prepayCustomer.update(); } - } else { - Ordercluster ordercluster = Ordercluster.dao.findById(order.getOrderclusterId()); - if (ordercluster != null) { - PresellOrder presellOrder = PresellOrder.dao.findById(ordercluster.getPresellOrderId()); - if (presellOrder != null) { - presellOrder.setPugAmount(presellOrder.getPugAmount().subtract(order.getTotalPrice())); - synctaskincrement.addIncrementData( - presellOrder.getTablename(), - "id", - presellOrder.getId(), - new JSONObject().fluentPut("pug_amount", new BigDecimal(0).subtract(order.getTotalPrice())) // 取消订单,在提货额上加上一个负数 - ); - // 余额变化需要广播 - SyncTaskService.me.save(synctaskincrement); - ret = presellOrder.update(); - } - } } +// else { +// Ordercluster ordercluster = Ordercluster.dao.findById(order.getOrderclusterId()); +// if (ordercluster != null) { +// PresellOrder presellOrder = PresellOrder.dao.findById(ordercluster.getPresellOrderId()); +// if (presellOrder != null) { +// presellOrder.setPugAmount(presellOrder.getPugAmount().subtract(order.getTotalPrice())); +// synctaskincrement.addIncrementData( +// presellOrder.getTablename(), +// "id", +// presellOrder.getId(), +// new JSONObject().fluentPut("pug_amount", new BigDecimal(0).subtract(order.getTotalPrice())) // 取消订单,在提货额上加上一个负数 +// ); +// // 余额变化需要广播 +// SyncTaskService.me.save(synctaskincrement); +// ret = presellOrder.update(); +// } +// } +// } } if (!ret) {