diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java index 56629a2..5867abb 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrderTemp.java @@ -1134,5 +1134,22 @@ public abstract class BaseOrderTemp> 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"); + } } diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrdercluster.java b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrdercluster.java index 2b29bee..22f7160 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrdercluster.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/model/base/BaseOrdercluster.java @@ -66,6 +66,29 @@ public abstract class BaseOrdercluster> 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> 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"); + } } diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/OrderclusterService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/OrderclusterService.java index 87a1dad..23611e4 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/OrderclusterService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/OrderclusterService.java @@ -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 undonlist(int supermarket_id, Integer customer_id, String date) { + public List 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 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 undonlist(Integer customer_id) { @@ -324,7 +347,7 @@ public class OrderclusterService extends BaseService { * @param customer_id * @return */ - public List undonlist(int supermarket_id, Integer customer_id) { + public List 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 undonlist(int supermarket_id, int customer_id, String start_time, String cutoff_time) { + public List undonlist(int supermarket_id, int customer_id, String start_time, String cutoff_time, int sale_type) { List 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 undoneOrdercluster(int supermarket_id, Integer customer_id) { - List list = undonlist(supermarket_id, customer_id); + public List undoneOrdercluster(int supermarket_id, Integer customer_id, Integer sale_type) { + List 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; diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/PresellOrderclusterValidator.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/PresellOrderclusterValidator.java new file mode 100644 index 0000000..dcd2782 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/ordercluster/PresellOrderclusterValidator.java @@ -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())); + } +} \ No newline at end of file diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java index b4c4323..71409d5 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java @@ -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()); // 浠水固定只有外销 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 9c924c9..7dd30f6 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 @@ -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 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 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); + } } 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 cf82b41..01e8091 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 @@ -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) { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordercluster/OrderclusterController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordercluster/OrderclusterController.java index 7660ab0..f3b981a 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordercluster/OrderclusterController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordercluster/OrderclusterController.java @@ -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))); } } 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 142bece..2a93705 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 @@ -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) { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/stat/sale/OrderStatController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/stat/sale/OrderStatController.java index 2fce603..d86b4d8 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/stat/sale/OrderStatController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/stat/sale/OrderStatController.java @@ -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))); } } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterController.java index 121b9cd..35dad65 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterController.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/OrderclusterController.java @@ -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)); } } 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 35b961e..aeb8bd6 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 @@ -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 undonlist = OrderclusterService.me.undonlist(supermarket_id, customer_id, query_start_time, query_cutoff_time); + List 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 list = OrderclusterService.me.undonlist(model.getSupermarketId(), model.getCustomerId()); + List 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 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 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; diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java index ba9b98b..50ebc8f 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/order/ordercluster/truck/OrderclusterTruckSyncService.java @@ -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 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()); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaytruck/PrepayTruckSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaytruck/PrepayTruckSyncService.java index 294ce8f..25f3662 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaytruck/PrepayTruckSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaytruck/PrepayTruckSyncService.java @@ -40,7 +40,7 @@ public class PrepayTruckSyncService extends BaseSyncService { return Result.failed("砂站信息无效"); } - List undonlist = OrderclusterService.me.undonlist(supermarket_id, customer_id, DateTimeUtil.sdf.get().format(valid_date)); + List 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 undonlist = OrderclusterService.me.undonlist(old.getSupermarketId(), old.getCustomerId(), valid_date); + List undonlist = OrderclusterService.me.undonlist(old.getSupermarketId(), old.getCustomerId(), valid_date, 0); if (undonlist == null || undonlist.isEmpty()) { return Result.failed("未找到有效的集团订单信息"); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java index 9061275..3f83961 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/presellorder/PresellOrderSyncService.java @@ -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 list = PresellPugDetailService.me.getByPresellOrderId(model.getId()); + List 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); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/stat/sale/OrderStatController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/stat/sale/OrderStatController.java index 569bc32..0546587 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/stat/sale/OrderStatController.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/stat/sale/OrderStatController.java @@ -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))); } /**