修改预售单列表余额计算方式
parent
8c892fa9a0
commit
4a9c9bbc5c
|
|
@ -2,7 +2,6 @@ package com.cowr.ssjygl.presellorder;
|
|||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.base.BaseService;
|
||||
import com.cowr.common.enums.OrderStateEnum;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.model.PresellOrder;
|
||||
import com.jfinal.kit.StrKit;
|
||||
|
|
@ -25,7 +24,7 @@ public class PresellOrderService extends BaseService {
|
|||
|
||||
public Page<Record> 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.texpayer_name, c.texpayer_num,\n" +
|
||||
" ifnull(g.total_price, 0) yth_amount, t.presell_amount - ifnull(g.total_price, 0) surplus \n";
|
||||
" ifnull(g.total_price, 0) yth_amount \n";
|
||||
String fromsql = " from presell_order t \n" +
|
||||
" left join customer c on t.customer_id = c.id \n" +
|
||||
" left join supermarket s on t.supermarket_id = s.id \n" +
|
||||
|
|
@ -98,12 +97,17 @@ public class PresellOrderService extends BaseService {
|
|||
findSql += " order by t.create_time desc";
|
||||
}
|
||||
|
||||
return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray());
|
||||
Page<Record> page = Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray());
|
||||
List<Record> list = page.getList();
|
||||
|
||||
setSurplus(list);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
public List<PresellOrder> list(Integer customer_id, Integer supermarket_id, Integer del, String name, String stm, String etm, Integer type) {
|
||||
public List<Record> 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.texpayer_name, c.texpayer_num,\n" +
|
||||
" ifnull(g.total_price, 0) yth_amount, t.presell_amount - ifnull(g.total_price, 0) surplus \n" +
|
||||
" ifnull(g.total_price, 0) yth_amount \n" +
|
||||
" from presell_order t \n" +
|
||||
" left join customer c on t.customer_id = c.id \n" +
|
||||
" left join supermarket s on t.supermarket_id = s.id \n" +
|
||||
|
|
@ -160,35 +164,77 @@ public class PresellOrderService extends BaseService {
|
|||
}
|
||||
}
|
||||
|
||||
return PresellOrder.dao.find(sql, paraList.toArray());
|
||||
List<Record> list = Db.find(sql, paraList.toArray());
|
||||
|
||||
setSurplus(list);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setSurplus(List<Record> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (Record r : list) {
|
||||
Integer customer_id = r.getInt("customer_id");
|
||||
if (customer_id != null) {
|
||||
BigDecimal surplus = getPresellCustomerSurplusById(customer_id);
|
||||
r.set("surplus", surplus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据客户id查询客户的可配金额
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public BigDecimal getPresellCustomerSurplusById(Integer id) {
|
||||
List<Object> params = new ArrayList<>();
|
||||
params.add(id);
|
||||
params.add(id);
|
||||
|
||||
String sql = "SELECT\n" +
|
||||
" (\n" +
|
||||
" SELECT\n" +
|
||||
" sum(t.presell_amount)\n" +
|
||||
" FROM\n" +
|
||||
" presell_order t\n" +
|
||||
" WHERE\n" +
|
||||
" t.del = 0\n" +
|
||||
" AND t.customer_id = ?\n" +
|
||||
" ) - (\n" +
|
||||
" SELECT\n" +
|
||||
" sum(\n" +
|
||||
" t.total_weight * t.unit_price\n" +
|
||||
" )\n" +
|
||||
" FROM\n" +
|
||||
" ordercluster t\n" +
|
||||
" WHERE\n" +
|
||||
" t.sale_type = 1\n" +
|
||||
" AND t.state < 5\n" +
|
||||
" AND t.customer_id = ?\n" +
|
||||
" ) as surplus";
|
||||
BigDecimal out = Db.queryBigDecimal(sql, params.toArray());
|
||||
return out == null ? new BigDecimal(0) : out;
|
||||
" IFNULL(\n" +
|
||||
" (\n" +
|
||||
" SELECT\n" +
|
||||
" (\n" +
|
||||
" IFNULL(\n" +
|
||||
" (\n" +
|
||||
" SELECT\n" +
|
||||
" sum(t.presell_amount)\n" +
|
||||
" FROM\n" +
|
||||
" presell_order t\n" +
|
||||
" WHERE\n" +
|
||||
" t.del = 0\n" +
|
||||
" AND t.customer_id = ?\n" +
|
||||
" ),\n" +
|
||||
" 0\n" +
|
||||
" )\n" +
|
||||
" ) - (\n" +
|
||||
" IFNULL(\n" +
|
||||
" (\n" +
|
||||
" SELECT\n" +
|
||||
" sum(\n" +
|
||||
" t.total_weight * t.unit_price\n" +
|
||||
" )\n" +
|
||||
" FROM\n" +
|
||||
" ordercluster t\n" +
|
||||
" WHERE\n" +
|
||||
" t.sale_type = 1\n" +
|
||||
" AND t.state < 5\n" +
|
||||
" AND t.customer_id = ?\n" +
|
||||
" ),\n" +
|
||||
" 0\n" +
|
||||
" )\n" +
|
||||
" )\n" +
|
||||
" ),\n" +
|
||||
" 0\n" +
|
||||
" ) AS suplus";
|
||||
|
||||
BigDecimal out = Db.queryBigDecimal(sql, params.toArray());
|
||||
|
||||
return out == null ? new BigDecimal(0) : out;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue