调整集团订单

dev
lisai17@sina.com 2020-08-25 17:19:03 +08:00
parent 587393706d
commit 27123ba0b6
1 changed files with 53 additions and 18 deletions

View File

@ -7,6 +7,7 @@ import com.cowr.common.enums.UserTypeEnum;
import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result;
import com.cowr.model.Ordercluster;
import com.cowr.model.OrderclusterTruck;
import com.cowr.model.Sysuser;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
@ -53,13 +54,9 @@ public class OrderclusterService extends BaseService {
Integer state,
Integer product_id
) {
String selectsql = "select t.*, s.name supermarket_name, a.truck_num ";
String selectsql = "select t.*, s.name supermarket_name ";
String fromsql = "from ordercluster t \n" +
" left join supermarket s on s.id = t.supermarket_id \n" +
" left join ( \n" +
" select t.ordercluster_id, count(*) truck_num from ordercluster_truck t \n" +
" group by t.ordercluster_id \n" +
" ) a on ordercluster_id = t.id \n" +
" where t.customer_id is null \n ";
List<Object> paraList = new ArrayList<>();
@ -113,27 +110,24 @@ public class OrderclusterService extends BaseService {
List<Record> list = page.getList();
setOverWeight(list);
setTruckNum(list);
return page;
}
public Page<Record> findCluster(PageParam pp,
Integer supermarket_id,
Integer trans_co_id,
Integer customer_id,
String customer_name,
String stm,
String etm,
Integer state,
Integer product_id
Integer supermarket_id,
Integer trans_co_id,
Integer customer_id,
String customer_name,
String stm,
String etm,
Integer state,
Integer product_id
) {
String selectsql = "select t.*, s.name supermarket_name, a.truck_num ";
String selectsql = "select t.*, s.name supermarket_name ";
String fromsql = "from ordercluster t \n" +
" left join supermarket s on s.id = t.supermarket_id \n " +
" left join ( \n" +
" select t.ordercluster_id, count(*) truck_num from ordercluster_truck t \n" +
" group by t.ordercluster_id \n" +
" ) a on ordercluster_id = t.id \n" +
" where t.customer_id is not null \n ";
List<Object> paraList = new ArrayList<>();
@ -197,6 +191,7 @@ public class OrderclusterService extends BaseService {
List<Record> list = page.getList();
setOverWeight(list);
setTruckNum(list);
return page;
}
@ -343,6 +338,46 @@ public class OrderclusterService extends BaseService {
return list;
}
public void setTruckNum(List<Record> list) {
if (list == null || list.isEmpty()) {
return;
}
StringBuilder ids = new StringBuilder();
Map<Integer, List<OrderclusterTruck>> map = new HashMap<>();
for (Record record : list) {
if (ids.length() > 0) {
ids.append(", ");
}
ids.append(record.getStr("id"));
}
List<OrderclusterTruck> trucks = OrderclusterTruck.dao.find("select * from ordercluster_truck t where t.ordercluster_id in(" + ids.toString() + ")");
for (OrderclusterTruck oct : trucks) {
int ordercluster_id = oct.getOrderclusterId();
if (!map.containsKey(ordercluster_id)) {
map.put(ordercluster_id, new ArrayList<>());
}
map.get(ordercluster_id).add(oct);
}
for (Record record : list) {
int ordercluster_id = record.getInt("id");
if (map.containsKey(ordercluster_id)) {
record.set("truck_num", map.get(ordercluster_id).size());
record.set("trucks", map.get(ordercluster_id));
} else {
record.set("truck_num", 0);
record.set("trucks", new ArrayList<>());
}
}
}
public void setOverWeight(List<Record> list) {
// 使用已完成的订单动态计算剩余量
if (list == null || list.isEmpty()) {