提货-1
parent
e16d12a92e
commit
545a12f3ee
|
|
@ -1134,5 +1134,22 @@ public abstract class BaseOrderTemp<M extends BaseOrderTemp<M>> extends BaseMode
|
|||
return getStr("ticket_code");
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param saleType 类型:0:正常配额订单,1:预售配额订单
|
||||
*/
|
||||
@JSONField(name = "sale_type")
|
||||
public void setSaleType(Integer saleType) {
|
||||
set("sale_type", saleType);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return 类型:0:正常配额订单,1:预售配额订单
|
||||
*/
|
||||
@JSONField(name = "sale_type")
|
||||
public Integer getSaleType() {
|
||||
return getInt("sale_type");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,6 +66,29 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
return getStr("uuid");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: presell_order_id
|
||||
* type: CHAR(32)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
*
|
||||
* @param presellOrderId 唯一验证
|
||||
*/
|
||||
@JSONField(name = "presell_order_id")
|
||||
public void setPresellOrderId(String presellOrderId) {
|
||||
set("presell_order_id", presellOrderId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return presell_order_id 唯一验证
|
||||
*/
|
||||
@JSONField(name = "presell_order_id")
|
||||
public String getPresellOrderId() {
|
||||
return getStr("presell_order_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: total_weight
|
||||
* type: DECIMAL(12,2)
|
||||
|
|
@ -1003,4 +1026,22 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
public Integer getMaxTruck() {
|
||||
return getInt("max_truck");
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param saleType 类型:0:正常配额订单,1:预售配额订单
|
||||
*/
|
||||
@JSONField(name = "sale_type")
|
||||
public void setSaleType(Integer saleType) {
|
||||
set("sale_type", saleType);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return 类型:0:正常配额订单,1:预售配额订单
|
||||
*/
|
||||
@JSONField(name = "sale_type")
|
||||
public Integer getSaleType() {
|
||||
return getInt("sale_type");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ public class OrderclusterService extends BaseService {
|
|||
String stm,
|
||||
String etm,
|
||||
Integer state,
|
||||
Integer product_id
|
||||
Integer product_id,
|
||||
Integer sale_type
|
||||
) {
|
||||
String selectsql = "select t.*, s.name supermarket_name ";
|
||||
String fromsql = "from ordercluster t \n" +
|
||||
|
|
@ -93,6 +94,11 @@ public class OrderclusterService extends BaseService {
|
|||
paraList.add(product_id);
|
||||
}
|
||||
|
||||
if (sale_type != null && (sale_type == 0 || sale_type == 1)) {
|
||||
fromsql += " and t.sale_type = ? \n";
|
||||
paraList.add(sale_type);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(stm)) {
|
||||
fromsql += " and t.cutoff_time >= ? \n";
|
||||
paraList.add(stm);
|
||||
|
|
@ -136,7 +142,8 @@ public class OrderclusterService extends BaseService {
|
|||
String stm,
|
||||
String etm,
|
||||
Integer state,
|
||||
Integer product_id
|
||||
Integer product_id,
|
||||
Integer sale_type
|
||||
) {
|
||||
String selectsql = "select t.*, s.name supermarket_name ";
|
||||
String fromsql = "from ordercluster t \n" +
|
||||
|
|
@ -184,6 +191,11 @@ public class OrderclusterService extends BaseService {
|
|||
paraList.add(product_id);
|
||||
}
|
||||
|
||||
if (sale_type != null && (sale_type == 0 || sale_type == 1)) {
|
||||
fromsql += " and t.sale_type = ? \n";
|
||||
paraList.add(sale_type);
|
||||
}
|
||||
|
||||
String totalRowSql = "select count(*) " + fromsql;
|
||||
String findSql = selectsql + fromsql;
|
||||
|
||||
|
|
@ -296,14 +308,25 @@ public class OrderclusterService extends BaseService {
|
|||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public List<Ordercluster> undonlist(int supermarket_id, Integer customer_id, String date) {
|
||||
public List<Ordercluster> undonlist(int supermarket_id, Integer customer_id, String date, Integer sale_type) {
|
||||
String sql = "select * from ordercluster t \n" +
|
||||
" where t.state < ? \n" +
|
||||
" and t.supermarket_id = ? \n" +
|
||||
" and t.customer_id = ? \n" +
|
||||
" and t.cutoff_time like ? \n";
|
||||
|
||||
return Ordercluster.dao.find(sql, OrderStateEnum.RECEIVED.getStateid(), supermarket_id, customer_id, date + "%");
|
||||
List<Object> paramsList = new ArrayList<>();
|
||||
paramsList.add(OrderStateEnum.RECEIVED.getStateid());
|
||||
paramsList.add(supermarket_id);
|
||||
paramsList.add(customer_id);
|
||||
paramsList.add(date + "%");
|
||||
|
||||
if (sale_type != null && (sale_type == 0 || sale_type == 1)) {
|
||||
sql += "and t.sale_type = ? \n";
|
||||
paramsList.add(sale_type);
|
||||
}
|
||||
|
||||
return Ordercluster.dao.find(sql, paramsList.toArray());
|
||||
}
|
||||
|
||||
public List<Record> undonlist(Integer customer_id) {
|
||||
|
|
@ -324,7 +347,7 @@ public class OrderclusterService extends BaseService {
|
|||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public List<Record> undonlist(int supermarket_id, Integer customer_id) {
|
||||
public List<Record> undonlist(int supermarket_id, Integer customer_id, Integer sale_type) {
|
||||
String sql = "select * from ordercluster t \n" +
|
||||
" where t.state < ? \n" +
|
||||
" and t.supermarket_id = ? \n";
|
||||
|
|
@ -337,6 +360,11 @@ public class OrderclusterService extends BaseService {
|
|||
paraList.add(customer_id);
|
||||
}
|
||||
|
||||
if (sale_type != null && (sale_type == 0 || sale_type == 1)) {
|
||||
sql += " and t.sale_type = ? \n";
|
||||
paraList.add(sale_type);
|
||||
}
|
||||
|
||||
return Db.find(sql, paraList.toArray());
|
||||
}
|
||||
|
||||
|
|
@ -356,19 +384,21 @@ public class OrderclusterService extends BaseService {
|
|||
return Db.find(sql, ts.toArray());
|
||||
}
|
||||
|
||||
public List<Record> undonlist(int supermarket_id, int customer_id, String start_time, String cutoff_time) {
|
||||
public List<Record> undonlist(int supermarket_id, int customer_id, String start_time, String cutoff_time, int sale_type) {
|
||||
List<Object> ts = new ArrayList<>();
|
||||
ts.add(OrderStateEnum.RECEIVED.getStateid());
|
||||
ts.add(cutoff_time + " 23:59:59");
|
||||
ts.add(start_time + " 00:00:00");
|
||||
ts.add(supermarket_id);
|
||||
ts.add(customer_id);
|
||||
ts.add(sale_type);
|
||||
String sql = "select * from ordercluster t \n" +
|
||||
" where t.state < ? \n" +
|
||||
" and t.start_time <= ? \n" +
|
||||
" and t.cutoff_time >= ? \n" +
|
||||
" and t.supermarket_id = ? \n" +
|
||||
" and t.customer_id = ? ";
|
||||
" and t.customer_id = ? \n" +
|
||||
" and t.sale_type = ?";
|
||||
return Db.find(sql, ts.toArray());
|
||||
}
|
||||
|
||||
|
|
@ -380,8 +410,8 @@ public class OrderclusterService extends BaseService {
|
|||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public List<Record> undoneOrdercluster(int supermarket_id, Integer customer_id) {
|
||||
List<Record> list = undonlist(supermarket_id, customer_id);
|
||||
public List<Record> undoneOrdercluster(int supermarket_id, Integer customer_id, Integer sale_type) {
|
||||
List<Record> list = undonlist(supermarket_id, customer_id, sale_type);
|
||||
|
||||
setOverWeight(list);
|
||||
|
||||
|
|
@ -688,31 +718,34 @@ public class OrderclusterService extends BaseService {
|
|||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public BigDecimal undoPrice(int customer_id) {
|
||||
public BigDecimal undoPrice(int customer_id, int sale_type) {
|
||||
String sql = "select(\n" +
|
||||
" select sum(t.`total_weight` * t.`unit_price`) `total_price`\n" +
|
||||
" from `ordercluster` t\n" +
|
||||
" where t.`customer_id`= ?\n" +
|
||||
" and t.state < ? ) - (\n" +
|
||||
" and t.state < ? and t.sale_type = ?) - (\n" +
|
||||
" select sum(t.`weight` * t.`unit_price`) total_price\n" +
|
||||
" from order_temp t\n" +
|
||||
" where exists(\n" +
|
||||
" select 1 from `ordercluster` o\n" +
|
||||
" where o.`customer_id`= ?\n" +
|
||||
" and o.id= t.`ordercluster_id`\n" +
|
||||
" and o.`state`< ?" +
|
||||
" and o.`state`< ? and o.sale_type = ?" +
|
||||
" )\n" +
|
||||
" and t.`customer_id`= ?\n" +
|
||||
" and t.`state`= ?)";
|
||||
" and t.`state`= ? and t.sale_type = ?)";
|
||||
|
||||
BigDecimal out = Db.queryBigDecimal(
|
||||
sql,
|
||||
customer_id,
|
||||
OrderStateEnum.RECEIVED.getStateid(),
|
||||
sale_type,
|
||||
customer_id,
|
||||
OrderStateEnum.RECEIVED.getStateid(),
|
||||
sale_type,
|
||||
customer_id,
|
||||
OrderStateEnum.RECEIVED.getStateid()
|
||||
OrderStateEnum.RECEIVED.getStateid(),
|
||||
sale_type
|
||||
);
|
||||
|
||||
return out == null ? new BigDecimal("0") : out;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
package com.cowr.ssjygl.order.ordercluster;
|
||||
|
||||
import com.cowr.common.utils.DateTimeUtil;
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.Ordercluster;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Fri Apr 17 16:59:39 CST 2020
|
||||
* TableName: ordercluster
|
||||
* Remarks: 订单相关 - 订单(预售客户配额)
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellOrderclusterValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
|
||||
validateString("uuid", 1, 32, "uuid", "uuid 长度 1~32");
|
||||
validateString("presell_order_id", 1, 32, "presell_order_id", "presell_order_id 长度 1~32");
|
||||
|
||||
validateBigDecimal("total_weight", new java.math.BigDecimal(0), new java.math.BigDecimal(9.9999999999E10), "total_weight", "total_weight 范围 0~9.9999999999E10");
|
||||
|
||||
validateDate("start_time", "yyyy-MM-dd HH:mm:ss", true, "start_time", "start_time 格式 yyyy-MM-dd HH:mm:ss"); // 默认时间时间字符串格式,生成后根据情况调整
|
||||
validateDate("cutoff_time", "yyyy-MM-dd HH:mm:ss", true, "cutoff_time", "cutoff_time 格式 yyyy-MM-dd HH:mm:ss"); // 默认时间时间字符串格式,生成后根据情况调整
|
||||
|
||||
if (DateTimeUtil.isEarlyToday(c.get("start_time"))) {
|
||||
addError("start_time", "起始时间不能早于今天");
|
||||
}
|
||||
if (!DateTimeUtil.isStmLtEtm(c.get("start_time"), c.get("cutoff_time"))) {
|
||||
addError("start_time", "起始时间不能早于截止时间");
|
||||
}
|
||||
|
||||
validateInteger("customer_id", 1, 2147483647, "customer_id", "customer_id 范围 1~2147483647");
|
||||
validateInteger("supermarket_id", 1, 2147483647, "supermarket_id", "supermarket_id 范围 1~2147483647");
|
||||
validateInteger("product_id", 1, 2147483647, "product_id", "product_id 范围 1~2147483647");
|
||||
|
||||
validateInteger("mini_truck", 1, 2147483647, "mini_truck", "mini_truck 范围 1~2147483647");
|
||||
validateInteger("max_truck", 1, 2147483647, "max_truck", "max_truck 范围 1~2147483647");
|
||||
validateInteger("time_interval", 1, 3, "time_interval", "time_interval 范围 1~3");
|
||||
|
||||
if (c.getInt("mini_truck") > c.getInt("max_truck")) {
|
||||
addError("mini_truck", "最低运输车辆不能超过最高运输车辆数");
|
||||
}
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
// 这里用 getActionMethodName 写死,判断是 update 时,才做验证
|
||||
// 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段
|
||||
if ("edit".equals(getActionMethodName())) {
|
||||
validateUpdateModel(Ordercluster.class, "", true); // 忽略不在model中的字段
|
||||
}
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import com.cowr.model.*;
|
|||
import com.cowr.ssjygl.CacheData;
|
||||
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
|
||||
import com.cowr.ssjygl.prepay.refunddetail.RefundDetailService;
|
||||
import com.cowr.ssjygl.presellorder.PresellOrderService;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.log.Log;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
|
|
@ -139,6 +140,9 @@ public class PrepayService {
|
|||
Record out = new Record();
|
||||
//获取账户可用余额
|
||||
BigDecimal availableBalance = RefundDetailService.me.getAvailableBalance(prepayCustomer.getCustomerId(), prepayCustomer.getSurplus());
|
||||
if (ordercluster.getSaleType() == 1) {
|
||||
availableBalance = PresellOrderService.me.getPresellCustomerSurplusById(ordercluster.getPresellOrderId());
|
||||
}
|
||||
out.set("prepay_truck", true);
|
||||
out.set("prepay_threshold", prepayCustomer.getThreshold());
|
||||
out.set("prepay_truck_type", OrderTypeEnum.TEMP.getTypeid()); // 浠水固定只有外销
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ 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;
|
||||
|
|
@ -23,7 +24,8 @@ public class PresellOrderService extends BaseService {
|
|||
public static final PresellOrderService me = new PresellOrderService();
|
||||
|
||||
public Page<Record> find(PageParam pp, Integer customer_id, Integer supermarket_id, Integer del, String name, String stm, String etm) {
|
||||
String selectsql = "select t.*, c.name customer_name, s.name supermarket_name, c.address, c.texpayer_name, c.texpayer_num, c.memo, p.surplus \n";
|
||||
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 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" +
|
||||
|
|
@ -81,7 +83,8 @@ public class PresellOrderService extends BaseService {
|
|||
}
|
||||
|
||||
public List<PresellOrder> list(Integer customer_id, Integer supermarket_id, Integer del, String name, String stm, String etm) {
|
||||
String sql = "select t.*, c.name customer_name, s.name supermarket_name, c.address, c.texpayer_name, c.texpayer_num, c.memo, p.surplus \n" +
|
||||
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" +
|
||||
" 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" +
|
||||
|
|
@ -122,5 +125,9 @@ public class PresellOrderService extends BaseService {
|
|||
return PresellOrder.dao.find(sql, paraList.toArray());
|
||||
}
|
||||
|
||||
|
||||
public BigDecimal getPresellCustomerSurplusById(String id) {
|
||||
String sql = "select t.presell_amount - t.pug_amount as surplus from presell_order t\n" +
|
||||
"WHERE t.id = ?";
|
||||
return Db.queryBigDecimal(sql, id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2546,7 +2546,7 @@ public class OrderStatService {
|
|||
return recordList;
|
||||
}
|
||||
|
||||
public Record yearStatisticsByCustomerId(String year, Integer customer_id, String customer_name, Integer type) {
|
||||
public Record yearStatisticsByCustomerId(String year, Integer customer_id, String customer_name, Integer type, Integer sale_type) {
|
||||
String sql;
|
||||
Record rec;
|
||||
if (type == 1) { // 固定配额
|
||||
|
|
@ -3036,6 +3036,11 @@ public class OrderStatService {
|
|||
} else if(yhList2.size() == 1) {
|
||||
yhList1.addAll(yhList2);
|
||||
}
|
||||
} else {
|
||||
for (Record s : sups) {
|
||||
Record p = new Record().set("id", s.getInt("id")).set("total_price", new BigDecimal(0));
|
||||
yhList1.add(p);
|
||||
}
|
||||
}
|
||||
if (sups.size() > 0) {
|
||||
for (Record s : sups) {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import com.jfinal.aop.Before;
|
|||
public class OrderclusterController extends BaseController {
|
||||
|
||||
/**
|
||||
* 分页查找 ordercluster 订单簇 - 集团客户订单
|
||||
* 分页查找 ordercluster 订单簇 - 临时订单
|
||||
*/
|
||||
public void findTemp() {
|
||||
PageParam pp = getBean(PageParam.class, "", true);
|
||||
|
|
@ -23,6 +23,7 @@ public class OrderclusterController extends BaseController {
|
|||
String etm = get("etm");
|
||||
String customer_name = get("customer_name");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer sale_type = getInt("sale_type", 0);
|
||||
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
|
|
@ -34,7 +35,7 @@ public class OrderclusterController extends BaseController {
|
|||
|
||||
Integer state = getInt("state");
|
||||
Integer product_id = getInt("product_id");
|
||||
renderJson(Result.object(OrderclusterService.me.findTemp(pp, supermarket_id, customer_name, stm, etm, state, product_id)));
|
||||
renderJson(Result.object(OrderclusterService.me.findTemp(pp, supermarket_id, customer_name, stm, etm, state, product_id, sale_type)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -47,6 +48,7 @@ public class OrderclusterController extends BaseController {
|
|||
String customer_name = get("customer_name");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer sale_type = getInt("sale_type");
|
||||
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
|
|
@ -61,7 +63,7 @@ public class OrderclusterController extends BaseController {
|
|||
Integer state = getInt("state");
|
||||
Integer product_id = getInt("product_id");
|
||||
Integer trans_co_id = getInt("trans_co_id");
|
||||
renderJson(Result.object(OrderclusterService.me.findCluster(pp, supermarket_id, trans_co_id, customer_id, customer_name, stm, etm, state, product_id)));
|
||||
renderJson(Result.object(OrderclusterService.me.findCluster(pp, supermarket_id, trans_co_id, customer_id, customer_name, stm, etm, state, product_id, sale_type)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -115,7 +117,8 @@ public class OrderclusterController extends BaseController {
|
|||
public void undoneOrdercluster() {
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer sale_type = getInt("sale_type", 0);
|
||||
|
||||
renderJson(Result.object(OrderclusterService.me.undoneOrdercluster(supermarket_id, customer_id)));
|
||||
renderJson(Result.object(OrderclusterService.me.undoneOrdercluster(supermarket_id, customer_id, sale_type)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import com.cowr.ssjygl.invoice.log.InvoiceLogService;
|
|||
import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService;
|
||||
import com.cowr.ssjygl.order.ordercluster.OrderclusterService;
|
||||
import com.cowr.ssjygl.prepay.refunddetail.RefundDetailService;
|
||||
import com.cowr.ssjygl.presellorder.PresellOrderService;
|
||||
import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
|
||||
import com.cowr.ssjygl.ticket.log.TicketLogService;
|
||||
|
|
@ -734,6 +735,9 @@ public class OrderTempSyncService {
|
|||
}
|
||||
//账户可用余额
|
||||
BigDecimal availableBalance = RefundDetailService.me.getAvailableBalance(prepayCustomer.getCustomerId(), prepayCustomer.getSurplus());
|
||||
if (ordercluster.getSaleType() == 1) {
|
||||
availableBalance = PresellOrderService.me.getPresellCustomerSurplusById(ordercluster.getPresellOrderId());
|
||||
}
|
||||
if (availableBalance == null || availableBalance.compareTo(min) <= 0) {
|
||||
return Result.failed("客户余额不足");
|
||||
}
|
||||
|
|
@ -850,6 +854,7 @@ public class OrderTempSyncService {
|
|||
order.setSettlementUserName(sysuser.getName());
|
||||
|
||||
order.setState(OrderStateEnum.RECEIVED.getStateid()); // 直接完成,没有前面的过程
|
||||
order.setSaleType(ordercluster.getSaleType());
|
||||
order.setCreateTime(now);
|
||||
order.setMemo(memo); // 备注
|
||||
|
||||
|
|
@ -877,24 +882,46 @@ public class OrderTempSyncService {
|
|||
order.setPaid(new BigDecimal(0)); // 预付费的实际支付为 0
|
||||
order.setPrepayCustomerId(prepayCustomer.getId());
|
||||
|
||||
if (prepayCustomer.getSurplus().compareTo(order.getTotalPrice().setScale(2, BigDecimal.ROUND_HALF_UP)) < 0) {
|
||||
return false;
|
||||
}
|
||||
if (ordercluster.getSaleType() == 0) {
|
||||
if (prepayCustomer.getSurplus().compareTo(order.getTotalPrice().setScale(2, BigDecimal.ROUND_HALF_UP)) < 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
synctask.addIncrementData(
|
||||
prepayCustomer.getTablename(),
|
||||
"id",
|
||||
prepayCustomer.getId(),
|
||||
new JSONObject().fluentPut("surplus", new BigDecimal(0).subtract(order.getTotalPrice())) // 结算完成,在原余额上加上一个负数
|
||||
);
|
||||
synctask.addIncrementData(
|
||||
prepayCustomer.getTablename(),
|
||||
"id",
|
||||
prepayCustomer.getId(),
|
||||
new JSONObject().fluentPut("surplus", new BigDecimal(0).subtract(order.getTotalPrice())) // 结算完成,在原余额上加上一个负数
|
||||
);
|
||||
|
||||
// 只更新本地 prepayCustomer 的 surplus
|
||||
prepayCustomer.setSurplus(prepayCustomer.getSurplus().subtract(order.getTotalPrice()));
|
||||
// 只更新本地 prepayCustomer 的 surplus
|
||||
prepayCustomer.setSurplus(prepayCustomer.getSurplus().subtract(order.getTotalPrice()));
|
||||
|
||||
ret = prepayCustomer.update();
|
||||
ret = prepayCustomer.update();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
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;
|
||||
}
|
||||
|
||||
// 同步到其它砂站
|
||||
synctask.addUpdateData(presellOrder);
|
||||
}
|
||||
|
||||
ret = order.save() && transport.update();
|
||||
|
|
@ -915,30 +942,32 @@ public class OrderTempSyncService {
|
|||
synctask.addUpdateData(ordercluster);
|
||||
}
|
||||
|
||||
Stock stock = Stock.dao.findByIds(transport.getSupermarketId(), order.getProductId());
|
||||
if (stock == null) {
|
||||
log.error("未找到库存信息 %s, %s", order.getSupermarketId(), order.getProductId());
|
||||
if (ordercluster.getSaleType() == 0) {
|
||||
Stock stock = Stock.dao.findByIds(transport.getSupermarketId(), order.getProductId());
|
||||
if (stock == null) {
|
||||
log.error("未找到库存信息 %s, %s", order.getSupermarketId(), order.getProductId());
|
||||
|
||||
stock = new Stock();
|
||||
stock.setProductId(order.getProductId());
|
||||
stock.setSupermarketId(order.getSupermarketId());
|
||||
stock.setStockWeight(new BigDecimal(0).subtract(net_weight));
|
||||
ret = stock.save();
|
||||
stock = new Stock();
|
||||
stock.setProductId(order.getProductId());
|
||||
stock.setSupermarketId(order.getSupermarketId());
|
||||
stock.setStockWeight(new BigDecimal(0).subtract(net_weight));
|
||||
ret = stock.save();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
synctask.addSaveData(stock);
|
||||
} else {
|
||||
stock.setStockWeight(stock.getStockWeight().subtract(net_weight)); // 销售减库存
|
||||
ret = stock.update();
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
synctask.addSaveData(stock);
|
||||
} else {
|
||||
stock.setStockWeight(stock.getStockWeight().subtract(net_weight)); // 销售减库存
|
||||
ret = stock.update();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
synctask.addUpdateData(stock);
|
||||
}
|
||||
synctask.addUpdateData(stock);
|
||||
}
|
||||
}
|
||||
|
||||
// if (finalReceive != null) {
|
||||
if (customer.getInvoiceType() == 1) {
|
||||
|
|
|
|||
|
|
@ -366,6 +366,7 @@ public class OrderStatController extends BaseController {
|
|||
Integer customer_id = getInt("customer_id");
|
||||
String customer_name = get("customer_name");
|
||||
Integer type = getInt("type");
|
||||
renderJson(Result.object(OrderStatService.me.yearStatisticsByCustomerId(year, customer_id, customer_name, type)));
|
||||
Integer sale_type = getInt("sale_type", 0);
|
||||
renderJson(Result.object(OrderStatService.me.yearStatisticsByCustomerId(year, customer_id, customer_name, type, sale_type)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@ import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService;
|
|||
import com.cowr.ssjygl.order.ordercluster.OrderclusterPKValidator;
|
||||
import com.cowr.ssjygl.order.ordercluster.OrderclusterService;
|
||||
import com.cowr.ssjygl.order.ordercluster.OrderclusterValidator;
|
||||
import com.cowr.ssjygl.order.ordercluster.PresellOrderclusterValidator;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.log.Log;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
public class OrderclusterController extends BaseController {
|
||||
|
|
@ -82,6 +82,22 @@ public class OrderclusterController extends BaseController {
|
|||
renderJson(OrderclusterSyncService.me.save(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增 ordercluster 订单簇 - 预售客户订单
|
||||
*/
|
||||
@Before(PresellOrderclusterValidator.class)
|
||||
public void savePresell() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
Ordercluster model = getModel(Ordercluster.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(OrderclusterSyncService.me.savePresell(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 ordercluster 订单簇 - 集团客户订单
|
||||
*/
|
||||
|
|
@ -122,6 +138,7 @@ public class OrderclusterController extends BaseController {
|
|||
String etm = get("etm");
|
||||
String customer_name = get("customer_name");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer sale_type = getInt("sale_type", 0);
|
||||
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
|
|
@ -133,7 +150,7 @@ public class OrderclusterController extends BaseController {
|
|||
|
||||
Integer state = getInt("state");
|
||||
Integer product_id = getInt("product_id");
|
||||
renderJson(Result.object(OrderclusterService.me.findTemp(pp, supermarket_id, customer_name, stm, etm, state, product_id)));
|
||||
renderJson(Result.object(OrderclusterService.me.findTemp(pp, supermarket_id, customer_name, stm, etm, state, product_id, sale_type)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -146,6 +163,7 @@ public class OrderclusterController extends BaseController {
|
|||
String customer_name = get("customer_name");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer sale_type = getInt("sale_type");
|
||||
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
|
|
@ -160,7 +178,7 @@ public class OrderclusterController extends BaseController {
|
|||
Integer state = getInt("state");
|
||||
Integer product_id = getInt("product_id");
|
||||
Integer trans_co_id = getInt("trans_co_id");
|
||||
renderJson(Result.object(OrderclusterService.me.findCluster(pp, supermarket_id, trans_co_id, customer_id, customer_name, stm, etm, state, product_id)));
|
||||
renderJson(Result.object(OrderclusterService.me.findCluster(pp, supermarket_id, trans_co_id, customer_id, customer_name, stm, etm, state, product_id, sale_type)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -249,6 +267,8 @@ public class OrderclusterController extends BaseController {
|
|||
public void getMaximumConfiguration(){
|
||||
String unit_price = get("unit_price");
|
||||
int customer_id=getInt("customer_id");
|
||||
renderJson(OrderclusterSyncService.me.getMaximumConfiguration(customer_id, unit_price));
|
||||
int sale_type = getInt("sale_type");
|
||||
String presell_order_id = get("presell_order_id");
|
||||
renderJson(OrderclusterSyncService.me.getMaximumConfiguration(customer_id, unit_price, presell_order_id, sale_type));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
}
|
||||
|
||||
// 客户在所有砂站的未完成的配额中,未执行完成的总金额
|
||||
BigDecimal undo_price = OrderclusterService.me.undoPrice(customer_id);
|
||||
BigDecimal undo_price = OrderclusterService.me.undoPrice(customer_id, 0);
|
||||
BigDecimal plan_total_price = (new BigDecimal(total_weight).setScale(decimal, BigDecimal.ROUND_HALF_UP)).multiply(unitprice).add(undo_price); // 本次配额总价格
|
||||
|
||||
// 本次计划总额加上未完成的量,不能超过余额
|
||||
|
|
@ -151,7 +151,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
// 超时在指定时间段内还有未完成的配额
|
||||
String query_start_time = DateTimeUtil.sdf.get().format(start_time);
|
||||
String query_cutoff_time = DateTimeUtil.sdf.get().format(cutoff_time);
|
||||
List<Record> undonlist = OrderclusterService.me.undonlist(supermarket_id, customer_id, query_start_time, query_cutoff_time);
|
||||
List<Record> undonlist = OrderclusterService.me.undonlist(supermarket_id, customer_id, query_start_time, query_cutoff_time, 0);
|
||||
|
||||
if (undonlist != null && !undonlist.isEmpty()) {
|
||||
return Result.failedstr("客户[%s]在砂站[%s][%s]至[%s]内还有未完成的配额", customerObj.getName(), SvrCacheData.SUP_CACHE.get(supermarket_id).getName(), query_start_time, query_cutoff_time);
|
||||
|
|
@ -189,6 +189,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
|
||||
model.setReqReceipt(customerObj.getInvoiceType() == 1 ? 1 : 0); // 客户是普票,这里就开发票, req_receipt 设为 1;客户是专票的,这里开结算单,req_receipt 设置为 0
|
||||
model.setPayType(2);
|
||||
model.setSaleType(0);
|
||||
model.setUuid(StrKit.getRandomUUID());
|
||||
|
||||
newlist.add(model);
|
||||
|
|
@ -467,7 +468,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
model.setCustomerTexpayerNum(customerObj.getTexpayerNum());
|
||||
}
|
||||
|
||||
List<Record> list = OrderclusterService.me.undonlist(model.getSupermarketId(), model.getCustomerId());
|
||||
List<Record> list = OrderclusterService.me.undonlist(model.getSupermarketId(), model.getCustomerId(), model.getSaleType());
|
||||
|
||||
if (list != null && !list.isEmpty()) {
|
||||
return Result.failed("还有未完成的集团订单");
|
||||
|
|
@ -530,6 +531,129 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预售配额
|
||||
* @param model
|
||||
* @param sysuser
|
||||
* @return
|
||||
*/
|
||||
public Result savePresell(Ordercluster model, Sysuser sysuser) {
|
||||
if (model.checkDuplicate("uuid")) {
|
||||
return Result.failed(false, "新增失败, uuid 已存在");
|
||||
}
|
||||
|
||||
Supermarket supermarket = SvrCacheData.SUP_CACHE.get(model.getSupermarketId());
|
||||
if (supermarket == null) {
|
||||
return Result.failed("砂站信息无效");
|
||||
}
|
||||
|
||||
if (supermarket.getIsdeploy() == 0) {
|
||||
return Result.failedstr("[%s]砂站还未部署", supermarket.getName());
|
||||
}
|
||||
|
||||
Customer customerObj = Customer.dao.findById(model.getCustomerId());
|
||||
if (customerObj == null) {
|
||||
return Result.failed("客户信息错误");
|
||||
}
|
||||
|
||||
PrepayCustomer prepayCustomer = PrepayCustomerService.me.getPrepayCustomer(model.getCustomerId());
|
||||
if (prepayCustomer == null) {
|
||||
return Result.failed("不是预付费用户");
|
||||
}
|
||||
|
||||
Product product = Product.dao.findById(model.getProductId());
|
||||
if (product == null) {
|
||||
return Result.failedstr("没有找到商品信息【%s】", model.getProductId());
|
||||
}
|
||||
|
||||
BigDecimal unitprice = CustomerSupermarketProductService.me.getUnitPrice(model.getCustomerId(), model.getSupermarketId(), model.getProductId());
|
||||
if (unitprice == null) {
|
||||
return Result.failed("未配置商品单价");
|
||||
}
|
||||
|
||||
// 获取预售单中的预售金额
|
||||
PresellOrder presellOrder = PresellOrder.dao.findById(model.getPresellOrderId());
|
||||
if (presellOrder == null) {
|
||||
return Result.failed("未获取到预售单");
|
||||
}
|
||||
|
||||
List<Record> list = OrderclusterService.me.undonlist(model.getSupermarketId(), model.getCustomerId(), 1);
|
||||
|
||||
if (list != null && !list.isEmpty()) {
|
||||
return Result.failed("还有未完成的预售订单");
|
||||
}
|
||||
|
||||
// 余额
|
||||
BigDecimal surplus = presellOrder.getPresellAmount().subtract(presellOrder.getPugAmount());
|
||||
|
||||
if (unitprice.multiply(model.getTotalWeight()).compareTo(surplus) > 0) {
|
||||
return Result.failedstr("余额 %.2f 不足以购买 %.2f 吨 %s", surplus, model.getTotalWeight(), product.getName());
|
||||
}
|
||||
|
||||
// 客户在所有砂站的未完成的配额中,未执行完成的总金额
|
||||
BigDecimal undo_price = OrderclusterService.me.undoPrice(model.getCustomerId(), 1);
|
||||
BigDecimal plan_total_price = model.getTotalWeight().multiply(unitprice).add(undo_price); // 本次配额总价格
|
||||
|
||||
// 本次计划总额加上未完成的量,不能超过余额
|
||||
if (plan_total_price.compareTo(surplus) > 0) {
|
||||
return Result.failedstr("共计总配额达 %.2f元,客户余额(%.2f元)不足", plan_total_price, surplus);
|
||||
}
|
||||
|
||||
// 超时在指定时间段内还有未完成的配额
|
||||
String query_start_time = DateTimeUtil.sdf.get().format(model.getStartTime());
|
||||
String query_cutoff_time = DateTimeUtil.sdf.get().format(model.getCutoffTime());
|
||||
List<Record> undonlist = OrderclusterService.me.undonlist(model.getSupermarketId(), model.getCustomerId(), query_start_time, query_cutoff_time, 1);
|
||||
|
||||
if (undonlist != null && !undonlist.isEmpty()) {
|
||||
return Result.failedstr("客户[%s]在砂站[%s][%s]至[%s]内还有未完成的配额",
|
||||
customerObj.getName(), SvrCacheData.SUP_CACHE.get(model.getSupermarketId()).getName(), query_start_time, query_cutoff_time);
|
||||
}
|
||||
|
||||
// 客户信息
|
||||
model.setCustomerId(customerObj.getId());
|
||||
model.setCustomerAddress(customerObj.getAddress());
|
||||
model.setCustomerBankAccount(customerObj.getBankAccount());
|
||||
model.setCustomerBankName(customerObj.getBankName());
|
||||
model.setCustomerName(customerObj.getName());
|
||||
model.setCustomerPhone(customerObj.getPhone());
|
||||
model.setCustomerTexpayerName(customerObj.getTexpayerName());
|
||||
model.setCustomerTexpayerNum(customerObj.getTexpayerNum());
|
||||
|
||||
// TODO 最少车辆数需要在前端计算,计算结果用户可以修改
|
||||
model.setTransDistance(SupermarketReceiverDistanceService.me.getDistance(model.getSupermarketId(), model.getCustomerId()));
|
||||
model.setProductName(product.getName());
|
||||
model.setUnitPrice(unitprice); // 后端获取数据库中单价
|
||||
model.setCreateTime(new Date()); // 当前系统时间
|
||||
model.setCreateUserId(sysuser.getId()); // 当前用户id
|
||||
model.setCreateUserName(sysuser.getName());
|
||||
model.setState(OrderStateEnum.INITIAL.getStateid()); // 新增固定为 1
|
||||
model.setPayType(2);
|
||||
model.setSaleType(1);
|
||||
model.setReqReceipt(customerObj.getInvoiceType() == 1 ? 1 : 0); // 客户是普票,这里就开发票, req_receipt 设为 1;客户是专票的,这里开结算单,req_receipt 设置为 0
|
||||
|
||||
try {
|
||||
boolean ret = Db.tx(new IAtom() {
|
||||
@Override
|
||||
public boolean run() throws SQLException {
|
||||
try {
|
||||
return model.save()
|
||||
&& SyncTaskService.me.save(new SyncTask().addSaveData(model))
|
||||
&& ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), sysuser);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return ret ? Result.success(model) : Result.failed("保存失败");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.failed("保存失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Result updateTemp(Ordercluster model, String trucks, Sysuser sysuser) {
|
||||
Ordercluster oldobj = model.findByPk();
|
||||
|
|
@ -753,7 +877,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
}
|
||||
|
||||
// 客户在所有砂站的未完成的配额中,未执行完成的总金额
|
||||
BigDecimal undo_price = OrderclusterService.me.undoPrice(oldobj.getCustomerId());
|
||||
BigDecimal undo_price = OrderclusterService.me.undoPrice(oldobj.getCustomerId(), 0);
|
||||
BigDecimal plan_total_price;
|
||||
if (model.getTotalWeight().compareTo(oldobj.getTotalWeight()) > 0) { // 修改后,比原来的大
|
||||
BigDecimal ofsset_weight = model.getTotalWeight().subtract(oldobj.getTotalWeight()); // 本次修改增加的重量
|
||||
|
|
@ -765,8 +889,20 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
plan_total_price = undo_price.subtract(offset_total_price); // 剩余未完成金额加上本次增加的金额
|
||||
}
|
||||
|
||||
if (plan_total_price.compareTo(prepayCustomer.getSurplus()) > 0) {
|
||||
return Result.failedstr("共计总配额达 %.2f元,客户余额(%.2f元)不足", plan_total_price, prepayCustomer.getSurplus());
|
||||
if (oldobj.getSaleType() == 0) {
|
||||
if (plan_total_price.compareTo(prepayCustomer.getSurplus()) > 0) {
|
||||
return Result.failedstr("共计总配额达 %.2f元,客户余额(%.2f元)不足", plan_total_price, prepayCustomer.getSurplus());
|
||||
}
|
||||
} else {
|
||||
PresellOrder order = PresellOrder.dao.findById(oldobj.getPresellOrderId());
|
||||
if (order == null) {
|
||||
return Result.failed(false, "未获取到订单信息");
|
||||
}
|
||||
// 余额
|
||||
BigDecimal surplus = order.getPresellAmount().subtract(order.getPugAmount());
|
||||
if (plan_total_price.compareTo(surplus) > 0) {
|
||||
return Result.failedstr("共计总配额达 %.2f元,客户余额(%.2f元)不足", plan_total_price, surplus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -973,17 +1109,26 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
* @param unit_price 单价
|
||||
* @return
|
||||
*/
|
||||
public Map getMaximumConfiguration(int customer_id, String unit_price) {
|
||||
public Map getMaximumConfiguration(int customer_id, String unit_price, String presell_order_id, int sale_type) {
|
||||
Map result = new HashMap();
|
||||
Integer count = Db.queryInt("select count(distinct s.name) from ordercluster t \n" +
|
||||
" join supermarket s on s.id = t.supermarket_id \n" +
|
||||
" where t.state<5 and t.customer_id =?", customer_id);
|
||||
" where t.state<5 and t.customer_id =? and sale_type = ?", customer_id, sale_type);
|
||||
result.put("count", count);
|
||||
//当前用户如果只在一个沙场里面买沙,就计算最大可购买重量
|
||||
if (count <= 1) {
|
||||
PrepayCustomer prepayCustomer = PrepayCustomerService.me.getPrepayCustomer(customer_id);
|
||||
BigDecimal maximumConfiguration = new BigDecimal(0);
|
||||
BigDecimal availableBalance = RefundDetailService.me.getAvailableBalance(prepayCustomer.getCustomerId(), prepayCustomer.getSurplus());
|
||||
BigDecimal maximumConfiguration = availableBalance.divide(new BigDecimal(unit_price), 2, BigDecimal.ROUND_DOWN);
|
||||
if (sale_type == 0) {
|
||||
maximumConfiguration = availableBalance.divide(new BigDecimal(unit_price), 2, BigDecimal.ROUND_DOWN);
|
||||
} else {
|
||||
PresellOrder order = PresellOrder.dao.findById(presell_order_id);
|
||||
if (order != null) {
|
||||
availableBalance = order.getPresellAmount().subtract(order.getPugAmount());
|
||||
maximumConfiguration = availableBalance.divide(new BigDecimal(unit_price), 2, BigDecimal.ROUND_DOWN);
|
||||
}
|
||||
}
|
||||
result.put("maximumConfiguration", maximumConfiguration);
|
||||
}
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -80,12 +80,14 @@ public class OrderclusterTruckSyncService extends BaseSyncService {
|
|||
|
||||
ts.add(0, start_time); // 加到查询参数里面
|
||||
ts.add(0, cutoff_time); // 加到查询参数里面
|
||||
ts.add(0, ordercluster.getSaleType());
|
||||
ts.add(0, ordercluster_id); // 加到查询参数里面
|
||||
List<Record> chkduk = Db.find(
|
||||
"select * from ordercluster_truck t\n" +
|
||||
" left join ordercluster o on o.id = t.ordercluster_id\n" +
|
||||
" where t.ordercluster_id <> ? \n" +
|
||||
" and o.state < 5 \n" +
|
||||
" and o.sale_type < ? \n" +
|
||||
" and o.start_time <= ? \n" +
|
||||
" and o.cutoff_time >= ? \n" +
|
||||
" and t.truck_license in (" + StrKit.join(tsql, ",") + ")", ts.toArray());
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class PrepayTruckSyncService extends BaseSyncService {
|
|||
return Result.failed("砂站信息无效");
|
||||
}
|
||||
|
||||
List<Ordercluster> undonlist = OrderclusterService.me.undonlist(supermarket_id, customer_id, DateTimeUtil.sdf.get().format(valid_date));
|
||||
List<Ordercluster> undonlist = OrderclusterService.me.undonlist(supermarket_id, customer_id, DateTimeUtil.sdf.get().format(valid_date), 0);
|
||||
|
||||
if (undonlist == null || undonlist.isEmpty()) {
|
||||
return Result.failed("未找到有效的集团订单信息");
|
||||
|
|
@ -163,7 +163,7 @@ public class PrepayTruckSyncService extends BaseSyncService {
|
|||
}
|
||||
|
||||
String valid_date = DateTimeUtil.sdf.get().format(old.getValidDate());
|
||||
List<Ordercluster> undonlist = OrderclusterService.me.undonlist(old.getSupermarketId(), old.getCustomerId(), valid_date);
|
||||
List<Ordercluster> undonlist = OrderclusterService.me.undonlist(old.getSupermarketId(), old.getCustomerId(), valid_date, 0);
|
||||
|
||||
if (undonlist == null || undonlist.isEmpty()) {
|
||||
return Result.failed("未找到有效的集团订单信息");
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ package com.cowr.service.ssjygl.presellorder;
|
|||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.enums.Enums;
|
||||
import com.cowr.common.enums.OrderStateEnum;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.*;
|
||||
import com.cowr.service.ssjygl.base.BaseSyncService;
|
||||
import com.cowr.service.ssjygl.presellpugdetail.PresellPugDetailService;
|
||||
import com.cowr.service.ssjygl.synctask.SyncTaskService;
|
||||
import com.cowr.ssjygl.modifylog.ModifyLogService;
|
||||
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
|
||||
|
|
@ -104,13 +104,10 @@ public class PresellOrderSyncService extends BaseSyncService {
|
|||
return false;
|
||||
}
|
||||
|
||||
return SyncTaskService.me.save(synctask, model.getSupermarketId())
|
||||
return SyncTaskService.me.save(synctask)
|
||||
&& ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), tokenuser);
|
||||
}
|
||||
});
|
||||
if (ret) {
|
||||
SyncTaskService.me.send(synctask);
|
||||
}
|
||||
// todo客户余额变更时需短信通知
|
||||
|
||||
return ret ? Result.object(model) : Result.failed(false, "新增失败");
|
||||
|
|
@ -146,7 +143,7 @@ public class PresellOrderSyncService extends BaseSyncService {
|
|||
}
|
||||
|
||||
synctask.addUpdateData(oldobj);
|
||||
return SyncTaskService.me.save(synctask, model.getSupermarketId())
|
||||
return SyncTaskService.me.save(synctask)
|
||||
&& ModifyLogService.me.save(model, saveold, Enums.DataOpType.UPDATE.getId(), tokenuser);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
|
@ -180,7 +177,8 @@ public class PresellOrderSyncService extends BaseSyncService {
|
|||
}
|
||||
|
||||
// 如果预售单已经进行了配额则不能删除
|
||||
List<PresellPugDetail> list = PresellPugDetailService.me.getByPresellOrderId(model.getId());
|
||||
List<Ordercluster> list = Ordercluster.dao.find("select * from ordercluster where presell_order_id = ? and state != ?",
|
||||
model.getId(), OrderStateEnum.INVALID.getStateid());
|
||||
if (list.size() > 0) {
|
||||
return Result.failed(false, "预售单已配额");
|
||||
}
|
||||
|
|
@ -233,7 +231,7 @@ public class PresellOrderSyncService extends BaseSyncService {
|
|||
|
||||
synctask.addUpdateData(oldobj);
|
||||
|
||||
return SyncTaskService.me.save(synctask, saveold.getSupermarketId())
|
||||
return SyncTaskService.me.save(synctask)
|
||||
&& ModifyLogService.me.save(oldobj, saveold, Enums.DataOpType.UPDATE.getId(), tokenuser);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
|
|
|||
|
|
@ -452,7 +452,8 @@ public class OrderStatController extends BaseController {
|
|||
Integer customer_id = getInt("customer_id");
|
||||
String customer_name = get("customer_name");
|
||||
Integer type = getInt("type");
|
||||
renderJson(Result.object(OrderStatService.me.yearStatisticsByCustomerId(year, customer_id, customer_name, type)));
|
||||
Integer sale_type = getInt("sale_type", 0);
|
||||
renderJson(Result.object(OrderStatService.me.yearStatisticsByCustomerId(year, customer_id, customer_name, type, sale_type)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue