修改预售单列表余额计算方式
parent
8c892fa9a0
commit
4a9c9bbc5c
|
|
@ -2,7 +2,6 @@ package com.cowr.ssjygl.presellorder;
|
||||||
|
|
||||||
import com.cowr.common.Const;
|
import com.cowr.common.Const;
|
||||||
import com.cowr.common.base.BaseService;
|
import com.cowr.common.base.BaseService;
|
||||||
import com.cowr.common.enums.OrderStateEnum;
|
|
||||||
import com.cowr.common.view.PageParam;
|
import com.cowr.common.view.PageParam;
|
||||||
import com.cowr.model.PresellOrder;
|
import com.cowr.model.PresellOrder;
|
||||||
import com.jfinal.kit.StrKit;
|
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) {
|
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" +
|
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" +
|
String fromsql = " from presell_order t \n" +
|
||||||
" left join customer c on t.customer_id = c.id \n" +
|
" left join customer c on t.customer_id = c.id \n" +
|
||||||
" left join supermarket s on t.supermarket_id = s.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";
|
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" +
|
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" +
|
" from presell_order t \n" +
|
||||||
" left join customer c on t.customer_id = c.id \n" +
|
" left join customer c on t.customer_id = c.id \n" +
|
||||||
" left join supermarket s on t.supermarket_id = s.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) {
|
public BigDecimal getPresellCustomerSurplusById(Integer id) {
|
||||||
List<Object> params = new ArrayList<>();
|
List<Object> params = new ArrayList<>();
|
||||||
params.add(id);
|
params.add(id);
|
||||||
params.add(id);
|
params.add(id);
|
||||||
|
|
||||||
String sql = "SELECT\n" +
|
String sql = "SELECT\n" +
|
||||||
" (\n" +
|
" IFNULL(\n" +
|
||||||
" SELECT\n" +
|
" (\n" +
|
||||||
" sum(t.presell_amount)\n" +
|
" SELECT\n" +
|
||||||
" FROM\n" +
|
" (\n" +
|
||||||
" presell_order t\n" +
|
" IFNULL(\n" +
|
||||||
" WHERE\n" +
|
" (\n" +
|
||||||
" t.del = 0\n" +
|
" SELECT\n" +
|
||||||
" AND t.customer_id = ?\n" +
|
" sum(t.presell_amount)\n" +
|
||||||
" ) - (\n" +
|
" FROM\n" +
|
||||||
" SELECT\n" +
|
" presell_order t\n" +
|
||||||
" sum(\n" +
|
" WHERE\n" +
|
||||||
" t.total_weight * t.unit_price\n" +
|
" t.del = 0\n" +
|
||||||
" )\n" +
|
" AND t.customer_id = ?\n" +
|
||||||
" FROM\n" +
|
" ),\n" +
|
||||||
" ordercluster t\n" +
|
" 0\n" +
|
||||||
" WHERE\n" +
|
" )\n" +
|
||||||
" t.sale_type = 1\n" +
|
" ) - (\n" +
|
||||||
" AND t.state < 5\n" +
|
" IFNULL(\n" +
|
||||||
" AND t.customer_id = ?\n" +
|
" (\n" +
|
||||||
" ) as surplus";
|
" SELECT\n" +
|
||||||
BigDecimal out = Db.queryBigDecimal(sql, params.toArray());
|
" sum(\n" +
|
||||||
return out == null ? new BigDecimal(0) : out;
|
" 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