预售单管理
parent
b462b697c9
commit
d797198c53
|
|
@ -16,7 +16,8 @@ public enum OrderTypeEnum {
|
|||
TRANSFER(2),
|
||||
TEMP(3),
|
||||
TRASH(4),
|
||||
PURCHASE(5);
|
||||
PURCHASE(5),
|
||||
PRESELL(6);
|
||||
|
||||
OrderTypeEnum(int typeid) {
|
||||
this.typeid = typeid;
|
||||
|
|
|
|||
|
|
@ -3,10 +3,7 @@ package com.cowr.common.utils;
|
|||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
|
@ -205,4 +202,18 @@ public class StrUtil {
|
|||
|
||||
return var2.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成指定位数的随机数
|
||||
* @param length
|
||||
* @return
|
||||
*/
|
||||
public static String getRandom(int length) {
|
||||
StringBuilder val = new StringBuilder();
|
||||
Random random = new Random();
|
||||
for (int i = 0; i < length; i++) {
|
||||
val.append(String.valueOf(random.nextInt(10)));
|
||||
}
|
||||
return val.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
package com.cowr.model;
|
||||
|
||||
import com.cowr.model.base.BasePresellOrder;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:31 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class PresellOrder extends BasePresellOrder<PresellOrder> {
|
||||
public static final PresellOrder dao = new PresellOrder().dao();
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.cowr.model;
|
||||
|
||||
import com.cowr.model.base.BasePresellPug;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:52 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class PresellPug extends BasePresellPug<PresellPug> {
|
||||
public static final PresellPug dao = new PresellPug().dao();
|
||||
}
|
||||
|
|
@ -87,6 +87,10 @@ public class _MappingKit {
|
|||
arp.addMapping("truck_weight_limit_modify_log", "id", TruckWeightLimitModifyLog.class);
|
||||
arp.addMapping("customer_contract_signed_log", "id", CustomerContractSignedLog.class);
|
||||
arp.addMapping("customer_contract_template", "id", CustomerContractTemplate.class);
|
||||
|
||||
|
||||
arp.addMapping("presell_order", "id", PresellOrder.class);
|
||||
arp.addMapping("presell_pug", "id", PresellPug.class);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -284,6 +284,29 @@ public abstract class BaseCustomer<M extends BaseCustomer<M>> extends BaseModel<
|
|||
return getInt("invoice_type");
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否预售客户
|
||||
* name: presell_type
|
||||
* type: INT(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue: 1
|
||||
* @param presellType 0不是,1是
|
||||
*/
|
||||
@JSONField(name="presell_type")
|
||||
public void setPresellType(Integer presellType) {
|
||||
set("presell_type", presellType);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return invoice_type 0不是,1是
|
||||
*/
|
||||
@JSONField(name="presell_type")
|
||||
public Integer getPresellType() {
|
||||
return getInt("presell_type");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: customer_type_id
|
||||
* type: INT(10)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,308 @@
|
|||
package com.cowr.model.base;
|
||||
|
||||
import com.cowr.common.base.BaseModel;
|
||||
import com.jfinal.plugin.activerecord.IBean;
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:31 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class BasePresellOrder<M extends BasePresellOrder<M>> extends BaseModel<M> implements IBean {
|
||||
|
||||
public static final String tablename = "presell_order";
|
||||
|
||||
@JSONField(serialize=false)
|
||||
public String getTablename(){
|
||||
return tablename;
|
||||
}
|
||||
|
||||
/**
|
||||
* name: id
|
||||
* type: CHAR(32)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: YES
|
||||
* defaultValue:
|
||||
* @param id 主键uuid
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public void setId(String id) {
|
||||
set("id", id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return id 主键uuid
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public String getId() {
|
||||
return getStr("id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: presell_sn
|
||||
* type: CHAR(16)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param presellSn YYYYMMDD + 两位销售点id(避免离线生成订单号重复) + 两位订单类型 + 四位序列号
|
||||
*/
|
||||
@JSONField(name="presell_sn")
|
||||
public void setPresellSn(String presellSn) {
|
||||
set("presell_sn", presellSn);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return presell_sn YYYYMMDD + 两位销售点id(避免离线生成订单号重复) + 两位订单类型 + 四位序列号
|
||||
*/
|
||||
@JSONField(name="presell_sn")
|
||||
public String getPresellSn() {
|
||||
return getStr("presell_sn");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: customer_id
|
||||
* type: INT(11)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param customerId 客户id
|
||||
*/
|
||||
@JSONField(name="customer_id")
|
||||
public void setCustomerId(Integer customerId) {
|
||||
set("customer_id", customerId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return customer_id 客户id
|
||||
*/
|
||||
@JSONField(name="customer_id")
|
||||
public Integer getCustomerId() {
|
||||
return getInt("customer_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: supermarket_id
|
||||
* type: INT(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param supermarketId 超市id
|
||||
*/
|
||||
@JSONField(name="supermarket_id")
|
||||
public void setSupermarketId(Integer supermarketId) {
|
||||
set("supermarket_id", supermarketId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return supermarket_id 超市id
|
||||
*/
|
||||
@JSONField(name="supermarket_id")
|
||||
public Integer getSupermarketId() {
|
||||
return getInt("supermarket_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: presell_date
|
||||
* type: DATE(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param presellDate 预售日期
|
||||
*/
|
||||
@JSONField(name="presell_date")
|
||||
public void setPresellDate(java.util.Date presellDate) {
|
||||
set("presell_date", presellDate);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return presell_date 预售日期
|
||||
*/
|
||||
@JSONField(name="presell_date")
|
||||
public java.util.Date getPresellDate() {
|
||||
return get("presell_date");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: presell_amount
|
||||
* type: DECIMAL(12,2)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue: 0.00
|
||||
* @param presellAmount 预售金额
|
||||
*/
|
||||
@JSONField(name="presell_amount")
|
||||
public void setPresellAmount(java.math.BigDecimal presellAmount) {
|
||||
set("presell_amount", presellAmount);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return presell_amount 预售金额
|
||||
*/
|
||||
@JSONField(name="presell_amount")
|
||||
public java.math.BigDecimal getPresellAmount() {
|
||||
return get("presell_amount");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: invoice_number
|
||||
* type: VARCHAR(20)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param invoiceNumber 发票代码
|
||||
*/
|
||||
@JSONField(name="invoice_number")
|
||||
public void setInvoiceNumber(String invoiceNumber) {
|
||||
set("invoice_number", invoiceNumber);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return invoice_number 发票代码
|
||||
*/
|
||||
@JSONField(name="invoice_number")
|
||||
public String getInvoiceNumber() {
|
||||
return getStr("invoice_number");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: invoice_code
|
||||
* type: VARCHAR(20)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param invoiceCode 发票号码
|
||||
*/
|
||||
@JSONField(name="invoice_code")
|
||||
public void setInvoiceCode(String invoiceCode) {
|
||||
set("invoice_code", invoiceCode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return invoice_code 发票号码
|
||||
*/
|
||||
@JSONField(name="invoice_code")
|
||||
public String getInvoiceCode() {
|
||||
return getStr("invoice_code");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: create_user_id
|
||||
* type: INT UNSIGNED(10)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param createUserId 创建人id
|
||||
*/
|
||||
@JSONField(name="create_user_id")
|
||||
public void setCreateUserId(Integer createUserId) {
|
||||
set("create_user_id", createUserId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return create_user_id 创建人id
|
||||
*/
|
||||
@JSONField(name="create_user_id")
|
||||
public Integer getCreateUserId() {
|
||||
return getInt("create_user_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: create_user_name
|
||||
* type: VARCHAR(20)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param createUserName 创建用户名
|
||||
*/
|
||||
@JSONField(name="create_user_name")
|
||||
public void setCreateUserName(String createUserName) {
|
||||
set("create_user_name", createUserName);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return create_user_name 创建用户名
|
||||
*/
|
||||
@JSONField(name="create_user_name")
|
||||
public String getCreateUserName() {
|
||||
return getStr("create_user_name");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: create_time
|
||||
* type: DATETIME(19)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param createTime 创建时间
|
||||
*/
|
||||
@JSONField(name="create_time")
|
||||
public void setCreateTime(java.util.Date createTime) {
|
||||
set("create_time", createTime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return create_time 创建时间
|
||||
*/
|
||||
@JSONField(name="create_time")
|
||||
public java.util.Date getCreateTime() {
|
||||
return get("create_time");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: memo
|
||||
* type: VARCHAR(255)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param memo 备注
|
||||
*/
|
||||
@JSONField(name="memo")
|
||||
public void setMemo(String memo) {
|
||||
set("memo", memo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return memo 备注
|
||||
*/
|
||||
@JSONField(name="memo")
|
||||
public String getMemo() {
|
||||
return getStr("memo");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: del
|
||||
* type: tinyint
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param del 逻辑删除标识:0未删除,1已删除
|
||||
*/
|
||||
@JSONField(name="del")
|
||||
public void setDel(Integer del) {
|
||||
set("del", del);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return del 逻辑删除标识:0未删除,1已删除
|
||||
*/
|
||||
@JSONField(name="del")
|
||||
public Integer getDel() {
|
||||
return getInt("del");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,222 @@
|
|||
package com.cowr.model.base;
|
||||
|
||||
import com.cowr.common.base.BaseModel;
|
||||
import com.jfinal.plugin.activerecord.IBean;
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:52 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class BasePresellPug<M extends BasePresellPug<M>> extends BaseModel<M> implements IBean {
|
||||
|
||||
public static final String tablename = "presell_pug";
|
||||
|
||||
@JSONField(serialize=false)
|
||||
public String getTablename(){
|
||||
return tablename;
|
||||
}
|
||||
|
||||
/**
|
||||
* name: id
|
||||
* type: INT UNSIGNED(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: YES
|
||||
* defaultValue:
|
||||
* @param id 主键
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public void setId(String id) {
|
||||
set("id", id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return id 主键
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public String getId() {
|
||||
return getStr("id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: presell_order_id
|
||||
* type: CHAR(32)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param presellOrderId 预售单的id
|
||||
*/
|
||||
@JSONField(name="presell_order_id")
|
||||
public void setPresellOrderId(String presellOrderId) {
|
||||
set("presell_order_id", presellOrderId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return presell_order_id 预售单的id
|
||||
*/
|
||||
@JSONField(name="presell_order_id")
|
||||
public String getPresellOrderId() {
|
||||
return getStr("presell_order_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: amount
|
||||
* type: decimal
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param amount 提货金额
|
||||
*/
|
||||
@JSONField(name="amount")
|
||||
public void setAmount(java.math.BigDecimal amount) {
|
||||
set("amount", amount);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return amount 提货金额
|
||||
*/
|
||||
@JSONField(name="amount")
|
||||
public java.math.BigDecimal getAmount() {
|
||||
return getBigDecimal("amount");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: start_time
|
||||
* type: DATETIME(19)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param startTime 运输起始时间
|
||||
*/
|
||||
@JSONField(name="start_time")
|
||||
public void setStartTime(java.util.Date startTime) {
|
||||
set("start_time", startTime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return start_time 运输起始时间
|
||||
*/
|
||||
@JSONField(name="start_time")
|
||||
public java.util.Date getStartTime() {
|
||||
return get("start_time");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: cutoff_time
|
||||
* type: DATETIME(19)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param cutoffTime 运输截止时间
|
||||
*/
|
||||
@JSONField(name="cutoff_time")
|
||||
public void setCutoffTime(java.util.Date cutoffTime) {
|
||||
set("cutoff_time", cutoffTime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return cutoff_time 运输截止时间
|
||||
*/
|
||||
@JSONField(name="cutoff_time")
|
||||
public java.util.Date getCutoffTime() {
|
||||
return get("cutoff_time");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: create_time
|
||||
* type: DATETIME(19)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param createTime 创建时间
|
||||
*/
|
||||
@JSONField(name="create_time")
|
||||
public void setCreateTime(java.util.Date createTime) {
|
||||
set("create_time", createTime);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return create_time 创建时间
|
||||
*/
|
||||
@JSONField(name="create_time")
|
||||
public java.util.Date getCreateTime() {
|
||||
return get("create_time");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: create_user_id
|
||||
* type: INT UNSIGNED(10)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param createUserId 创建人id
|
||||
*/
|
||||
@JSONField(name="create_user_id")
|
||||
public void setCreateUserId(Long createUserId) {
|
||||
set("create_user_id", createUserId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return create_user_id 创建人id
|
||||
*/
|
||||
@JSONField(name="create_user_id")
|
||||
public Long getCreateUserId() {
|
||||
return getLong("create_user_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: create_user_name
|
||||
* type: VARCHAR(20)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param createUserName 创建人姓名
|
||||
*/
|
||||
@JSONField(name="create_user_name")
|
||||
public void setCreateUserName(String createUserName) {
|
||||
set("create_user_name", createUserName);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return create_user_name 创建人姓名
|
||||
*/
|
||||
@JSONField(name="create_user_name")
|
||||
public String getCreateUserName() {
|
||||
return getStr("create_user_name");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: memo
|
||||
* type: VARCHAR(255)
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param memo 备注
|
||||
*/
|
||||
@JSONField(name="memo")
|
||||
public void setMemo(String memo) {
|
||||
set("memo", memo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return memo 备注
|
||||
*/
|
||||
@JSONField(name="memo")
|
||||
public String getMemo() {
|
||||
return getStr("memo");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -12,4 +12,33 @@ public class PrepayCustomerService {
|
|||
public PrepayCustomer getPrepayCustomer(int customer_id) {
|
||||
return PrepayCustomer.dao.findFirst("select * from prepay_customer where customer_id = ? limit 1", customer_id);
|
||||
}
|
||||
|
||||
public PrepayCustomer getPrepayCustomerSurplus(int customer_id) {
|
||||
return PrepayCustomer.dao.findFirst("SELECT\n" +
|
||||
" a.*\n" +
|
||||
"FROM\n" +
|
||||
" (\n" +
|
||||
" SELECT\n" +
|
||||
" (\n" +
|
||||
" t.surplus - ifnull(m.amount, 0)\n" +
|
||||
" ) surplus,\n" +
|
||||
" t.id,\n" +
|
||||
" t.customer_id\n" +
|
||||
" FROM\n" +
|
||||
" prepay_customer t\n" +
|
||||
" LEFT JOIN (\n" +
|
||||
" SELECT\n" +
|
||||
" customer_id,\n" +
|
||||
" ifnull(sum(amount), 0) amount\n" +
|
||||
" FROM\n" +
|
||||
" refund_detail\n" +
|
||||
" WHERE\n" +
|
||||
" state < 3\n" +
|
||||
" GROUP BY\n" +
|
||||
" customer_id\n" +
|
||||
" ) m ON t.customer_id = m.customer_id\n" +
|
||||
" ) a\n" +
|
||||
"WHERE\n" +
|
||||
" a.customer_id = ?", customer_id);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,126 @@
|
|||
package com.cowr.ssjygl.presellorder;
|
||||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.base.BaseService;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.model.PresellOrder;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:33 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
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 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" +
|
||||
" left join supermarket s on t.supermarket_id = s.id \n" +
|
||||
" where 1=1 \n";
|
||||
List<Object> paraList = new ArrayList<>();
|
||||
|
||||
if (del != null && (del == Const.LOGIC_DEL_VALID || del == Const.LOGIC_DEL_INVALID)) {
|
||||
fromsql += " and t.del = ? \n";
|
||||
paraList.add(del);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(name)) {
|
||||
fromsql += " and c.name like ? \n";
|
||||
paraList.add("%" + name.trim() + "%");
|
||||
}
|
||||
|
||||
if (supermarket_id != null) {
|
||||
fromsql += " and s.id = ?";
|
||||
paraList.add(supermarket_id);
|
||||
}
|
||||
|
||||
if (customer_id != null) {
|
||||
fromsql += " and c.id = ?";
|
||||
paraList.add(customer_id);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(stm)) {
|
||||
fromsql += " and t.create_time >= ?";
|
||||
paraList.add(stm);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(etm)) {
|
||||
fromsql += " and t.create_time <= ?";
|
||||
paraList.add(etm);
|
||||
}
|
||||
|
||||
String totalRowSql = "select count(*) " + fromsql;
|
||||
String findSql = selectsql + fromsql;
|
||||
|
||||
// 前端传了排序字段,并且排序字段存在相关表中
|
||||
if (StrKit.notBlank(pp.getSort_field()) && PresellOrder.dao.hasColunm(pp.getSort_field())) {
|
||||
findSql += " order by t." + pp.getSort_field() + " is null, t." + pp.getSort_field();
|
||||
|
||||
if (Const.ORDER_BY_ASC.equals(pp.getSort_order())) {
|
||||
findSql += " " + Const.ORDER_BY_ASC;
|
||||
} else {
|
||||
findSql += " " + Const.ORDER_BY_DESC;
|
||||
}
|
||||
} else {
|
||||
findSql += " order by t.create_time desc";
|
||||
}
|
||||
|
||||
return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray());
|
||||
}
|
||||
|
||||
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" +
|
||||
" 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" +
|
||||
" left join supermarket s on t.supermarket_id = s.id \n" +
|
||||
" where 1=1 \n";
|
||||
List<Object> paraList = new ArrayList<>();
|
||||
|
||||
if (del != null && (del == Const.LOGIC_DEL_VALID || del == Const.LOGIC_DEL_INVALID)) {
|
||||
sql += " and t.del = ? \n";
|
||||
paraList.add(del);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(name)) {
|
||||
sql += " and c.name like ? \n";
|
||||
paraList.add("%" + name.trim() + "%");
|
||||
}
|
||||
|
||||
if (supermarket_id != null) {
|
||||
sql += " and s.id = ?";
|
||||
paraList.add(supermarket_id);
|
||||
}
|
||||
|
||||
if (customer_id != null) {
|
||||
sql += " and c.id = ?";
|
||||
paraList.add(customer_id);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(stm)) {
|
||||
sql += " and t.create_time >= ?";
|
||||
paraList.add(stm);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(etm)) {
|
||||
sql += " and t.create_time <= ?";
|
||||
paraList.add(etm);
|
||||
}
|
||||
|
||||
return PresellOrder.dao.find(sql, paraList.toArray());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package com.cowr.ssjygl.presellpug;
|
||||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.base.BaseService;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.model.PresellPug;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:53 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellPugService extends BaseService {
|
||||
public static final PresellPugService me = new PresellPugService();
|
||||
|
||||
public Page<Record> find(PageParam pp, Integer customer_id, Integer supermarket_id, String name, String stm, String etm) {
|
||||
String selectsql = "select t.*, c.name customer_name, s.name supermarket_name, d.name product_name, c.address, c.texpayer_name, c.texpayer_num, c.memo \n";
|
||||
String fromsql = " from presell_pug t \n" +
|
||||
" left join presell_order o on t.presell_order_id = o.id \n" +
|
||||
" left join supermarket s on o.supermarket_id = s.id \n" +
|
||||
" left join product d on o.supermarket_id = d.id \n" +
|
||||
" where 1=1 \n";
|
||||
List<Object> paraList = new ArrayList<>();
|
||||
|
||||
if (StrKit.notBlank(name)) {
|
||||
fromsql += " and c.name like ? \n";
|
||||
paraList.add("%" + name.trim() + "%");
|
||||
}
|
||||
|
||||
if (supermarket_id != null) {
|
||||
fromsql += " and s.id = ?";
|
||||
paraList.add(supermarket_id);
|
||||
}
|
||||
|
||||
if (customer_id != null) {
|
||||
fromsql += " and c.id = ?";
|
||||
paraList.add(customer_id);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(stm)) {
|
||||
fromsql += " and t.create_time >= ?";
|
||||
paraList.add(stm);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(etm)) {
|
||||
fromsql += " and t.create_time <= ?";
|
||||
paraList.add(etm);
|
||||
}
|
||||
|
||||
String totalRowSql = "select count(*) " + fromsql;
|
||||
String findSql = selectsql + fromsql;
|
||||
|
||||
// 前端传了排序字段,并且排序字段存在相关表中
|
||||
if (StrKit.notBlank(pp.getSort_field()) && PresellPug.dao.hasColunm(pp.getSort_field())) {
|
||||
findSql += " order by t." + pp.getSort_field() + " is null, t." + pp.getSort_field();
|
||||
|
||||
if (Const.ORDER_BY_ASC.equals(pp.getSort_order())) {
|
||||
findSql += " " + Const.ORDER_BY_ASC;
|
||||
} else {
|
||||
findSql += " " + Const.ORDER_BY_DESC;
|
||||
}
|
||||
} else {
|
||||
findSql += " order by t.create_time desc";
|
||||
}
|
||||
|
||||
return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray());
|
||||
}
|
||||
|
||||
public List<PresellPug> list() {
|
||||
return PresellPug.dao.find("select * from presell_pug");
|
||||
}
|
||||
|
||||
public BigDecimal countPugAmount(String uuid) {
|
||||
BigDecimal ret = new BigDecimal(0);
|
||||
if (StrKit.isBlank(uuid)) {
|
||||
return ret;
|
||||
}
|
||||
BigDecimal rec = Db.queryBigDecimal(" select sum(amount) from presell_pug where presell_order_id = ?", uuid);
|
||||
if (rec != null) {
|
||||
return rec;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
@ -2603,4 +2603,261 @@ public class OrderStatService {
|
|||
return rec;
|
||||
}
|
||||
|
||||
public Workbook presellOrderStatisticsExport(String stm, String etm) {
|
||||
Record data = presellOrderStatistics(stm, etm);
|
||||
List<Record> list = data.get("data");
|
||||
List<Record> sups = data.get("supermarket");
|
||||
Workbook wb = new XSSFWorkbook();
|
||||
|
||||
Sheet sheet = wb.createSheet(stm.substring(0, 10) + " ~ " + etm.substring(0, 10) + "各砂站预售额及已提货额统计表");
|
||||
|
||||
// 表头 start
|
||||
Row row = sheet.createRow(0);
|
||||
|
||||
int a = 0;
|
||||
row.createCell(a++).setCellValue("序号");
|
||||
row.createCell(a++).setCellValue("客户名称");
|
||||
row.createCell(a++).setCellValue("总预售金额(元)");
|
||||
row.createCell(a++).setCellValue("已提货金额(元)");
|
||||
|
||||
Row row2 = sheet.createRow(1);
|
||||
int a2 = 4;
|
||||
|
||||
for (int i = 0; i < sups.size(); i++) {
|
||||
Record s = sups.get(i);
|
||||
row.createCell(a).setCellValue(s.getStr("name"));
|
||||
|
||||
sheet.addMergedRegion(new CellRangeAddress(0, 0, a, a + 1));
|
||||
a += 2;
|
||||
|
||||
row2.createCell(a2++).setCellValue("预售金额(元)");
|
||||
row2.createCell(a2++).setCellValue("已提货金额(元)");
|
||||
}
|
||||
|
||||
sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
|
||||
sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
|
||||
sheet.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));
|
||||
sheet.addMergedRegion(new CellRangeAddress(0, 1, 3, 3));
|
||||
|
||||
int datalen = list.size();
|
||||
int colcnt = a;
|
||||
int rowcnt = 2;
|
||||
for (int i = 0; i < datalen; i++) {
|
||||
Record rec = list.get(i);
|
||||
row = sheet.createRow(rowcnt++);
|
||||
|
||||
row.createCell(0).setCellValue(i + 1);
|
||||
row.createCell(1).setCellValue(rec.getStr("name"));
|
||||
|
||||
int b = 2;
|
||||
row.createCell(b++).setCellValue(DataUtil.getDefaultByRecord(rec, "total_presell_amount"));
|
||||
row.createCell(b++).setCellValue(DataUtil.getDefaultByRecord(rec, "total_presell_pug"));
|
||||
|
||||
for (Record s : sups) {
|
||||
row.createCell(b++).setCellValue(DataUtil.getDefaultByRecord(rec, "xsl_" + s.getInt("id")));
|
||||
row.createCell(b++).setCellValue(DataUtil.getDefaultByRecord(rec, "xse_" + s.getInt("id")));
|
||||
}
|
||||
|
||||
}
|
||||
// 通用单元格格式
|
||||
Font font = wb.createFont();
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
cellStyle.setBorderBottom(BorderStyle.THIN);
|
||||
cellStyle.setBorderLeft(BorderStyle.THIN);
|
||||
cellStyle.setBorderTop(BorderStyle.THIN);
|
||||
cellStyle.setBorderRight(BorderStyle.THIN);
|
||||
cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
|
||||
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中
|
||||
cellStyle.setFont(font);
|
||||
|
||||
for (int r = 0; r < rowcnt; r++) {
|
||||
row = sheet.getRow(r);
|
||||
if (row == null) {
|
||||
row = sheet.createRow(r);
|
||||
}
|
||||
for (int c = 0; c < colcnt; c++) {
|
||||
Cell cell = row.getCell(c);
|
||||
|
||||
if (cell == null) {
|
||||
cell = row.createCell(c);
|
||||
}
|
||||
cell.setCellStyle(cellStyle);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 1; i < 30; i++) {
|
||||
sheet.setColumnWidth(i, 15 * 256);
|
||||
}
|
||||
|
||||
sheet.setColumnWidth(1, 40 * 256);
|
||||
|
||||
return wb;
|
||||
}
|
||||
|
||||
/**
|
||||
* 各砂站预售金额、提货额统计
|
||||
* @param stm
|
||||
* @param etm
|
||||
* @return
|
||||
*/
|
||||
public Record presellOrderStatistics(String stm, String etm) {
|
||||
// 砂站
|
||||
List<Record> sups = Db.find("SELECT\n" +
|
||||
" t.id,\n" +
|
||||
" t.`name`\n" +
|
||||
"FROM\n" +
|
||||
" supermarket t\n" +
|
||||
"WHERE\n" +
|
||||
" id <= 6\n" +
|
||||
"OR id = 11");
|
||||
|
||||
// 预售金额统计
|
||||
List<Object> paraList = new ArrayList<>();
|
||||
String paramsSql = "";
|
||||
if (!StrKit.isBlank(stm)) {
|
||||
paramsSql += " and p.create_time >= ?\n";
|
||||
paraList.add(stm);
|
||||
}
|
||||
if (!StrKit.isBlank(etm)) {
|
||||
paramsSql += " and p.create_time <= ?\n";
|
||||
paraList.add(etm);
|
||||
}
|
||||
String sql = " SELECT c.name, t.* from (\n" +
|
||||
" select\n" +
|
||||
" g.customer_id,\n" +
|
||||
" ifnull(sum(g.presell_amount), 0) total_presell_amount,\n" +
|
||||
" 0 total_presell_pug,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 1 or g.supermarket_id = 7 then g.presell_amount end), 0) xsl_1,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 2 then g.presell_amount end), 0) xsl_2,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 3 then g.presell_amount end), 0) xsl_3,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 4 then g.presell_amount end), 0) xsl_4,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 5 or g.supermarket_id = 9 then g.presell_amount end), 0) xsl_5,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 6 or g.supermarket_id = 8 or g.supermarket_id = 10 then g.presell_amount end), 0) xsl_6,\n" +
|
||||
" ifnull(sum(case when g.supermarket_id = 11 then g.presell_amount end), 0) xsl_11,\n" +
|
||||
" 0 xse_1,\n" +
|
||||
" 0 xse_2,\n" +
|
||||
" 0 xse_3,\n" +
|
||||
" 0 xse_4,\n" +
|
||||
" 0 xse_5,\n" +
|
||||
" 0 xse_6,\n" +
|
||||
" 0 xse_11\n" +
|
||||
" from (\n" +
|
||||
" SELECT\n" +
|
||||
" p.customer_id,\n" +
|
||||
" p.supermarket_id,\n" +
|
||||
" ifnull(sum(p.presell_amount), 0) presell_amount\n" +
|
||||
" FROM\n" +
|
||||
" presell_order p\n" +
|
||||
" WHERE\n" +
|
||||
" p.del = 0\n" +
|
||||
paramsSql +
|
||||
" GROUP BY\n" +
|
||||
" p.customer_id,\n" +
|
||||
" p.supermarket_id\n" +
|
||||
" ) g group by g.customer_id \n" +
|
||||
" ) t LEFT JOIN customer c ON c.id = t.customer_id";
|
||||
|
||||
List<Record> list = Db.find(sql, paraList.toArray());
|
||||
List<Record> ret = new ArrayList<>();
|
||||
double all_total_presell_amount = 0.0;
|
||||
double all_total_presell_pug = 0.0;
|
||||
double all_xsl_1 = 0.0;
|
||||
double all_xsl_2 = 0.0;
|
||||
double all_xsl_3 = 0.0;
|
||||
double all_xsl_4 = 0.0;
|
||||
double all_xsl_5 = 0.0;
|
||||
double all_xsl_6 = 0.0;
|
||||
double all_xsl_11 = 0.0;
|
||||
double all_xse_1 = 0.0;
|
||||
double all_xse_2 = 0.0;
|
||||
double all_xse_3 = 0.0;
|
||||
double all_xse_4 = 0.0;
|
||||
double all_xse_5 = 0.0;
|
||||
double all_xse_6 = 0.0;
|
||||
double all_xse_11 = 0.0;
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
Record r = list.get(i);
|
||||
String name = r.getStr("name");
|
||||
double total_presell_amount = DataUtil.getDefaultByRecord(r, "total_presell_amount");
|
||||
double total_presell_pug = DataUtil.getDefaultByRecord(r, "total_presell_pug");
|
||||
double xsl_1 = DataUtil.getDefaultByRecord(r, "xsl_1");
|
||||
double xsl_2 = DataUtil.getDefaultByRecord(r, "xsl_2");
|
||||
double xsl_3 = DataUtil.getDefaultByRecord(r, "xsl_3");
|
||||
double xsl_4 = DataUtil.getDefaultByRecord(r, "xsl_4");
|
||||
double xsl_5 = DataUtil.getDefaultByRecord(r, "xsl_5");
|
||||
double xsl_6 = DataUtil.getDefaultByRecord(r, "xsl_6");
|
||||
double xsl_11 = DataUtil.getDefaultByRecord(r, "xsl_11");
|
||||
double xse_1 = DataUtil.getDefaultByRecord(r, "xse_1");
|
||||
double xse_2 = DataUtil.getDefaultByRecord(r, "xse_2");
|
||||
double xse_3 = DataUtil.getDefaultByRecord(r, "xse_3");
|
||||
double xse_4 = DataUtil.getDefaultByRecord(r, "xse_4");
|
||||
double xse_5 = DataUtil.getDefaultByRecord(r, "xse_5");
|
||||
double xse_6 = DataUtil.getDefaultByRecord(r, "xse_6");
|
||||
double xse_11 = DataUtil.getDefaultByRecord(r, "xse_11");
|
||||
|
||||
Record rec = new Record();
|
||||
rec.set("inx", i + 1);
|
||||
rec.set("name", name);
|
||||
rec.set("total_presell_amount", total_presell_amount);
|
||||
rec.set("total_presell_pug", total_presell_pug);
|
||||
rec.set("xsl_1", xsl_1);
|
||||
rec.set("xsl_2", xsl_2);
|
||||
rec.set("xsl_3", xsl_3);
|
||||
rec.set("xsl_4", xsl_4);
|
||||
rec.set("xsl_5", xsl_5);
|
||||
rec.set("xsl_6", xsl_6);
|
||||
rec.set("xsl_11", xsl_11);
|
||||
rec.set("xse_1", xse_1);
|
||||
rec.set("xse_2", xse_2);
|
||||
rec.set("xse_3", xse_3);
|
||||
rec.set("xse_4", xse_4);
|
||||
rec.set("xse_5", xse_5);
|
||||
rec.set("xse_6", xse_6);
|
||||
rec.set("xse_11", xse_11);
|
||||
|
||||
ret.add(rec);
|
||||
|
||||
all_total_presell_amount += total_presell_amount;
|
||||
all_total_presell_pug += total_presell_pug;
|
||||
all_xsl_1 += xsl_1;
|
||||
all_xsl_2 += xsl_2;
|
||||
all_xsl_3 += xsl_3;
|
||||
all_xsl_4 += xsl_4;
|
||||
all_xsl_5 += xsl_5;
|
||||
all_xsl_6 += xsl_6;
|
||||
all_xsl_11 += xsl_11;
|
||||
all_xse_1 += xse_1;
|
||||
all_xse_2 += xse_2;
|
||||
all_xse_3 += xse_3;
|
||||
all_xse_4 += xse_4;
|
||||
all_xse_5 += xse_5;
|
||||
all_xse_6 += xse_6;
|
||||
all_xse_11 += xse_11;
|
||||
}
|
||||
|
||||
Record r = new Record();
|
||||
r.set("inx", list.size() + 1);
|
||||
r.set("name", "合计");
|
||||
r.set("total_presell_amount", all_total_presell_amount);
|
||||
r.set("total_presell_pug", all_total_presell_pug);
|
||||
r.set("xsl_1", all_xsl_1);
|
||||
r.set("xsl_2", all_xsl_2);
|
||||
r.set("xsl_3", all_xsl_3);
|
||||
r.set("xsl_4", all_xsl_4);
|
||||
r.set("xsl_5", all_xsl_5);
|
||||
r.set("xsl_6", all_xsl_6);
|
||||
r.set("xsl_11", all_xsl_11);
|
||||
r.set("xse_1", all_xse_1);
|
||||
r.set("xse_2", all_xse_2);
|
||||
r.set("xse_3", all_xse_3);
|
||||
r.set("xse_4", all_xse_4);
|
||||
r.set("xse_5", all_xse_5);
|
||||
r.set("xse_6", all_xse_6);
|
||||
r.set("xse_11", all_xse_11);
|
||||
|
||||
ret.add(r);
|
||||
|
||||
return new Record().set("data", ret).set("supermarket", sups);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import com.cowr.local.ssjygl.prepay.PrepayController;
|
|||
import com.cowr.local.ssjygl.prepay.prepaydetail.PrepayDetailController;
|
||||
import com.cowr.local.ssjygl.prepay.prepaytruck.PrepayTruckController;
|
||||
import com.cowr.local.ssjygl.prepay.refunddetail.RefundDetailController;
|
||||
import com.cowr.local.ssjygl.presellorder.PresellOrderController;
|
||||
import com.cowr.local.ssjygl.product.ProductController;
|
||||
import com.cowr.local.ssjygl.purchase.PurchaseController;
|
||||
import com.cowr.local.ssjygl.sandfarm.SandfarmController;
|
||||
|
|
@ -233,6 +234,7 @@ public class Config extends JFinalConfig {
|
|||
me.add("/order/purchase", OrderPurchaseController.class);
|
||||
me.add("/orderclustertruck", OrderclusterTruckController.class);
|
||||
me.add("/order/invalidverify", OrderInvalidVerifyController.class);
|
||||
me.add("/presellorder", PresellOrderController.class);
|
||||
|
||||
// -- 统计
|
||||
me.add("/stat/sale", OrderStatController.class);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
package com.cowr.local.ssjygl.presellorder;
|
||||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.ssjygl.presellorder.PresellOrderService;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:33 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellOrderController extends Controller {
|
||||
|
||||
/**
|
||||
* 分页查找 presell_order
|
||||
*/
|
||||
public void find(){
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer del = getInt("del", Const.LOGIC_DEL_VALID); // 默认显示未删除的
|
||||
String name = get("name");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
PageParam pp = getBean(PageParam.class, "", true);
|
||||
renderJson(Result.object(PresellOrderService.me.find(pp, customer_id, supermarket_id, del, name, stm, etm)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 返回所有 presell_order
|
||||
*/
|
||||
public void list(){
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer del = getInt("del", Const.LOGIC_DEL_VALID); // 默认显示未删除的
|
||||
String name = get("name");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
renderJson(Result.object(PresellOrderService.me.list(customer_id, supermarket_id, del, name, stm, etm)));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
package com.cowr.local.ssjygl.presellpug;
|
||||
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.ssjygl.presellpug.PresellPugService;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:53 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellPugController extends Controller {
|
||||
|
||||
/**
|
||||
* 分页查找 presell_pug
|
||||
*/
|
||||
public void find(){
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
String name = get("name");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
PageParam pp = getBean(PageParam.class, "", true);
|
||||
renderJson(Result.object(PresellPugService.me.find(pp, customer_id, supermarket_id, name, stm, etm)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回所有 presell_pug
|
||||
*/
|
||||
public void list(){
|
||||
renderJson(Result.object(PresellPugService.me.list()));
|
||||
}
|
||||
}
|
||||
|
|
@ -38,6 +38,7 @@ import com.cowr.service.ssjygl.prepay.prepaycustomer.PrepayCustomerController;
|
|||
import com.cowr.service.ssjygl.prepay.prepaydetail.PrepayDetailController;
|
||||
import com.cowr.service.ssjygl.prepay.prepaytruck.PrepayTruckController;
|
||||
import com.cowr.service.ssjygl.prepay.refunddetail.RefundDetailController;
|
||||
import com.cowr.service.ssjygl.presellorder.PresellOrderController;
|
||||
import com.cowr.service.ssjygl.product.ProductController;
|
||||
import com.cowr.service.ssjygl.purchase.PurchaseController;
|
||||
import com.cowr.service.ssjygl.sandfarm.SandfarmController;
|
||||
|
|
@ -210,6 +211,7 @@ public class Config extends JFinalConfig {
|
|||
me.add("/order/purchase", OrderPurchaseController.class);
|
||||
me.add("/orderclustertruck", OrderclusterTruckController.class);
|
||||
me.add("/order/invalidverify", OrderInvalidVerifyController.class);
|
||||
me.add("/presellorder", PresellOrderController.class);
|
||||
|
||||
// -- 统计
|
||||
me.add("/stat/sale", OrderStatController.class);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,110 @@
|
|||
package com.cowr.service.ssjygl.presellorder;
|
||||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PresellOrder;
|
||||
import com.cowr.model.Sysuser;
|
||||
import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService;
|
||||
import com.cowr.ssjygl.presellorder.PresellOrderService;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:33 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellOrderController extends Controller {
|
||||
|
||||
/**
|
||||
* 新增 presell_order
|
||||
*/
|
||||
@Before(PresellOrderValidator.class)
|
||||
public void save(){
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
PresellOrder model = getModel(PresellOrder.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellOrderSyncService.me.save(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除 presell_order
|
||||
*/
|
||||
@Before(PresellOrderPKValidator.class)
|
||||
public void del(){
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PresellOrder model = getModel(PresellOrder.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellOrderSyncService.me.delete(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 恢复 presell_order
|
||||
*/
|
||||
@Before(PresellOrderPKValidator.class)
|
||||
public void restore(){
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PresellOrder model = getModel(PresellOrder.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellOrderSyncService.me.restore(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 presell_order
|
||||
*/
|
||||
@Before(PresellOrderValidator.class)
|
||||
public void edit(){
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PresellOrder model = getModel(PresellOrder.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellOrderSyncService.me.update(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查找 presell_order
|
||||
*/
|
||||
public void find(){
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer del = getInt("del", Const.LOGIC_DEL_VALID); // 默认显示未删除的
|
||||
String name = get("name");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
PageParam pp = getBean(PageParam.class, "", true);
|
||||
renderJson(Result.object(PresellOrderService.me.find(pp, customer_id, supermarket_id, del, name, stm, etm)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回所有 presell_order
|
||||
*/
|
||||
public void list(){
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer del = getInt("del", Const.LOGIC_DEL_VALID); // 默认显示未删除的
|
||||
String name = get("name");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
renderJson(Result.object(PresellOrderService.me.list(customer_id, supermarket_id, del, name, stm, etm)));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package com.cowr.service.ssjygl.presellorder;
|
||||
|
||||
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PresellOrder;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:33 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellOrderPKValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
validateRequired("id", "id", "id 必填");
|
||||
validateString("id", 1, 32, "id", "id 长度 1~32");
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,256 @@
|
|||
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.utils.StrUtil;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.*;
|
||||
import com.cowr.service.ssjygl.base.BaseSyncService;
|
||||
import com.cowr.service.ssjygl.presellpug.PresellPugService;
|
||||
import com.cowr.service.ssjygl.synctask.SyncTaskService;
|
||||
import com.cowr.ssjygl.modifylog.ModifyLogService;
|
||||
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.log.Log;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.IAtom;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:33 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellOrderSyncService extends BaseSyncService {
|
||||
private static final Log log = Log.getLog(PresellOrderSyncService.class);
|
||||
public static final PresellOrderSyncService me = new PresellOrderSyncService();
|
||||
|
||||
public Result save(PresellOrder model, Sysuser tokenuser) {
|
||||
try {
|
||||
Integer customer_id = model.getCustomerId();
|
||||
Customer customer = Customer.dao.findById(customer_id);
|
||||
|
||||
if (customer == null) {
|
||||
return Result.failed(false,"按客户 id 未找到对应客户信息");
|
||||
}
|
||||
Integer type = customer.getType();
|
||||
if (type == null || type != 1) {
|
||||
return Result.failed(false,"选择的客户不是预付费客户");
|
||||
}
|
||||
|
||||
PrepayCustomer prepayCustomer = PrepayCustomerService.me.getPrepayCustomer(customer.getId());
|
||||
if (prepayCustomer == null) {
|
||||
return Result.failed(false,"未获取到预付费客户信息");
|
||||
}
|
||||
|
||||
PrepayCustomer prepayCustomerSurplus = PrepayCustomerService.me.getPrepayCustomerSurplus(customer.getId());
|
||||
if (prepayCustomerSurplus == null) {
|
||||
return Result.failed(false,"未获取到预付费客户可用余额信息");
|
||||
}
|
||||
|
||||
if (model.getPresellAmount().compareTo(prepayCustomerSurplus.getSurplus()) == 1) { // 预售金额大于可用余额
|
||||
return Result.failed(false,"余额不足,当前客户可用余额【"+ prepayCustomerSurplus.getSurplus()+"】元");
|
||||
}
|
||||
|
||||
model.setId(StrKit.getRandomUUID());
|
||||
String presell_order = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + StrUtil.getRandom(2);
|
||||
model.setPresellSn(presell_order);
|
||||
model.setCreateTime(new Date());
|
||||
model.setCreateUserId(tokenuser.getId());
|
||||
model.setCreateUserName(tokenuser.getName());
|
||||
|
||||
SyncTask synctask = new SyncTask();
|
||||
SyncTask synctaskincrement = new SyncTask();
|
||||
boolean ret = Db.tx(new IAtom() {
|
||||
@Override
|
||||
public boolean run() throws SQLException {
|
||||
boolean ret = model.save();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
synctask.addSaveData(model);
|
||||
Integer presellType = customer.getPresellType();
|
||||
if (presellType == 0) {
|
||||
customer.setPresellType(1);
|
||||
ret = customer.update();
|
||||
|
||||
synctask.addUpdateData(customer);
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
prepayCustomer.setSurplus(prepayCustomer.getSurplus().subtract(model.getPresellAmount()));
|
||||
|
||||
// 余额变化需要广播
|
||||
synctaskincrement.addIncrementData(
|
||||
prepayCustomer.getTablename(),
|
||||
"id",
|
||||
prepayCustomer.getId(),
|
||||
new JSONObject().fluentPut("surplus", new BigDecimal(0).subtract(model.getPresellAmount()))
|
||||
);
|
||||
|
||||
SyncTaskService.me.save(synctaskincrement);
|
||||
|
||||
ret = prepayCustomer.update();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return SyncTaskService.me.save(synctask, model.getSupermarketId())
|
||||
&& 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, "新增失败");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.failed(false, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public Result edit(PresellOrder model, Sysuser tokenuser) {
|
||||
try {
|
||||
// 注意这里有 !,找到后才做 update 操作
|
||||
PresellOrder oldobj = model.findByPk();
|
||||
|
||||
if (oldobj == null) {
|
||||
return Result.failed(false, "按主键未找到对应记录");
|
||||
}
|
||||
|
||||
PresellOrder saveold = oldobj.clone();
|
||||
// 将修改后的对象返回
|
||||
String[] keys = model._getAttrNames();
|
||||
for (String key : keys) {
|
||||
oldobj.set(key, model.get(key));
|
||||
}
|
||||
|
||||
SyncTask synctask = new SyncTask();
|
||||
boolean ret = Db.tx(new IAtom() {
|
||||
@Override
|
||||
public boolean run() {
|
||||
try {
|
||||
boolean ret = oldobj.update();
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
synctask.addUpdateData(oldobj);
|
||||
return SyncTaskService.me.save(synctask, model.getSupermarketId())
|
||||
&& ModifyLogService.me.save(model, saveold, Enums.DataOpType.UPDATE.getId(), tokenuser);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (ret) {
|
||||
SyncTaskService.me.send(synctask);
|
||||
}
|
||||
|
||||
return ret ? Result.object(oldobj) : Result.failed(false, "修改失败");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.failed(false, "修改失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param model BaseModel
|
||||
* @return Result
|
||||
*/
|
||||
public Result delete(PresellOrder model, Sysuser tokenuser) {
|
||||
try {
|
||||
// 注意这里有 !,找到后才做 delete 操作
|
||||
if (!model.checkExistsByPk()) {
|
||||
return Result.failed(false, "按主键未找到对应记录");
|
||||
}
|
||||
|
||||
// 如果预售单已经进行了配额则不能删除
|
||||
List<PresellPug> list = PresellPugService.me.getByPresellOrderId(model.getId());
|
||||
if (list.size() > 0) {
|
||||
return Result.failed(false, "预售单已配额");
|
||||
}
|
||||
|
||||
PresellOrder oldobj = model.findByPk(); // 找到旧记录进行更新
|
||||
if (!oldobj.hasDelKey()) {
|
||||
return Result.failed(false, "不存在逻辑删除字段");
|
||||
}
|
||||
|
||||
PrepayCustomer prepayCustomer = PrepayCustomerService.me.getPrepayCustomer(oldobj.getCustomerId());
|
||||
if (prepayCustomer == null) {
|
||||
return Result.failed(false,"未获取到预付费客户信息");
|
||||
}
|
||||
|
||||
PresellOrder saveold = oldobj.clone();
|
||||
oldobj.setDel(Const.LOGIC_DEL_INVALID); // 逻辑删除字段统一用 del
|
||||
|
||||
SyncTask synctask = new SyncTask();
|
||||
SyncTask synctaskincrement = new SyncTask();
|
||||
boolean ret = Db.tx(new IAtom() {
|
||||
@Override
|
||||
public boolean run() {
|
||||
try {
|
||||
boolean ret = oldobj.update();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
prepayCustomer.setSurplus(prepayCustomer.getSurplus().add(saveold.getPresellAmount()));
|
||||
|
||||
synctaskincrement.addIncrementData(
|
||||
prepayCustomer.getTablename(),
|
||||
"id",
|
||||
prepayCustomer.getId(),
|
||||
new JSONObject().fluentPut("surplus", saveold.getPresellAmount())
|
||||
);
|
||||
|
||||
// 余额变化需要广播
|
||||
SyncTaskService.me.save(synctaskincrement);
|
||||
ret = prepayCustomer.update();
|
||||
|
||||
if (!ret) {
|
||||
return false;
|
||||
}
|
||||
|
||||
synctask.addUpdateData(oldobj);
|
||||
|
||||
return SyncTaskService.me.save(synctask, saveold.getSupermarketId())
|
||||
&& ModifyLogService.me.save(oldobj, saveold, Enums.DataOpType.UPDATE.getId(), tokenuser);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (ret) {
|
||||
SyncTaskService.me.send(synctask);
|
||||
}
|
||||
|
||||
return ret ? Result.object(oldobj) : Result.failed(false, "取消失败");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.failed(false, "取消失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
package com.cowr.service.ssjygl.presellorder;
|
||||
|
||||
import com.jfinal.core.Controller;
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PresellOrder;
|
||||
|
||||
/**
|
||||
* Generated by COWR Wed Dec 15 11:37:33 CST 2021
|
||||
* TableName: presell_order
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellOrderValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
// 默认新增时,前端不需要传主键。若需要前端传主键,需要去掉这个判断
|
||||
if (!"save".equals(getActionMethodName())) {
|
||||
validateRequired("id", "id", "id 必填");
|
||||
validateString("id", 1, 32, "id", "id 长度 1~32");
|
||||
}
|
||||
|
||||
validateInteger("customer_id", 1, 2147483647, "customer_id", "customer_id 范围 1~2147483647");
|
||||
|
||||
validateInteger("supermarket_id", 1, 2147483647, "supermarket_id", "supermarket_id 范围 1~2147483647");
|
||||
|
||||
validateString("presell_date", 1, 10, "presell_date", "presell_date 长度 1~10");
|
||||
|
||||
validateDate("presell_date", "yyyy-MM-dd", false, "presell_date", "presell_date 格式 yyyy-MM-dd"); // 默认时间时间字符串格式,生成后根据情况调整
|
||||
|
||||
validateBigDecimal("presell_amount", new java.math.BigDecimal(-9.9999999999E10), new java.math.BigDecimal(9.9999999999E10), "presell_amount", "presell_amount 范围 -9.9999999999E10~9.9999999999E10");
|
||||
|
||||
validateString("invoice_number", 0, 20, "invoice_number", "invoice_number 长度 0~20");
|
||||
|
||||
validateString("invoice_code", 0, 20, "invoice_code", "invoice_code 长度 0~20");
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
// 这里用 getActionMethodName 写死,判断是 update 时,才做验证
|
||||
// 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段
|
||||
if ("edit".equals(getActionMethodName())) {
|
||||
validateUpdateModel(PresellOrder.class, "", true); // 忽略不在model中的字段
|
||||
}
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
package com.cowr.service.ssjygl.presellpug;
|
||||
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PresellPug;
|
||||
import com.cowr.ssjygl.presellpug.PresellPugService;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:53 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellPugController extends Controller {
|
||||
|
||||
/**
|
||||
* 新增 presell_pug
|
||||
*/
|
||||
@Before(PresellPugValidator.class)
|
||||
public void save(){
|
||||
PresellPug model = getModel(PresellPug.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellPugService.me.save(model));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除 presell_pug
|
||||
*/
|
||||
@Before(PresellPugPKValidator.class)
|
||||
public void del(){
|
||||
PresellPug model = getModel(PresellPug.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellPugService.me.delete(model));
|
||||
}
|
||||
|
||||
/**
|
||||
* 恢复 presell_pug
|
||||
*/
|
||||
@Before(PresellPugPKValidator.class)
|
||||
public void restore(){
|
||||
PresellPug model = getModel(PresellPug.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellPugService.me.restore(model));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 presell_pug
|
||||
*/
|
||||
@Before(PresellPugValidator.class)
|
||||
public void edit(){
|
||||
PresellPug model = getModel(PresellPug.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PresellPugService.me.update(model));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查找 presell_pug
|
||||
*/
|
||||
public void find(){
|
||||
Integer customer_id = getInt("customer_id");
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
String name = get("name");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
PageParam pp = getBean(PageParam.class, "", true);
|
||||
renderJson(Result.object(PresellPugService.me.find(pp, customer_id, supermarket_id, name, stm, etm)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回所有 presell_pug
|
||||
*/
|
||||
public void list(){
|
||||
renderJson(Result.object(PresellPugService.me.list()));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.cowr.service.ssjygl.presellpug;
|
||||
|
||||
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:53 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellPugPKValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
validateRequired("id", "id", "id 必填");
|
||||
validateLong("id", 1, 2147483647, "id", "id 范围 1~2147483647");
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
package com.cowr.service.ssjygl.presellpug;
|
||||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.base.BaseService;
|
||||
import com.cowr.common.enums.Enums;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PresellOrder;
|
||||
import com.cowr.model.PresellPug;
|
||||
import com.cowr.model.Sysuser;
|
||||
import com.cowr.ssjygl.modifylog.ModifyLogService;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.log.Log;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.IAtom;
|
||||
import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:53 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellPugService extends BaseService {
|
||||
private static final Log log = Log.getLog(PresellPugService.class);
|
||||
public static final PresellPugService me = new PresellPugService();
|
||||
|
||||
public Result save(PresellPug model, Sysuser sysuser) {
|
||||
try {
|
||||
String presellOrderId = model.getPresellOrderId();
|
||||
PresellOrder order = PresellOrder.dao.findById(presellOrderId);
|
||||
if (order == null) {
|
||||
return Result.failed(false, "未找到对应的预售单");
|
||||
}
|
||||
BigDecimal amount = order.getPresellAmount();
|
||||
model.setAmount(amount);
|
||||
boolean ret = Db.tx(new IAtom() {
|
||||
@Override
|
||||
public boolean run() {
|
||||
try {
|
||||
boolean ret = model.save();
|
||||
|
||||
if (ret) {
|
||||
ret = ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), sysuser);
|
||||
}
|
||||
|
||||
return ret;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return ret ? Result.object(model) : Result.failed(false, "新增失败");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
if (e.getMessage().contains("PRIMARY")) {
|
||||
return Result.failed(false, "主键冲突");
|
||||
} else {
|
||||
return Result.failed(false, e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Page<Record> find(PageParam pp, Integer customer_id, Integer supermarket_id, String name, String stm, String etm) {
|
||||
String selectsql = "select t.*, c.name customer_name, s.name supermarket_name, d.name product_name, c.address, c.texpayer_name, c.texpayer_num, c.memo \n";
|
||||
String fromsql = " from presell_pug t \n" +
|
||||
" left join presell_order o on t.presell_order_id = o.id \n" +
|
||||
" left join supermarket s on o.supermarket_id = s.id \n" +
|
||||
" left join product d on o.supermarket_id = d.id \n" +
|
||||
" where 1=1 \n";
|
||||
List<Object> paraList = new ArrayList<>();
|
||||
|
||||
if (StrKit.notBlank(name)) {
|
||||
fromsql += " and c.name like ? \n";
|
||||
paraList.add("%" + name.trim() + "%");
|
||||
}
|
||||
|
||||
if (supermarket_id != null) {
|
||||
fromsql += " and s.id = ?";
|
||||
paraList.add(supermarket_id);
|
||||
}
|
||||
|
||||
if (customer_id != null) {
|
||||
fromsql += " and c.id = ?";
|
||||
paraList.add(customer_id);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(stm)) {
|
||||
fromsql += " and t.create_time >= ?";
|
||||
paraList.add(stm);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(etm)) {
|
||||
fromsql += " and t.create_time <= ?";
|
||||
paraList.add(etm);
|
||||
}
|
||||
|
||||
String totalRowSql = "select count(*) " + fromsql;
|
||||
String findSql = selectsql + fromsql;
|
||||
|
||||
// 前端传了排序字段,并且排序字段存在相关表中
|
||||
if (StrKit.notBlank(pp.getSort_field()) && PresellPug.dao.hasColunm(pp.getSort_field())) {
|
||||
findSql += " order by t." + pp.getSort_field() + " is null, t." + pp.getSort_field();
|
||||
|
||||
if (Const.ORDER_BY_ASC.equals(pp.getSort_order())) {
|
||||
findSql += " " + Const.ORDER_BY_ASC;
|
||||
} else {
|
||||
findSql += " " + Const.ORDER_BY_DESC;
|
||||
}
|
||||
} else {
|
||||
findSql += " order by t.create_time desc";
|
||||
}
|
||||
|
||||
return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray());
|
||||
}
|
||||
|
||||
public List<PresellPug> list() {
|
||||
return PresellPug.dao.find("select * from presell_pug");
|
||||
}
|
||||
|
||||
public BigDecimal countPugAmount(String uuid) {
|
||||
BigDecimal ret = new BigDecimal(0);
|
||||
if (StrKit.isBlank(uuid)) {
|
||||
return ret;
|
||||
}
|
||||
BigDecimal rec = Db.queryBigDecimal(" select sum(amount) from presell_pug where presell_order_id = ?", uuid);
|
||||
if (rec != null) {
|
||||
return rec;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public List<PresellPug> getByPresellOrderId(String id) {
|
||||
List<PresellPug> ret = new ArrayList<>();
|
||||
if (StrKit.isBlank(id)) {
|
||||
return ret;
|
||||
}
|
||||
return PresellPug.dao.find("select * from presell_pug where presell_order_id = ?", id);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.cowr.service.ssjygl.presellpug;
|
||||
|
||||
import com.jfinal.core.Controller;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PresellPug;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Dec 16 15:44:53 CST 2021
|
||||
* TableName: presell_pug
|
||||
* Remarks:
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PresellPugValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
// 默认新增时,前端不需要传主键。若需要前端传主键,需要去掉这个判断
|
||||
if (!"save".equals(getActionMethodName())) {
|
||||
validateRequired("id", "id", "id 必填");
|
||||
|
||||
validateLong("id", 1, 2147483647, "id", "id 范围 1~2147483647");
|
||||
}
|
||||
|
||||
validateRequired("presell_order_id", "ipresell_order_id", "ipresell_order_id 必填");
|
||||
validateString("presell_order_id", 1, 32, "presell_order_id", "presell_order_id 长度 1~32");
|
||||
|
||||
|
||||
validateString("start_time", 1, 19, "start_time", "start_time 长度 1~19");
|
||||
validateDate("start_time", "yyyy-MM-dd", false, "start_time", "start_time 格式 yyyy-MM-dd"); // 默认时间时间字符串格式,生成后根据情况调整
|
||||
|
||||
validateString("cutoff_time", 1, 19, "cutoff_time", "cutoff_time 长度 1~19");
|
||||
validateDate("cutoff_time", "yyyy-MM-dd", false, "cutoff_time", "cutoff_time 格式 yyyy-MM-dd"); // 默认时间时间字符串格式,生成后根据情况调整
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
// 这里用 getActionMethodName 写死,判断是 update 时,才做验证
|
||||
// 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段
|
||||
if ("edit".equals(getActionMethodName())) {
|
||||
validateUpdateModel(PresellPug.class, "", true); // 忽略不在model中的字段
|
||||
}
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -452,4 +452,18 @@ public class OrderStatController extends BaseController {
|
|||
renderJson(Result.object(OrderStatService.me.yearStatisticsByCustomerId(year, customer_id, customer_name, type)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 各砂站预售额及已提货额统计表
|
||||
*/
|
||||
public void presellOrderStatistics() {
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
int export = getInt("export", 0); // 是否导出为exce 0 不导出,1 导出
|
||||
if (export == 0) {
|
||||
renderJson(Result.object(OrderStatService.me.presellOrderStatistics(stm, etm)));
|
||||
} else {
|
||||
Workbook wb = OrderStatService.me.presellOrderStatisticsExport(stm, etm);
|
||||
render(new ExcelRender("各砂站预售额及已提货额统计表_" + System.currentTimeMillis() + ".xlsx", wb));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue