调整集团订单
parent
8a47eb9ddb
commit
740c681766
|
|
@ -4,6 +4,7 @@ import com.jfinal.kit.StrKit;
|
|||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
|
||||
public class DateTimeUtil {
|
||||
|
|
@ -64,4 +65,29 @@ public class DateTimeUtil {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isEarlyDate(String date, Date flag){
|
||||
try {
|
||||
Date d = sdf.get().parse(date);
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.setTime(flag);
|
||||
c.set(Calendar.HOUR_OF_DAY,0);
|
||||
c.set(Calendar.MINUTE,0);
|
||||
c.set(Calendar.SECOND,0);
|
||||
c.set(Calendar.MILLISECOND,0);
|
||||
|
||||
return d.getTime() < c.getTime().getTime();
|
||||
}catch (Exception e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否早于当天
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static boolean isEarlyToday(String date){
|
||||
return isEarlyDate(date, new Date());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.jfinal.plugin.activerecord.IBean;
|
|||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* Generated by COWR Sun May 17 21:43:18 CST 2020
|
||||
* Generated by COWR Thu Aug 20 11:16:08 CST 2020
|
||||
* TableName: customer
|
||||
* Remarks: 客户相关 - 客户
|
||||
* PrimaryKey: id
|
||||
|
|
@ -262,5 +262,27 @@ public abstract class BaseCustomer<M extends BaseCustomer<M>> extends BaseModel<
|
|||
return getInt("type");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: invoice_type
|
||||
* type: INT(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue: 1
|
||||
* @param invoiceType 1.普票,2.专票
|
||||
*/
|
||||
@JSONField(name="invoice_type")
|
||||
public void setInvoiceType(Integer invoiceType) {
|
||||
set("invoice_type", invoiceType);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return invoice_type 1.普票,2.专票
|
||||
*/
|
||||
@JSONField(name="invoice_type")
|
||||
public Integer getInvoiceType() {
|
||||
return getInt("invoice_type");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import com.jfinal.plugin.activerecord.IBean;
|
|||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* Generated by COWR Fri Apr 17 16:59:35 CST 2020
|
||||
* Generated by COWR Thu Aug 20 14:45:13 CST 2020
|
||||
* TableName: ordercluster
|
||||
* Remarks: 订单相关 - 订单
|
||||
* Remarks: 订单相关 - 订单(固定供砂客户配额)
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
|
|
@ -29,7 +29,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param id 主键
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public void setId(java.lang.Integer id) {
|
||||
public void setId(Integer id) {
|
||||
set("id", id);
|
||||
}
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return id 主键
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public java.lang.Integer getId() {
|
||||
public Integer getId() {
|
||||
return getInt("id");
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param uuid UUID 唯一验证
|
||||
*/
|
||||
@JSONField(name="uuid")
|
||||
public void setUuid(java.lang.String uuid) {
|
||||
public void setUuid(String uuid) {
|
||||
set("uuid", uuid);
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return uuid UUID 唯一验证
|
||||
*/
|
||||
@JSONField(name="uuid")
|
||||
public java.lang.String getUuid() {
|
||||
public String getUuid() {
|
||||
return getStr("uuid");
|
||||
}
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param cutoffTime 客户要求的送货截止时间
|
||||
* @param cutoffTime 客户要求的送货截止时间(限定的执行日期,只能在执行当前进行)
|
||||
*/
|
||||
@JSONField(name="cutoff_time")
|
||||
public void setCutoffTime(java.util.Date cutoffTime) {
|
||||
|
|
@ -145,7 +145,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
|
||||
|
||||
/**
|
||||
* @return cutoff_time 客户要求的送货截止时间
|
||||
* @return cutoff_time 客户要求的送货截止时间(限定的执行日期,只能在执行当前进行)
|
||||
*/
|
||||
@JSONField(name="cutoff_time")
|
||||
public java.util.Date getCutoffTime() {
|
||||
|
|
@ -177,10 +177,10 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
/**
|
||||
* name: unit_price
|
||||
* type: DECIMAL(12,2)
|
||||
* isNullable: NO
|
||||
* isNullable: YES
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param unitPrice 单价
|
||||
* @param unitPrice 单价,以实际结算时的商品单价为准
|
||||
*/
|
||||
@JSONField(name="unit_price")
|
||||
public void setUnitPrice(java.math.BigDecimal unitPrice) {
|
||||
|
|
@ -189,7 +189,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
|
||||
|
||||
/**
|
||||
* @return unit_price 单价
|
||||
* @return unit_price 单价,以实际结算时的商品单价为准
|
||||
*/
|
||||
@JSONField(name="unit_price")
|
||||
public java.math.BigDecimal getUnitPrice() {
|
||||
|
|
@ -205,7 +205,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param state 1.新建, 2.执行中 5.完成,9.取消
|
||||
*/
|
||||
@JSONField(name="state")
|
||||
public void setState(java.lang.Integer state) {
|
||||
public void setState(Integer state) {
|
||||
set("state", state);
|
||||
}
|
||||
|
||||
|
|
@ -214,7 +214,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return state 1.新建, 2.执行中 5.完成,9.取消
|
||||
*/
|
||||
@JSONField(name="state")
|
||||
public java.lang.Integer getState() {
|
||||
public Integer getState() {
|
||||
return getInt("state");
|
||||
}
|
||||
|
||||
|
|
@ -227,7 +227,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param supermarketId 超市id
|
||||
*/
|
||||
@JSONField(name="supermarket_id")
|
||||
public void setSupermarketId(java.lang.Integer supermarketId) {
|
||||
public void setSupermarketId(Integer supermarketId) {
|
||||
set("supermarket_id", supermarketId);
|
||||
}
|
||||
|
||||
|
|
@ -236,7 +236,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return supermarket_id 超市id
|
||||
*/
|
||||
@JSONField(name="supermarket_id")
|
||||
public java.lang.Integer getSupermarketId() {
|
||||
public Integer getSupermarketId() {
|
||||
return getInt("supermarket_id");
|
||||
}
|
||||
|
||||
|
|
@ -271,7 +271,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param payType 支付方式: 1,现场支付; 2,在线支付
|
||||
*/
|
||||
@JSONField(name="pay_type")
|
||||
public void setPayType(java.lang.Integer payType) {
|
||||
public void setPayType(Integer payType) {
|
||||
set("pay_type", payType);
|
||||
}
|
||||
|
||||
|
|
@ -280,7 +280,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return pay_type 支付方式: 1,现场支付; 2,在线支付
|
||||
*/
|
||||
@JSONField(name="pay_type")
|
||||
public java.lang.Integer getPayType() {
|
||||
public Integer getPayType() {
|
||||
return getInt("pay_type");
|
||||
}
|
||||
|
||||
|
|
@ -293,7 +293,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param createUserId 创建该记录的用户id
|
||||
*/
|
||||
@JSONField(name="create_user_id")
|
||||
public void setCreateUserId(java.lang.Integer createUserId) {
|
||||
public void setCreateUserId(Integer createUserId) {
|
||||
set("create_user_id", createUserId);
|
||||
}
|
||||
|
||||
|
|
@ -302,7 +302,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return create_user_id 创建该记录的用户id
|
||||
*/
|
||||
@JSONField(name="create_user_id")
|
||||
public java.lang.Integer getCreateUserId() {
|
||||
public Integer getCreateUserId() {
|
||||
return getInt("create_user_id");
|
||||
}
|
||||
|
||||
|
|
@ -315,7 +315,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param createUserName 创建用户名
|
||||
*/
|
||||
@JSONField(name="create_user_name")
|
||||
public void setCreateUserName(java.lang.String createUserName) {
|
||||
public void setCreateUserName(String createUserName) {
|
||||
set("create_user_name", createUserName);
|
||||
}
|
||||
|
||||
|
|
@ -324,7 +324,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return create_user_name 创建用户名
|
||||
*/
|
||||
@JSONField(name="create_user_name")
|
||||
public java.lang.String getCreateUserName() {
|
||||
public String getCreateUserName() {
|
||||
return getStr("create_user_name");
|
||||
}
|
||||
|
||||
|
|
@ -337,7 +337,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param reqReceipt 是否需要发票,0 默认不需要,1需要
|
||||
*/
|
||||
@JSONField(name="req_receipt")
|
||||
public void setReqReceipt(java.lang.Integer reqReceipt) {
|
||||
public void setReqReceipt(Integer reqReceipt) {
|
||||
set("req_receipt", reqReceipt);
|
||||
}
|
||||
|
||||
|
|
@ -346,7 +346,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return req_receipt 是否需要发票,0 默认不需要,1需要
|
||||
*/
|
||||
@JSONField(name="req_receipt")
|
||||
public java.lang.Integer getReqReceipt() {
|
||||
public Integer getReqReceipt() {
|
||||
return getInt("req_receipt");
|
||||
}
|
||||
|
||||
|
|
@ -375,13 +375,13 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
/**
|
||||
* name: product_id
|
||||
* type: INT(10)
|
||||
* isNullable: YES
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param productId 品类id
|
||||
*/
|
||||
@JSONField(name="product_id")
|
||||
public void setProductId(java.lang.Integer productId) {
|
||||
public void setProductId(Integer productId) {
|
||||
set("product_id", productId);
|
||||
}
|
||||
|
||||
|
|
@ -390,20 +390,20 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return product_id 品类id
|
||||
*/
|
||||
@JSONField(name="product_id")
|
||||
public java.lang.Integer getProductId() {
|
||||
public Integer getProductId() {
|
||||
return getInt("product_id");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: product_name
|
||||
* type: VARCHAR(255)
|
||||
* isNullable: YES
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param productName 品类名称
|
||||
*/
|
||||
@JSONField(name="product_name")
|
||||
public void setProductName(java.lang.String productName) {
|
||||
public void setProductName(String productName) {
|
||||
set("product_name", productName);
|
||||
}
|
||||
|
||||
|
|
@ -412,20 +412,20 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return product_name 品类名称
|
||||
*/
|
||||
@JSONField(name="product_name")
|
||||
public java.lang.String getProductName() {
|
||||
public String getProductName() {
|
||||
return getStr("product_name");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: customer_id
|
||||
* type: INT(10)
|
||||
* isNullable: YES
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue:
|
||||
* @param customerId
|
||||
*/
|
||||
@JSONField(name="customer_id")
|
||||
public void setCustomerId(java.lang.Integer customerId) {
|
||||
public void setCustomerId(Integer customerId) {
|
||||
set("customer_id", customerId);
|
||||
}
|
||||
|
||||
|
|
@ -434,7 +434,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_id
|
||||
*/
|
||||
@JSONField(name="customer_id")
|
||||
public java.lang.Integer getCustomerId() {
|
||||
public Integer getCustomerId() {
|
||||
return getInt("customer_id");
|
||||
}
|
||||
|
||||
|
|
@ -447,7 +447,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerName
|
||||
*/
|
||||
@JSONField(name="customer_name")
|
||||
public void setCustomerName(java.lang.String customerName) {
|
||||
public void setCustomerName(String customerName) {
|
||||
set("customer_name", customerName);
|
||||
}
|
||||
|
||||
|
|
@ -456,7 +456,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_name
|
||||
*/
|
||||
@JSONField(name="customer_name")
|
||||
public java.lang.String getCustomerName() {
|
||||
public String getCustomerName() {
|
||||
return getStr("customer_name");
|
||||
}
|
||||
|
||||
|
|
@ -469,7 +469,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerTexpayerName 客户开票公司名称
|
||||
*/
|
||||
@JSONField(name="customer_texpayer_name")
|
||||
public void setCustomerTexpayerName(java.lang.String customerTexpayerName) {
|
||||
public void setCustomerTexpayerName(String customerTexpayerName) {
|
||||
set("customer_texpayer_name", customerTexpayerName);
|
||||
}
|
||||
|
||||
|
|
@ -478,7 +478,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_texpayer_name 客户开票公司名称
|
||||
*/
|
||||
@JSONField(name="customer_texpayer_name")
|
||||
public java.lang.String getCustomerTexpayerName() {
|
||||
public String getCustomerTexpayerName() {
|
||||
return getStr("customer_texpayer_name");
|
||||
}
|
||||
|
||||
|
|
@ -491,7 +491,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerTexpayerNum 客户纳税人识别号
|
||||
*/
|
||||
@JSONField(name="customer_texpayer_num")
|
||||
public void setCustomerTexpayerNum(java.lang.String customerTexpayerNum) {
|
||||
public void setCustomerTexpayerNum(String customerTexpayerNum) {
|
||||
set("customer_texpayer_num", customerTexpayerNum);
|
||||
}
|
||||
|
||||
|
|
@ -500,7 +500,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_texpayer_num 客户纳税人识别号
|
||||
*/
|
||||
@JSONField(name="customer_texpayer_num")
|
||||
public java.lang.String getCustomerTexpayerNum() {
|
||||
public String getCustomerTexpayerNum() {
|
||||
return getStr("customer_texpayer_num");
|
||||
}
|
||||
|
||||
|
|
@ -513,7 +513,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerAddress
|
||||
*/
|
||||
@JSONField(name="customer_address")
|
||||
public void setCustomerAddress(java.lang.String customerAddress) {
|
||||
public void setCustomerAddress(String customerAddress) {
|
||||
set("customer_address", customerAddress);
|
||||
}
|
||||
|
||||
|
|
@ -522,7 +522,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_address
|
||||
*/
|
||||
@JSONField(name="customer_address")
|
||||
public java.lang.String getCustomerAddress() {
|
||||
public String getCustomerAddress() {
|
||||
return getStr("customer_address");
|
||||
}
|
||||
|
||||
|
|
@ -535,7 +535,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerPhone
|
||||
*/
|
||||
@JSONField(name="customer_phone")
|
||||
public void setCustomerPhone(java.lang.String customerPhone) {
|
||||
public void setCustomerPhone(String customerPhone) {
|
||||
set("customer_phone", customerPhone);
|
||||
}
|
||||
|
||||
|
|
@ -544,7 +544,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_phone
|
||||
*/
|
||||
@JSONField(name="customer_phone")
|
||||
public java.lang.String getCustomerPhone() {
|
||||
public String getCustomerPhone() {
|
||||
return getStr("customer_phone");
|
||||
}
|
||||
|
||||
|
|
@ -557,7 +557,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerBankName
|
||||
*/
|
||||
@JSONField(name="customer_bank_name")
|
||||
public void setCustomerBankName(java.lang.String customerBankName) {
|
||||
public void setCustomerBankName(String customerBankName) {
|
||||
set("customer_bank_name", customerBankName);
|
||||
}
|
||||
|
||||
|
|
@ -566,7 +566,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_bank_name
|
||||
*/
|
||||
@JSONField(name="customer_bank_name")
|
||||
public java.lang.String getCustomerBankName() {
|
||||
public String getCustomerBankName() {
|
||||
return getStr("customer_bank_name");
|
||||
}
|
||||
|
||||
|
|
@ -579,7 +579,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerBankAccount
|
||||
*/
|
||||
@JSONField(name="customer_bank_account")
|
||||
public void setCustomerBankAccount(java.lang.String customerBankAccount) {
|
||||
public void setCustomerBankAccount(String customerBankAccount) {
|
||||
set("customer_bank_account", customerBankAccount);
|
||||
}
|
||||
|
||||
|
|
@ -588,7 +588,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_bank_account
|
||||
*/
|
||||
@JSONField(name="customer_bank_account")
|
||||
public java.lang.String getCustomerBankAccount() {
|
||||
public String getCustomerBankAccount() {
|
||||
return getStr("customer_bank_account");
|
||||
}
|
||||
|
||||
|
|
@ -601,7 +601,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerReceiverName 收货人
|
||||
*/
|
||||
@JSONField(name="customer_receiver_name")
|
||||
public void setCustomerReceiverName(java.lang.String customerReceiverName) {
|
||||
public void setCustomerReceiverName(String customerReceiverName) {
|
||||
set("customer_receiver_name", customerReceiverName);
|
||||
}
|
||||
|
||||
|
|
@ -610,7 +610,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_receiver_name 收货人
|
||||
*/
|
||||
@JSONField(name="customer_receiver_name")
|
||||
public java.lang.String getCustomerReceiverName() {
|
||||
public String getCustomerReceiverName() {
|
||||
return getStr("customer_receiver_name");
|
||||
}
|
||||
|
||||
|
|
@ -623,7 +623,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerReceiverPhone 收货人电话
|
||||
*/
|
||||
@JSONField(name="customer_receiver_phone")
|
||||
public void setCustomerReceiverPhone(java.lang.String customerReceiverPhone) {
|
||||
public void setCustomerReceiverPhone(String customerReceiverPhone) {
|
||||
set("customer_receiver_phone", customerReceiverPhone);
|
||||
}
|
||||
|
||||
|
|
@ -632,7 +632,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_receiver_phone 收货人电话
|
||||
*/
|
||||
@JSONField(name="customer_receiver_phone")
|
||||
public java.lang.String getCustomerReceiverPhone() {
|
||||
public String getCustomerReceiverPhone() {
|
||||
return getStr("customer_receiver_phone");
|
||||
}
|
||||
|
||||
|
|
@ -645,7 +645,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param customerReceiverAddress 送货地址
|
||||
*/
|
||||
@JSONField(name="customer_receiver_address")
|
||||
public void setCustomerReceiverAddress(java.lang.String customerReceiverAddress) {
|
||||
public void setCustomerReceiverAddress(String customerReceiverAddress) {
|
||||
set("customer_receiver_address", customerReceiverAddress);
|
||||
}
|
||||
|
||||
|
|
@ -654,7 +654,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return customer_receiver_address 送货地址
|
||||
*/
|
||||
@JSONField(name="customer_receiver_address")
|
||||
public java.lang.String getCustomerReceiverAddress() {
|
||||
public String getCustomerReceiverAddress() {
|
||||
return getStr("customer_receiver_address");
|
||||
}
|
||||
|
||||
|
|
@ -711,7 +711,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoId 物流公司
|
||||
*/
|
||||
@JSONField(name="trans_co_id")
|
||||
public void setTransCoId(java.lang.Integer transCoId) {
|
||||
public void setTransCoId(Integer transCoId) {
|
||||
set("trans_co_id", transCoId);
|
||||
}
|
||||
|
||||
|
|
@ -720,7 +720,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_id 物流公司
|
||||
*/
|
||||
@JSONField(name="trans_co_id")
|
||||
public java.lang.Integer getTransCoId() {
|
||||
public Integer getTransCoId() {
|
||||
return getInt("trans_co_id");
|
||||
}
|
||||
|
||||
|
|
@ -733,7 +733,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoName
|
||||
*/
|
||||
@JSONField(name="trans_co_name")
|
||||
public void setTransCoName(java.lang.String transCoName) {
|
||||
public void setTransCoName(String transCoName) {
|
||||
set("trans_co_name", transCoName);
|
||||
}
|
||||
|
||||
|
|
@ -742,7 +742,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_name
|
||||
*/
|
||||
@JSONField(name="trans_co_name")
|
||||
public java.lang.String getTransCoName() {
|
||||
public String getTransCoName() {
|
||||
return getStr("trans_co_name");
|
||||
}
|
||||
|
||||
|
|
@ -755,7 +755,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoTexpayerName 物流公司开票公司名称
|
||||
*/
|
||||
@JSONField(name="trans_co_texpayer_name")
|
||||
public void setTransCoTexpayerName(java.lang.String transCoTexpayerName) {
|
||||
public void setTransCoTexpayerName(String transCoTexpayerName) {
|
||||
set("trans_co_texpayer_name", transCoTexpayerName);
|
||||
}
|
||||
|
||||
|
|
@ -764,7 +764,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_texpayer_name 物流公司开票公司名称
|
||||
*/
|
||||
@JSONField(name="trans_co_texpayer_name")
|
||||
public java.lang.String getTransCoTexpayerName() {
|
||||
public String getTransCoTexpayerName() {
|
||||
return getStr("trans_co_texpayer_name");
|
||||
}
|
||||
|
||||
|
|
@ -777,7 +777,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoTexpayerNum
|
||||
*/
|
||||
@JSONField(name="trans_co_texpayer_num")
|
||||
public void setTransCoTexpayerNum(java.lang.String transCoTexpayerNum) {
|
||||
public void setTransCoTexpayerNum(String transCoTexpayerNum) {
|
||||
set("trans_co_texpayer_num", transCoTexpayerNum);
|
||||
}
|
||||
|
||||
|
|
@ -786,7 +786,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_texpayer_num
|
||||
*/
|
||||
@JSONField(name="trans_co_texpayer_num")
|
||||
public java.lang.String getTransCoTexpayerNum() {
|
||||
public String getTransCoTexpayerNum() {
|
||||
return getStr("trans_co_texpayer_num");
|
||||
}
|
||||
|
||||
|
|
@ -799,7 +799,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoAddress
|
||||
*/
|
||||
@JSONField(name="trans_co_address")
|
||||
public void setTransCoAddress(java.lang.String transCoAddress) {
|
||||
public void setTransCoAddress(String transCoAddress) {
|
||||
set("trans_co_address", transCoAddress);
|
||||
}
|
||||
|
||||
|
|
@ -808,7 +808,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_address
|
||||
*/
|
||||
@JSONField(name="trans_co_address")
|
||||
public java.lang.String getTransCoAddress() {
|
||||
public String getTransCoAddress() {
|
||||
return getStr("trans_co_address");
|
||||
}
|
||||
|
||||
|
|
@ -821,7 +821,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoPhone
|
||||
*/
|
||||
@JSONField(name="trans_co_phone")
|
||||
public void setTransCoPhone(java.lang.String transCoPhone) {
|
||||
public void setTransCoPhone(String transCoPhone) {
|
||||
set("trans_co_phone", transCoPhone);
|
||||
}
|
||||
|
||||
|
|
@ -830,7 +830,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_phone
|
||||
*/
|
||||
@JSONField(name="trans_co_phone")
|
||||
public java.lang.String getTransCoPhone() {
|
||||
public String getTransCoPhone() {
|
||||
return getStr("trans_co_phone");
|
||||
}
|
||||
|
||||
|
|
@ -843,7 +843,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoBankName
|
||||
*/
|
||||
@JSONField(name="trans_co_bank_name")
|
||||
public void setTransCoBankName(java.lang.String transCoBankName) {
|
||||
public void setTransCoBankName(String transCoBankName) {
|
||||
set("trans_co_bank_name", transCoBankName);
|
||||
}
|
||||
|
||||
|
|
@ -852,7 +852,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_bank_name
|
||||
*/
|
||||
@JSONField(name="trans_co_bank_name")
|
||||
public java.lang.String getTransCoBankName() {
|
||||
public String getTransCoBankName() {
|
||||
return getStr("trans_co_bank_name");
|
||||
}
|
||||
|
||||
|
|
@ -865,7 +865,7 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @param transCoBankAccount
|
||||
*/
|
||||
@JSONField(name="trans_co_bank_account")
|
||||
public void setTransCoBankAccount(java.lang.String transCoBankAccount) {
|
||||
public void setTransCoBankAccount(String transCoBankAccount) {
|
||||
set("trans_co_bank_account", transCoBankAccount);
|
||||
}
|
||||
|
||||
|
|
@ -874,9 +874,53 @@ public abstract class BaseOrdercluster<M extends BaseOrdercluster<M>> extends Ba
|
|||
* @return trans_co_bank_account
|
||||
*/
|
||||
@JSONField(name="trans_co_bank_account")
|
||||
public java.lang.String getTransCoBankAccount() {
|
||||
public String getTransCoBankAccount() {
|
||||
return getStr("trans_co_bank_account");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: time_interval
|
||||
* type: SMALLINT(5)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue: 1
|
||||
* @param timeInterval 1.全天,2.上午,3.下午
|
||||
*/
|
||||
@JSONField(name="time_interval")
|
||||
public void setTimeInterval(Integer timeInterval) {
|
||||
set("time_interval", timeInterval);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return time_interval 1.全天,2.上午,3.下午
|
||||
*/
|
||||
@JSONField(name="time_interval")
|
||||
public Integer getTimeInterval() {
|
||||
return getInt("time_interval");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: mini_truck
|
||||
* type: INT(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue: 1
|
||||
* @param miniTruck 最少指派的车辆数
|
||||
*/
|
||||
@JSONField(name="mini_truck")
|
||||
public void setMiniTruck(Integer miniTruck) {
|
||||
set("mini_truck", miniTruck);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return mini_truck 最少指派的车辆数
|
||||
*/
|
||||
@JSONField(name="mini_truck")
|
||||
public Integer getMiniTruck() {
|
||||
return getInt("mini_truck");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.jfinal.plugin.activerecord.IBean;
|
|||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
|
||||
/**
|
||||
* Generated by COWR Fri Apr 17 16:59:35 CST 2020
|
||||
* Generated by COWR Thu Aug 20 11:16:08 CST 2020
|
||||
* TableName: supermarket
|
||||
* Remarks: 基础配置 - 销售点(超市)
|
||||
* PrimaryKey: id
|
||||
|
|
@ -29,7 +29,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @param id
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public void setId(java.lang.Integer id) {
|
||||
public void setId(Integer id) {
|
||||
set("id", id);
|
||||
}
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @return id
|
||||
*/
|
||||
@JSONField(name="id")
|
||||
public java.lang.Integer getId() {
|
||||
public Integer getId() {
|
||||
return getInt("id");
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @param name
|
||||
*/
|
||||
@JSONField(name="name")
|
||||
public void setName(java.lang.String name) {
|
||||
public void setName(String name) {
|
||||
set("name", name);
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @return name
|
||||
*/
|
||||
@JSONField(name="name")
|
||||
public java.lang.String getName() {
|
||||
public String getName() {
|
||||
return getStr("name");
|
||||
}
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @param name2 名称简写
|
||||
*/
|
||||
@JSONField(name="name2")
|
||||
public void setName2(java.lang.String name2) {
|
||||
public void setName2(String name2) {
|
||||
set("name2", name2);
|
||||
}
|
||||
|
||||
|
|
@ -82,7 +82,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @return name2 名称简写
|
||||
*/
|
||||
@JSONField(name="name2")
|
||||
public java.lang.String getName2() {
|
||||
public String getName2() {
|
||||
return getStr("name2");
|
||||
}
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @param address 地址
|
||||
*/
|
||||
@JSONField(name="address")
|
||||
public void setAddress(java.lang.String address) {
|
||||
public void setAddress(String address) {
|
||||
set("address", address);
|
||||
}
|
||||
|
||||
|
|
@ -148,7 +148,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @return address 地址
|
||||
*/
|
||||
@JSONField(name="address")
|
||||
public java.lang.String getAddress() {
|
||||
public String getAddress() {
|
||||
return getStr("address");
|
||||
}
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @param phone 电话
|
||||
*/
|
||||
@JSONField(name="phone")
|
||||
public void setPhone(java.lang.String phone) {
|
||||
public void setPhone(String phone) {
|
||||
set("phone", phone);
|
||||
}
|
||||
|
||||
|
|
@ -170,7 +170,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @return phone 电话
|
||||
*/
|
||||
@JSONField(name="phone")
|
||||
public java.lang.String getPhone() {
|
||||
public String getPhone() {
|
||||
return getStr("phone");
|
||||
}
|
||||
|
||||
|
|
@ -183,7 +183,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @param del 逻辑删除标志
|
||||
*/
|
||||
@JSONField(name="del")
|
||||
public void setDel(java.lang.Integer del) {
|
||||
public void setDel(Integer del) {
|
||||
set("del", del);
|
||||
}
|
||||
|
||||
|
|
@ -192,7 +192,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
* @return del 逻辑删除标志
|
||||
*/
|
||||
@JSONField(name="del")
|
||||
public java.lang.Integer getDel() {
|
||||
public Integer getDel() {
|
||||
return getInt("del");
|
||||
}
|
||||
|
||||
|
|
@ -206,7 +206,7 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
本地程序以超市为单位部署,云端只对已部署的本地程序发送数据,并记录日志,可在本地程序重新上线后,补发数据
|
||||
*/
|
||||
@JSONField(name="isdeploy")
|
||||
public void setIsdeploy(java.lang.Integer isdeploy) {
|
||||
public void setIsdeploy(Integer isdeploy) {
|
||||
set("isdeploy", isdeploy);
|
||||
}
|
||||
|
||||
|
|
@ -216,9 +216,31 @@ public abstract class BaseSupermarket<M extends BaseSupermarket<M>> extends Base
|
|||
本地程序以超市为单位部署,云端只对已部署的本地程序发送数据,并记录日志,可在本地程序重新上线后,补发数据
|
||||
*/
|
||||
@JSONField(name="isdeploy")
|
||||
public java.lang.Integer getIsdeploy() {
|
||||
public Integer getIsdeploy() {
|
||||
return getInt("isdeploy");
|
||||
}
|
||||
|
||||
/**
|
||||
* name: invoice_type
|
||||
* type: INT(10)
|
||||
* isNullable: NO
|
||||
* isPrimaryKey: NO
|
||||
* defaultValue: 1
|
||||
* @param invoiceType 1.普票,2.专票
|
||||
*/
|
||||
@JSONField(name="invoice_type")
|
||||
public void setInvoiceType(Integer invoiceType) {
|
||||
set("invoice_type", invoiceType);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return invoice_type 1.普票,2.专票
|
||||
*/
|
||||
@JSONField(name="invoice_type")
|
||||
public Integer getInvoiceType() {
|
||||
return getInt("invoice_type");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,9 +25,20 @@ public class CustomerValidator extends CrudParamValidator {
|
|||
validateString("address", 0, 256, "address", "address 长度 0~256");
|
||||
validateString("phone", 0, 11, "phone", "phone 长度 0~11");
|
||||
validateString("texpayer_name", 0, 255, "texpayer_name", "texpayer_name 长度 0~255");
|
||||
|
||||
validateString("texpayer_num", 0, 20, "texpayer_num", "texpayer_num 长度 0~20");
|
||||
validateString("bank_name", 0, 128, "bank_name", "bank_name 长度 0~128");
|
||||
validateString("bank_account", 0, 20, "bank_account", "bank_account 长度 0~20");
|
||||
|
||||
if (StrKit.notBlank(c.get("invoice_type"))) {
|
||||
validateInteger("invoice_type", 1, 2, "invoice_type", "invoice_type 范围 1~2");
|
||||
|
||||
if(c.getInt("invoice_type") == 2){
|
||||
validateString("texpayer_num", 1, 20, "texpayer_num", "开具专票必须录入有效纳税人识别号");
|
||||
validateString("bank_name", 1, 128, "bank_name", "开具专票必须录入有效开户行信息");
|
||||
validateString("bank_account", 1, 20, "bank_account", "开具专票必须录入有效开户行账号");
|
||||
}
|
||||
}
|
||||
validateString("memo", 0, 256, "memo", "memo 长度 0~256");
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
|
|
|
|||
|
|
@ -108,13 +108,30 @@ public class OrderclusterService extends BaseService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 查询未完成的集团订单
|
||||
* 指定超市未执行完成的集团订单
|
||||
*
|
||||
* @param supermarket_id
|
||||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public List<Record> undoneOrdercluster(int supermarket_id, Integer customer_id) {
|
||||
public List<Record> undonlist(int supermarket_id, Integer customer_id, String date) {
|
||||
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 Db.find(sql, OrderStateEnum.RECEIVED.getStateid(), supermarket_id, customer_id, date + "%");
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定超市未执行完成的集团订单
|
||||
*
|
||||
* @param supermarket_id
|
||||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public List<Record> undonlist(int supermarket_id, Integer customer_id) {
|
||||
String sql = "select * from ordercluster t \n" +
|
||||
" where t.state < ? \n" +
|
||||
" and t.supermarket_id = ? \n";
|
||||
|
|
@ -127,7 +144,19 @@ public class OrderclusterService extends BaseService {
|
|||
paraList.add(customer_id);
|
||||
}
|
||||
|
||||
List<Record> list = Db.find(sql, paraList.toArray());
|
||||
return Db.find(sql, paraList.toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询未完成的集团订单
|
||||
* 设置已执行、剩余量
|
||||
*
|
||||
* @param supermarket_id
|
||||
* @param customer_id
|
||||
* @return
|
||||
*/
|
||||
public List<Record> undoneOrdercluster(int supermarket_id, Integer customer_id) {
|
||||
List<Record> list = undonlist(supermarket_id, customer_id);
|
||||
|
||||
setOverWeight(list);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.cowr.ssjygl.order.ordercluster;
|
||||
|
||||
import com.cowr.common.utils.DateTimeUtil;
|
||||
import com.cowr.common.utils.StrUtil;
|
||||
import com.jfinal.core.Controller;
|
||||
import com.jfinal.kit.StrKit;
|
||||
|
|
@ -10,7 +11,7 @@ import com.cowr.model.Ordercluster;
|
|||
/**
|
||||
* Generated by COWR Fri Apr 17 16:59:39 CST 2020
|
||||
* TableName: ordercluster
|
||||
* Remarks: 订单相关 - 订单
|
||||
* Remarks: 订单相关 - 订单(固定供砂客户配额)
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class OrderclusterValidator extends CrudParamValidator {
|
||||
|
|
@ -33,6 +34,10 @@ public class OrderclusterValidator extends CrudParamValidator {
|
|||
validateString("cutoff_time", 1, 19, "cutoff_time", "cutoff_time 长度 1~19");
|
||||
validateDate("cutoff_time", "yyyy-MM-dd HH:mm:ss", false, "cutoff_time", "cutoff_time 格式 yyyy-MM-dd HH:mm:ss"); // 默认时间时间字符串格式,生成后根据情况调整
|
||||
|
||||
if(StrKit.notBlank(c.get("cutoff_time")) && DateTimeUtil.isEarlyToday(c.get("cutoff_time"))){
|
||||
addError("cutoff_time", "截止时间不能早于今天");
|
||||
}
|
||||
|
||||
validateInteger("supermarket_id", 1, 2147483647, "supermarket_id", "supermarket_id 范围 1~2147483647");
|
||||
validateInteger("pay_type", 0, 1, "pay_type", "pay_type 范围 0~1");
|
||||
validateInteger("req_receipt", 0, 1, "req_receipt", "req_receipt 范围 0~1");
|
||||
|
|
@ -53,6 +58,8 @@ public class OrderclusterValidator extends CrudParamValidator {
|
|||
validateBigDecimal("customer_receiver_lttd", new java.math.BigDecimal(3.75), new java.math.BigDecimal(53.7), "customer_receiver_lttd", "customer_receiver_lttd 范围 3.75~53.7");
|
||||
}
|
||||
|
||||
validateInteger("time_interval", 1, 3, "time_interval", "time_interval 范围 1~3");
|
||||
validateInteger("mini_truck", 1, 2147483647, "mini_truck", "mini_truck 范围 1~2147483647");
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
// 这里用 getActionMethodName 写死,判断是 update 时,才做验证
|
||||
|
|
|
|||
|
|
@ -26,12 +26,6 @@ import java.util.Map;
|
|||
public class SupermarketService extends BaseService {
|
||||
public static final SupermarketService me = new SupermarketService();
|
||||
|
||||
public BigDecimal getSupUnitPrice(Integer supermarket_id, Integer product_id){
|
||||
SupermarketProduct sp = SupermarketProduct.dao.findByIds(supermarket_id, product_id);
|
||||
|
||||
return sp == null ? new BigDecimal(0) : sp.getUnitPrice();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有超市和商品的配置
|
||||
* 数据量不多,都加载进来
|
||||
|
|
|
|||
|
|
@ -20,13 +20,16 @@ public class SupermarketValidator extends CrudParamValidator {
|
|||
validateRequired("id", "id", "id 必填");
|
||||
validateInteger("id", 1, 2147483647, "id", "id 范围 1~2147483647");
|
||||
}
|
||||
|
||||
|
||||
validateString("name", 1, 128, "name", "name 长度 1~128");
|
||||
validateString("name2", 0, 128, "name2", "name2 长度 0~128");
|
||||
|
||||
validateBigDecimal("lgtd", new java.math.BigDecimal(74), new java.math.BigDecimal(135), "lgtd", "lgtd 范围 74~135");
|
||||
validateBigDecimal("lttd", new java.math.BigDecimal(3.75), new java.math.BigDecimal(53.7), "lttd", "lttd 范围 3.75~53.7");
|
||||
validateString("address", 0, 256, "address", "address 长度 0~256");
|
||||
if (StrKit.notBlank(c.get("invoice_type"))) {
|
||||
validateInteger("invoice_type", 1, 2, "invoice_type", "invoice_type 范围 1~2");
|
||||
}
|
||||
validateString("phone", 0, 11, "phone", "phone 长度 0~11");
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.cowr.local.ssjygl.supermarket.product;
|
||||
package com.cowr.ssjygl.supermarket.product;
|
||||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.base.BaseService;
|
||||
|
|
@ -0,0 +1,267 @@
|
|||
package com.cowr.local.ssjygl.devicectrl.device;
|
||||
|
||||
import com.jfinal.log.Log;
|
||||
import org.apache.poi.util.HexDump;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.nio.charset.Charset;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
public class LEDThread extends Device implements Runnable {
|
||||
private static Log log = Log.getLog(LED.class);
|
||||
private static final String LEDWeightFormat = "%s\\n %s \\n重: %s吨";
|
||||
private static final String LEDInfoFormat = "%s\\n %s \\n%s";
|
||||
|
||||
private String license = "";
|
||||
private String text = "系统启动";
|
||||
private String format = LEDInfoFormat;
|
||||
|
||||
private boolean running = true;
|
||||
|
||||
public void setRunning(boolean running) {
|
||||
this.running = running;
|
||||
}
|
||||
|
||||
public void setInfo(String license, String text) {
|
||||
this.license = license;
|
||||
this.text = text;
|
||||
this.format = LEDInfoFormat;
|
||||
}
|
||||
|
||||
public void setWeightInfo(String license, String text) {
|
||||
this.license = license;
|
||||
this.text = text;
|
||||
this.format = LEDWeightFormat;
|
||||
}
|
||||
|
||||
private static final ThreadLocal<SimpleDateFormat> sdf = new ThreadLocal<SimpleDateFormat>() {
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("MM-dd HH:mm");
|
||||
}
|
||||
};
|
||||
|
||||
private ReentrantLock lock = new ReentrantLock();
|
||||
protected Socket socket;
|
||||
|
||||
public LEDThread(String id, String ip) {
|
||||
super(id, ip);
|
||||
}
|
||||
|
||||
public LEDThread(String id, String ip, int port) {
|
||||
super(id, ip, port);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while (this.running){
|
||||
try {
|
||||
screen();
|
||||
|
||||
Thread.sleep(1000);
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
System.out.println("running:" + running);
|
||||
}
|
||||
|
||||
System.out.println("led 线程退出");
|
||||
}
|
||||
|
||||
public void screen() {
|
||||
lock.lock();
|
||||
try {
|
||||
if (this.license == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 重连一次
|
||||
if (!isConnected()) {
|
||||
connect();
|
||||
}
|
||||
|
||||
String date = sdf.get().format(new Date());
|
||||
String dataStr = String.format(this.format, date, this.license, this.text);
|
||||
byte[] data = dataStr.getBytes(Charset.forName("gb2312"));
|
||||
int dataLen = data.length;
|
||||
byte[] msg = new byte[frameHead.length + packetHead.length + b.length + dataLen];
|
||||
System.arraycopy(frameHead, 0, msg, 0, frameHead.length);
|
||||
// System.out.println(HexDump.toHex(msg));
|
||||
packetHead[packetHead.length - 2] = (byte) (b.length + dataLen);
|
||||
System.arraycopy(packetHead, 0, msg, frameHead.length, packetHead.length);
|
||||
// System.out.println(HexDump.toHex(msg));
|
||||
int areaLen = b.length - 9 + dataLen;
|
||||
b[7] = (byte) areaLen;
|
||||
b[32] = (byte) dataLen;
|
||||
System.arraycopy(b, 0, msg, packetHead.length + frameHead.length, b.length);
|
||||
// System.out.println(HexDump.toHex(msg));
|
||||
System.arraycopy(data, 0, msg, packetHead.length + frameHead.length + b.length, dataLen);
|
||||
// System.out.println(HexDump.toHex(msg));
|
||||
|
||||
byte[] toCrc = new byte[msg.length - 8];
|
||||
System.arraycopy(msg, 8, toCrc, 0, toCrc.length);
|
||||
int crc = CalcCRC(toCrc, toCrc.length);
|
||||
|
||||
byte[] msgCrc = new byte[msg.length + 3];
|
||||
System.arraycopy(msg, 0, msgCrc, 0, msg.length);
|
||||
// System.out.println(HexDump.toHex(msgCrc));
|
||||
msgCrc[msgCrc.length - 2] = (byte) (crc >> 8);
|
||||
msgCrc[msgCrc.length - 3] = (byte) crc;
|
||||
msgCrc[msgCrc.length - 1] = frameTail;
|
||||
// System.out.println(HexDump.toHex(msgCrc));
|
||||
|
||||
socket.getOutputStream().write(msgCrc);
|
||||
socket.getOutputStream().flush();
|
||||
|
||||
InputStream in = socket.getInputStream();
|
||||
byte[] buf = new byte[in.available()];
|
||||
in.read(buf);
|
||||
// LED 返回
|
||||
// BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
|
||||
// byte[] y = new byte[128];
|
||||
// int read = bis.read(y);
|
||||
// while (!(read > 0)) {
|
||||
// read = bis.read(y);
|
||||
// }
|
||||
// byte[] z = new byte[read];
|
||||
// System.arraycopy(y, 0, z, 0, read);
|
||||
// System.out.println("LED 返回:");
|
||||
// System.out.println(HexDump.toHex(z));
|
||||
// socket.close();
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
private static byte[] frameHead = new byte[]{(byte) 0xa5, (byte) 0xa5, (byte) 0xa5, (byte) 0xa5, (byte) 0xa5, (byte) 0xa5, (byte) 0xa5, (byte) 0xa5};
|
||||
private static byte[] packetHead = new byte[]{
|
||||
(byte) 0xfe, (byte) 0xff,//屏号
|
||||
0x00, (byte) 0x80, //客户端
|
||||
0x00, 0x00, 0x00, //Reserved
|
||||
0x00, //option
|
||||
0x00, //CheckMode
|
||||
0x00,//DisplayMode
|
||||
0x61, //设备型号
|
||||
0x02,//协议版本
|
||||
0x00, 0x00//datalen
|
||||
};
|
||||
private static byte[] b = new byte[]{
|
||||
(byte) 0xa3,//指令分组,发送实时显示区域数据
|
||||
0x06,//结合上一个
|
||||
0x01,//0x01需要回复,0x02不用回复
|
||||
0x00,//ProcessMode,无用
|
||||
0x00,//Reserved
|
||||
0x00,//删除编号区域,无用
|
||||
0x01,//本次命令更新区域个数
|
||||
0x00, 0x00,//区域0数据长度动态计算,下标9~len-1
|
||||
//区域0数据
|
||||
0x00,//AreaType,未知
|
||||
0x00, (byte) 0x80, //AreaX
|
||||
0x00, 0x00, //AreaY
|
||||
0x60, (byte) 0x80,//width
|
||||
0x30, 0x00,//height
|
||||
0x00,//DynamicAreaLoc
|
||||
0x00,//Lines_sizes
|
||||
0x01,//Runmode
|
||||
0x02, 0x00, //timeout
|
||||
0x00,//sound mode
|
||||
0x00, 0x00,////Reserved
|
||||
0x02,//多行,0x01单行
|
||||
0x01,//手动换行
|
||||
0x02,//display mod 静止
|
||||
0x00,//exit mod
|
||||
0x02,//speed
|
||||
0x00,//stay time
|
||||
0x00, 0x00, 0x00, 0x00,//data len, 下标31,32,33,34
|
||||
//data
|
||||
//...区域n数据长度,区域n数据,无用
|
||||
};
|
||||
private static byte[] ping = new byte[]{
|
||||
0x05, 0x00,//长度
|
||||
(byte) 0xa2,
|
||||
0x00,
|
||||
0x01,
|
||||
0x00, 0x00
|
||||
};
|
||||
private static byte frameTail = 0x5a;
|
||||
|
||||
|
||||
private static int CRC(int crc, byte b) {
|
||||
return (((crc) >> 8) ^ tabel[((crc) ^ (int) (b)) & 0XFF]);
|
||||
}
|
||||
|
||||
private static int[] tabel = new int[]{0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241, 0XC601, 0X06C0, 0X0780, 0XC741, 0X0500, 0XC5C1, 0XC481, 0X0440, 0XCC01, 0X0CC0, 0X0D80, 0XCD41, 0X0F00, 0XCFC1, 0XCE81, 0X0E40, 0X0A00, 0XCAC1, 0XCB81, 0X0B40, 0XC901, 0X09C0, 0X0880, 0XC841, 0XD801, 0X18C0, 0X1980, 0XD941, 0X1B00, 0XDBC1, 0XDA81, 0X1A40, 0X1E00, 0XDEC1, 0XDF81, 0X1F40, 0XDD01, 0X1DC0, 0X1C80, 0XDC41, 0X1400, 0XD4C1, 0XD581, 0X1540, 0XD701, 0X17C0, 0X1680, 0XD641, 0XD201, 0X12C0, 0X1380, 0XD341, 0X1100, 0XD1C1, 0XD081, 0X1040, 0XF001, 0X30C0, 0X3180, 0XF141, 0X3300, 0XF3C1, 0XF281, 0X3240, 0X3600, 0XF6C1, 0XF781, 0X3740, 0XF501, 0X35C0, 0X3480, 0XF441, 0X3C00, 0XFCC1, 0XFD81, 0X3D40, 0XFF01, 0X3FC0, 0X3E80, 0XFE41, 0XFA01, 0X3AC0, 0X3B80, 0XFB41, 0X3900, 0XF9C1, 0XF881, 0X3840, 0X2800, 0XE8C1, 0XE981, 0X2940, 0XEB01, 0X2BC0, 0X2A80, 0XEA41, 0XEE01, 0X2EC0, 0X2F80, 0XEF41, 0X2D00, 0XEDC1, 0XEC81, 0X2C40, 0XE401, 0X24C0, 0X2580, 0XE541, 0X2700, 0XE7C1, 0XE681, 0X2640, 0X2200, 0XE2C1, 0XE381, 0X2340, 0XE101, 0X21C0, 0X2080, 0XE041, 0XA001, 0X60C0, 0X6180, 0XA141, 0X6300, 0XA3C1, 0XA281, 0X6240, 0X6600, 0XA6C1, 0XA781, 0X6740, 0XA501, 0X65C0, 0X6480, 0XA441, 0X6C00, 0XACC1, 0XAD81, 0X6D40, 0XAF01, 0X6FC0, 0X6E80, 0XAE41, 0XAA01, 0X6AC0, 0X6B80, 0XAB41, 0X6900, 0XA9C1, 0XA881, 0X6840, 0X7800, 0XB8C1, 0XB981, 0X7940, 0XBB01, 0X7BC0, 0X7A80, 0XBA41, 0XBE01, 0X7EC0, 0X7F80, 0XBF41, 0X7D00, 0XBDC1, 0XBC81, 0X7C40, 0XB401, 0X74C0, 0X7580, 0XB541, 0X7700, 0XB7C1, 0XB681, 0X7640, 0X7200, 0XB2C1, 0XB381, 0X7340, 0XB101, 0X71C0, 0X7080, 0XB041, 0X5000, 0X90C1, 0X9181, 0X5140, 0X9301, 0X53C0, 0X5280, 0X9241, 0X9601, 0X56C0, 0X5780, 0X9741, 0X5500, 0X95C1, 0X9481, 0X5440, 0X9C01, 0X5CC0, 0X5D80, 0X9D41, 0X5F00, 0X9FC1, 0X9E81, 0X5E40, 0X5A00, 0X9AC1, 0X9B81, 0X5B40, 0X9901, 0X59C0, 0X5880, 0X9841,
|
||||
|
||||
0X8801, 0X48C0, 0X4980, 0X8941, 0X4B00, 0X8BC1, 0X8A81, 0X4A40, 0X4E00, 0X8EC1, 0X8F81, 0X4F40, 0X8D01, 0X4DC0, 0X4C80, 0X8C41, 0X4400, 0X84C1, 0X8581, 0X4540, 0X8701, 0X47C0, 0X4680, 0X8641, 0X8201, 0X42C0, 0X4380, 0X8341, 0X4100, 0X81C1, 0X8081, 0X4040};
|
||||
|
||||
private static int CalcCRC(byte[] data, int size) {
|
||||
int i;
|
||||
int crc = 0;
|
||||
for (i = 0; i < size; i++) {
|
||||
crc = CRC(crc, data[i]);
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean connect() throws IOException {
|
||||
lock.lock();
|
||||
try {
|
||||
socket = new Socket();
|
||||
socket.setSoTimeout(1000);
|
||||
socket.connect(new InetSocketAddress(getIp(), getPort()), 3000);
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
|
||||
return isConnected();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnected() {
|
||||
return socket != null && socket.isConnected() && !socket.isClosed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnect() {
|
||||
try {
|
||||
log.debug("销毁LED连接");
|
||||
if (socket != null) {
|
||||
socket.close();
|
||||
}
|
||||
|
||||
running = false;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
socket = null;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
LEDThread led = new LEDThread("", "192.168.1.16", 5005);
|
||||
Thread thread = new Thread(led);
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
// thread.interrupt();
|
||||
|
||||
System.out.println("LED 启动");
|
||||
|
||||
Thread.sleep(10000);
|
||||
|
||||
led.running = false;
|
||||
|
||||
Thread.sleep(10000);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@ import com.cowr.common.utils.DateTimeUtil;
|
|||
import com.cowr.common.view.Result;
|
||||
import com.cowr.local.ssjygl.order.OrderService;
|
||||
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
|
||||
import com.cowr.local.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.local.ssjygl.synctask.SyncTaskService;
|
||||
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
|
||||
import com.cowr.model.*;
|
||||
|
|
@ -54,7 +54,7 @@ public class OrderSaleSyncService {
|
|||
return Result.failed("进出场记录以完成,或者已经被取消,不能使用");
|
||||
}
|
||||
|
||||
if(Truck.dao.findById(transport.getTruckLicense()) == null){
|
||||
if (Truck.dao.findById(transport.getTruckLicense()) == null) {
|
||||
return Result.failedstr("【%s】不是物流公司车辆", transport.getTruckLicense());
|
||||
}
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ public class OrderSaleSyncService {
|
|||
return Result.failed("进出场记录以完成,或者已经被取消,不能使用");
|
||||
}
|
||||
|
||||
if(Truck.dao.findById(transport.getTruckLicense()) == null){
|
||||
if (Truck.dao.findById(transport.getTruckLicense()) == null) {
|
||||
return Result.failedstr("【%s】不是物流公司车辆", transport.getTruckLicense());
|
||||
}
|
||||
|
||||
|
|
@ -290,7 +290,7 @@ public class OrderSaleSyncService {
|
|||
return Result.failedstr("【%s】不是今日预付费车辆", transport.getTruckLicense());
|
||||
}
|
||||
|
||||
if(pt.getType() != OrderTypeEnum.SALE.getTypeid()){
|
||||
if (pt.getType() != OrderTypeEnum.SALE.getTypeid()) {
|
||||
return Result.failedstr("【%s】不是配送预付费车辆", transport.getTruckLicense());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,10 @@ import com.cowr.common.enums.OrderTypeEnum;
|
|||
import com.cowr.common.utils.DateTimeUtil;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.local.ssjygl.invoice.log.InvoiceLogSyncService;
|
||||
import com.cowr.local.ssjygl.main.Config;
|
||||
import com.cowr.local.ssjygl.order.OrderService;
|
||||
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
|
||||
import com.cowr.local.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.local.ssjygl.synctask.SyncTaskService;
|
||||
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
|
||||
import com.cowr.model.*;
|
||||
|
|
@ -84,6 +85,10 @@ public class OrderTempSyncService {
|
|||
return Result.failedstr("重量数据有误,第一次称重:%.4f,第二次称重:%.4f", transport.getFirstWeight(), transport.getSecondWeight());
|
||||
}
|
||||
|
||||
if(transport.getSecondWeight().compareTo(BigDecimal.valueOf(Config.configprop.getInt("weigh.max"))) > 0){
|
||||
return Result.failedstr("毛重不能超过 %.2f 吨", Config.configprop.getInt("weigh.max"));
|
||||
}
|
||||
|
||||
BigDecimal net_weight = transport.getSecondWeight().subtract(transport.getFirstWeight()); // 销售的用第二次减第一次
|
||||
|
||||
if (req_receipt == 1) { // 需要同时开具发票
|
||||
|
|
@ -113,7 +118,7 @@ public class OrderTempSyncService {
|
|||
order.setProductName(product.getName());
|
||||
|
||||
// 支付信息
|
||||
order.setUnitPrice(SupermarketService.me.getSupUnitPrice(transport.getSupermarketId(), product.getId()));
|
||||
order.setUnitPrice(SupermarketProductService.me.getUnitPrice(transport.getSupermarketId(), product.getId()));
|
||||
order.setWeight(net_weight); // 使用净重更新重量
|
||||
order.setTotalPrice(TransPriceService.me.caleTotalPrice(up, net_weight)); // 获取根据净重和单价计算的总价,作为实付金额
|
||||
order.setPaid(order.getTotalPrice()); // 实际应付金额,预付费走另外的接口
|
||||
|
|
@ -129,12 +134,12 @@ public class OrderTempSyncService {
|
|||
|
||||
// 更新 transport 出入场信息
|
||||
// 线下支付才同步将出入场记录设置为完成
|
||||
if (order.getPayType() == 1) {
|
||||
// if (order.getPayType() == 1) {
|
||||
transport.setArriveTime(now);
|
||||
order.setState(OrderStateEnum.RECEIVED.getStateid()); // 直接完成,没有前面的过程
|
||||
} else {
|
||||
order.setState(OrderStateEnum.LEAVE.getStateid()); // 等等付款
|
||||
}
|
||||
// } else {
|
||||
// order.setState(OrderStateEnum.LEAVE.getStateid()); // 等等付款
|
||||
// }
|
||||
|
||||
transport.setState(order.getState()); // 使用 order 的 state
|
||||
transport.setType(OrderTypeEnum.TEMP.getTypeid());
|
||||
|
|
@ -202,11 +207,11 @@ public class OrderTempSyncService {
|
|||
}
|
||||
});
|
||||
|
||||
if (order.getPayType() == 1) {
|
||||
// if (order.getPayType() == 1) {
|
||||
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
|
||||
} else {
|
||||
return ret ? Result.success(order) : Result.failed("结算失败");
|
||||
}
|
||||
// } else {
|
||||
// return ret ? Result.success(order) : Result.failed("结算失败");
|
||||
// }
|
||||
}
|
||||
|
||||
public Result payordercluster(
|
||||
|
|
@ -271,6 +276,10 @@ public class OrderTempSyncService {
|
|||
return Result.failedstr("重量数据有误,第一次称重:%.4f,第二次称重:%.4f", transport.getFirstWeight(), transport.getSecondWeight());
|
||||
}
|
||||
|
||||
if(transport.getSecondWeight().compareTo(BigDecimal.valueOf(Config.configprop.getInt("weigh.max"))) > 0){
|
||||
return Result.failedstr("毛重不能超过 %.2f 吨", Config.configprop.getInt("weigh.max"));
|
||||
}
|
||||
|
||||
BigDecimal net_weight = transport.getSecondWeight().subtract(transport.getFirstWeight()); // 销售的用第二次减第一次
|
||||
|
||||
if (req_receipt == 1) { // 需要同时开具发票
|
||||
|
|
@ -474,6 +483,10 @@ public class OrderTempSyncService {
|
|||
return Result.failedstr("重量数据有误,第一次称重:%.4f,第二次称重:%.4f", transport.getFirstWeight(), transport.getSecondWeight());
|
||||
}
|
||||
|
||||
if(transport.getSecondWeight().compareTo(BigDecimal.valueOf(Config.configprop.getInt("weigh.max"))) > 0){
|
||||
return Result.failedstr("毛重不能超过 %.2f 吨", Config.configprop.getInt("weigh.max"));
|
||||
}
|
||||
|
||||
BigDecimal net_weight = transport.getSecondWeight().subtract(transport.getFirstWeight()); // 销售的用第二次减第一次
|
||||
|
||||
if (ordercluster_id != null) {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,12 @@
|
|||
package com.cowr.local.ssjygl.prepay.prepaytruck;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.cowr.common.base.BaseController;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
|
||||
import com.cowr.model.PrepayTruck;
|
||||
import com.cowr.model.Sysuser;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckPKValidator;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckService;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckValidator;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.log.Log;
|
||||
|
||||
/**
|
||||
* Generated by COWR Sun Feb 23 21:22:12 CST 2020
|
||||
|
|
@ -20,7 +15,6 @@ import com.jfinal.log.Log;
|
|||
* PrimaryKey: id
|
||||
*/
|
||||
public class PrepayTruckController extends BaseController {
|
||||
private static Log log = Log.getLog(PrepayTruckController.class);
|
||||
|
||||
/**
|
||||
* 按主键检查对象是否存在
|
||||
|
|
@ -34,82 +28,6 @@ public class PrepayTruckController extends BaseController {
|
|||
renderJson(PrepayTruckService.me.checkExistsByPk(model));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckValidator.class)
|
||||
public void save() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
String trucks = get("trucks");
|
||||
JSONArray truckarr = JSONArray.parseArray(trucks);
|
||||
|
||||
if (truckarr == null) {
|
||||
renderJson(Result.failed("trucks 参数格式错误"));
|
||||
} else {
|
||||
renderJson(PrepayTruckSyncService.me.save(truckarr, tokenuser));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
renderJson(Result.failed("参数解析格式不正确"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckPKValidator.class)
|
||||
public void del() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PrepayTruck model = getModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PrepayTruckSyncService.me.delete(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 恢复 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckPKValidator.class)
|
||||
public void restore() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PrepayTruck model = getModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PrepayTruckSyncService.me.restore(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckValidator.class)
|
||||
public void edit() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PrepayTruck model = getModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PrepayTruckSyncService.me.update(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查找 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import com.cowr.common.utils.ImageUtil;
|
|||
import com.cowr.common.view.Result;
|
||||
import com.cowr.local.ssjygl.main.Config;
|
||||
import com.cowr.local.ssjygl.order.OrderService;
|
||||
import com.cowr.local.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.cowr.model.*;
|
||||
import com.cowr.ssjygl.order.ordersale.OrderSaleService;
|
||||
import com.cowr.ssjygl.order.ordertemp.OrderTempService;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ print.vendorTaxId=91421125MA49GYYK2B
|
|||
#如果物流车辆入场重量大大超过皮重(>=10%),则认为是转运车辆
|
||||
#2019-08-01 暂定 50%
|
||||
weight.distinguish=0.5
|
||||
#最大毛重不超过 49 吨,超过 49 吨不能上高速
|
||||
weigh.max=49
|
||||
|
||||
#起步运输距离
|
||||
start.trans.distance=5
|
||||
|
|
|
|||
|
|
@ -2,12 +2,16 @@ package com.cowr.service.ssjygl.order.ordercluster;
|
|||
|
||||
import com.cowr.common.enums.Enums;
|
||||
import com.cowr.common.enums.OrderStateEnum;
|
||||
import com.cowr.common.utils.DateTimeUtil;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.*;
|
||||
import com.cowr.service.ssjygl.base.BaseSyncService;
|
||||
import com.cowr.service.ssjygl.synctask.SyncTaskService;
|
||||
import com.cowr.ssjygl.modifylog.ModifyLogService;
|
||||
import com.cowr.ssjygl.order.ordercluster.OrderclusterService;
|
||||
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
|
||||
import com.cowr.ssjygl.supermarket.SupermarketService;
|
||||
import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
|
||||
import com.jfinal.log.Log;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.IAtom;
|
||||
|
|
@ -16,6 +20,7 @@ import com.jfinal.plugin.activerecord.Record;
|
|||
import java.math.BigDecimal;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class OrderclusterSyncService extends BaseSyncService {
|
||||
public static OrderclusterSyncService me = new OrderclusterSyncService();
|
||||
|
|
@ -43,17 +48,43 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
model.setTransCoTexpayerNum(transCoObj.getTexpayerNum());
|
||||
}
|
||||
|
||||
Customer customerObj = Customer.dao.findById(model.getCustomerId());
|
||||
Supermarket supermarket = Supermarket.dao.findById(model.getSupermarketId());
|
||||
if (supermarket == null) {
|
||||
return Result.failed("超市信息无效");
|
||||
}
|
||||
|
||||
Customer customerObj = Customer.dao.findById(model.getCustomerId());
|
||||
if (customerObj == null) {
|
||||
return Result.failed(false, "新增失败, 客户信息验证失败");
|
||||
}
|
||||
|
||||
List<Record> list = OrderclusterService.me.undonlist(model.getSupermarketId(), model.getCustomerId());
|
||||
|
||||
if(list != null && !list.isEmpty()){
|
||||
return Result.failed("还有未完成的集团订单");
|
||||
}
|
||||
|
||||
PrepayCustomer prepayCustomer = PrepayCustomerService.me.getPrepayCustomer(model.getCustomerId(), model.getSupermarketId());
|
||||
if (prepayCustomer == null) {
|
||||
return Result.failed("不是预付费用户");
|
||||
}
|
||||
|
||||
Product product = Product.dao.findById(model.getProductId());
|
||||
if (product == null) {
|
||||
return Result.failedstr("没有找到商品信息【%s】", model.getProductId());
|
||||
}
|
||||
|
||||
BigDecimal unitprice = SupermarketProductService.me.getUnitPrice(model.getSupermarketId(), model.getProductId());
|
||||
if (unitprice == null) {
|
||||
return Result.failed("未配置商品单价");
|
||||
}
|
||||
|
||||
if(unitprice.multiply(model.getTotalWeight()).compareTo(prepayCustomer.getSurplus()) > 0){
|
||||
return Result.failedstr("余额 %.2f 不足以购买 %.2f 吨 %s", prepayCustomer.getSurplus(), model.getTotalWeight(), product.getName());
|
||||
}
|
||||
|
||||
// TODO 最少车辆数需要在前端计算,计算结果用户可以修改
|
||||
|
||||
model.setProductName(product.getName());
|
||||
|
||||
// 客户信息
|
||||
|
|
@ -66,7 +97,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
model.setCustomerTexpayerName(customerObj.getTexpayerName());
|
||||
model.setCustomerTexpayerNum(customerObj.getTexpayerNum());
|
||||
|
||||
model.setUnitPrice(SupermarketService.me.getSupUnitPrice(model.getSupermarketId(), model.getProductId())); // 后端获取数据库中单价
|
||||
model.setUnitPrice(unitprice); // 后端获取数据库中单价
|
||||
model.setCreateTime(new Date()); // 当前系统时间
|
||||
model.setCreateUserId(sysuser.getId()); // 当前用户id
|
||||
model.setCreateUserName(sysuser.getName());
|
||||
|
|
@ -82,7 +113,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
public boolean run() throws SQLException {
|
||||
try {
|
||||
return model.save()
|
||||
&& SyncTaskService.me.save(new SyncTask().addSaveData(model))
|
||||
&& SyncTaskService.me.save(new SyncTask().addSaveData(model), model.getSupermarketId())
|
||||
&& ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), sysuser);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
|
@ -117,7 +148,7 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
oldobj.setAvgWeight(model.getAvgWeight());
|
||||
}
|
||||
|
||||
if(model.getTotalWeight() != null ){
|
||||
if (model.getTotalWeight() != null) {
|
||||
String sql = "select t.ordercluster_id, sum(t.weight) weight from order_sale t \n" +
|
||||
" where t.state = ? \n" +
|
||||
" and t.ordercluster_id = ? \n" +
|
||||
|
|
@ -130,13 +161,13 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
|
||||
Record record = Db.findFirst(sql, OrderStateEnum.RECEIVED.getStateid(), model.getId(), OrderStateEnum.RECEIVED.getStateid(), model.getId());
|
||||
|
||||
if(record != null){
|
||||
if(model.getTotalWeight().compareTo(record.getBigDecimal("weight")) < 0){
|
||||
if (record != null) {
|
||||
if (model.getTotalWeight().compareTo(record.getBigDecimal("weight")) < 0) {
|
||||
return Result.failedstr("总量不能低于已运输量(%.2f)", record.getBigDecimal("weight"));
|
||||
}else{
|
||||
} else {
|
||||
oldobj.setTotalWeight(model.getTotalWeight());
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
oldobj.setTotalWeight(model.getTotalWeight());
|
||||
}
|
||||
}
|
||||
|
|
@ -144,19 +175,19 @@ public class OrderclusterSyncService extends BaseSyncService {
|
|||
oldobj.setCutoffTime(model.getCutoffTime());
|
||||
oldobj.setAvgWeight(model.getAvgWeight());
|
||||
|
||||
if(model.getTransDistance() != null){
|
||||
if (model.getTransDistance() != null) {
|
||||
oldobj.setTransDistance(model.getTransDistance());
|
||||
}
|
||||
|
||||
if(model.getReqReceipt() != null) {
|
||||
if (model.getReqReceipt() != null) {
|
||||
oldobj.setReqReceipt(model.getReqReceipt());
|
||||
}
|
||||
|
||||
if(model.getCustomerTexpayerName() != null){
|
||||
if (model.getCustomerTexpayerName() != null) {
|
||||
oldobj.setCustomerTexpayerName(model.getCustomerTexpayerName());
|
||||
}
|
||||
|
||||
if(model.getCustomerTexpayerNum() != null){
|
||||
if (model.getCustomerTexpayerNum() != null) {
|
||||
oldobj.setCustomerTexpayerNum(model.getCustomerTexpayerNum());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class PrepayDetailSyncService extends BaseSyncService {
|
|||
synctask.addSaveData(model);
|
||||
synctask.addSaveData(his);
|
||||
|
||||
return SyncTaskService.me.save(synctask)
|
||||
return SyncTaskService.me.save(synctask, model.getSupermarketId())
|
||||
&& ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), user);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.cowr.service.ssjygl.prepay.prepaytruck;
|
||||
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.jfinal.core.Controller;
|
||||
import com.jfinal.kit.StrKit;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Jun 27 17:01:16 CST 2019
|
||||
*/
|
||||
public class DayValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
if(StrKit.notBlank(c.get("valid_date"))){
|
||||
validateDate("valid_date", "yyyy-MM-dd","valid_date","valid_date 格式必须为 yyyy-MM-dd");
|
||||
}
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +1,18 @@
|
|||
package com.cowr.service.ssjygl.prepay.prepaytruck;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.cowr.common.base.BaseController;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PrepayTruck;
|
||||
import com.cowr.model.Sysuser;
|
||||
import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.DayValidator;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckPKValidator;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckService;
|
||||
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckValidator;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.log.Log;
|
||||
|
||||
/**
|
||||
* Generated by COWR Sun Feb 23 21:22:12 CST 2020
|
||||
|
|
@ -16,6 +21,7 @@ import com.jfinal.aop.Before;
|
|||
* PrimaryKey: id
|
||||
*/
|
||||
public class PrepayTruckController extends BaseController {
|
||||
private static Log log = Log.getLog(PrepayTruckController.class);
|
||||
|
||||
/**
|
||||
* 按主键检查对象是否存在
|
||||
|
|
@ -29,6 +35,82 @@ public class PrepayTruckController extends BaseController {
|
|||
renderJson(PrepayTruckService.me.checkExistsByPk(model));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckValidator.class)
|
||||
public void save() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
String trucks = get("trucks");
|
||||
JSONArray truckarr = JSONArray.parseArray(trucks);
|
||||
|
||||
if (truckarr == null) {
|
||||
renderJson(Result.failed("trucks 参数格式错误"));
|
||||
} else {
|
||||
// renderJson(PrepayTruckSyncService.me.save(truckarr, tokenuser));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
renderJson(Result.failed("参数解析格式不正确"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckPKValidator.class)
|
||||
public void del() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PrepayTruck model = getModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PrepayTruckSyncService.me.delete(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 恢复 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckPKValidator.class)
|
||||
public void restore() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PrepayTruck model = getModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PrepayTruckSyncService.me.restore(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
@Before(PrepayTruckValidator.class)
|
||||
public void edit() {
|
||||
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
|
||||
|
||||
if (tokenuser == null) {
|
||||
renderJson(Result.noauth());
|
||||
return;
|
||||
}
|
||||
|
||||
PrepayTruck model = getModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
renderJson(PrepayTruckSyncService.me.update(model, tokenuser));
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查找 prepay_truck 每日超市指定预付费车辆
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,147 @@
|
|||
package com.cowr.service.ssjygl.prepay.prepaytruck;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cowr.common.utils.DateTimeUtil;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.*;
|
||||
import com.cowr.service.ssjygl.base.BaseSyncService;
|
||||
import com.cowr.ssjygl.order.ordercluster.OrderclusterService;
|
||||
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.Record;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
|
||||
public class PrepayTruckSyncService extends BaseSyncService {
|
||||
public static PrepayTruckSyncService me = new PrepayTruckSyncService();
|
||||
private static Log log = Log.getLog(PrepayTruckSyncService.class);
|
||||
|
||||
/**
|
||||
* @param truckarr [
|
||||
* {
|
||||
* customer_id
|
||||
* truck_license
|
||||
* supermarket_id
|
||||
* valid_date
|
||||
* type
|
||||
* }
|
||||
* ]
|
||||
* @param sysuser
|
||||
* @return
|
||||
*/
|
||||
public Result save(int customer_id, String truckarr, Date valid_date, int supermarket_id, Sysuser sysuser) {
|
||||
try {
|
||||
Customer customer = Customer.dao.findById(customer_id);
|
||||
if (customer == null) {
|
||||
return Result.failed("客户信息无效");
|
||||
}
|
||||
|
||||
Supermarket supermarket = Supermarket.dao.findById(supermarket_id);
|
||||
if (supermarket == null) {
|
||||
return Result.failed("超市信息无效");
|
||||
}
|
||||
|
||||
List<Record> list = OrderclusterService.me.undonlist(supermarket_id, customer_id, DateTimeUtil.sdf.get().format(valid_date));
|
||||
|
||||
if(list == null || list.isEmpty()){
|
||||
return Result.failed("未找到有效的集团订单信息");
|
||||
}
|
||||
|
||||
// TODO: 过期订单怎么处理?顺延?取消
|
||||
|
||||
//
|
||||
// List<String> ts = new ArrayList<>();
|
||||
// List<String> tsql = new ArrayList<>();
|
||||
//
|
||||
// Map<String, Boolean> co_trucks = new HashMap<>(); // 物流公司车辆
|
||||
// List<String> co_tsql = new ArrayList<>();
|
||||
//
|
||||
// List<Record> pts = new ArrayList<>();
|
||||
//
|
||||
// for (int i = 0; i < truckarr.size(); i++) {
|
||||
// JSONObject obj = truckarr.getJSONObject(i);
|
||||
//
|
||||
// ts.add(obj.getString("truck_license"));
|
||||
// tsql.add("?");
|
||||
//
|
||||
// if (obj.getIntValue("type") == 1) {
|
||||
// co_trucks.put(obj.getString("truck_license"), true);
|
||||
// co_tsql.add("?");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// List<Blacklist> list = Blacklist.dao.find(
|
||||
// "select * from blacklist \n" +
|
||||
// " where remove_user_id is null \n" +
|
||||
// " and truck_license in (" + StrKit.join(tsql, ",") + ")", ts.toArray());
|
||||
//
|
||||
// if (list != null && !list.isEmpty()) {
|
||||
// ts = new ArrayList<>();
|
||||
//
|
||||
// for (Blacklist bl : list) {
|
||||
// ts.add(bl.getTruckLicense());
|
||||
// }
|
||||
//
|
||||
// return Result.failed(StrKit.join(ts, ",") + " 车牌号在黑名单中");
|
||||
// }
|
||||
//
|
||||
// if (!co_trucks.isEmpty()) {
|
||||
// List<Truck> trucks = Truck.dao.find(
|
||||
// "select * from truck where license in ("
|
||||
// + StrKit.join(co_tsql, ",") + ")", co_trucks.keySet().toArray());
|
||||
//
|
||||
// if (trucks != null && !trucks.isEmpty()) {
|
||||
// for (Truck bl : trucks) {
|
||||
// co_trucks.remove(bl.getLicense());
|
||||
// }
|
||||
//
|
||||
// ts = new ArrayList<>();
|
||||
//
|
||||
// for (String s : co_trucks.keySet()) {
|
||||
// ts.add(s);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (!co_trucks.isEmpty()) {
|
||||
// return Result.failed(StrKit.join(ts, ",") + " 车牌不是物流公司车辆");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for (int i = 0; i < truckarr.size(); i++) {
|
||||
// JSONObject obj = truckarr.getJSONObject(i);
|
||||
// Record record = new Record().setColumns(obj.getInnerMap());
|
||||
// record.set("create_user_id", sysuser.getId());
|
||||
// pts.add(record);
|
||||
// }
|
||||
//
|
||||
// if (pts.isEmpty()) {
|
||||
// return Result.failed("truck_license 参数错误");
|
||||
// }
|
||||
//
|
||||
// // TODO: 这里要不要加入同步,上传到服务端。预付费车辆只再本超市使用
|
||||
// boolean ret = Db.tx(new IAtom() {
|
||||
// @Override
|
||||
// public boolean run() throws SQLException {
|
||||
// int[] ret = Db.batchSave(PrepayTruck.tablename, pts, pts.size());
|
||||
//
|
||||
// return ret.length == pts.size();
|
||||
// }
|
||||
// });
|
||||
|
||||
// return ret ? Result.success() : Result.failed(false, "新增失败");
|
||||
return null;
|
||||
} catch (Exception e) {
|
||||
if (e.getMessage().contains("prepay_truck_license_customer")) {
|
||||
return Result.failed("同一辆车同一天只能分配一次");
|
||||
}
|
||||
|
||||
log.error(e.getMessage(), e);
|
||||
return Result.failed(false, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
package com.cowr.service.ssjygl.prepay.prepaytruck;
|
||||
|
||||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.PrepayTruck;
|
||||
import com.jfinal.core.Controller;
|
||||
|
||||
/**
|
||||
* Generated by COWR Sun Feb 23 21:22:13 CST 2020
|
||||
* TableName: prepay_truck
|
||||
* Remarks: 每日超市指定预付费车辆
|
||||
* PrimaryKey: id
|
||||
*/
|
||||
public class PrepayTruckValidator extends CrudParamValidator {
|
||||
@Override
|
||||
protected void validate(Controller c) {
|
||||
// 默认新增时,前端不需要传主键。若需要前端传主键,需要去掉这个判断
|
||||
if (!"save".equals(getActionMethodName())) {
|
||||
validateRequired("id", "id", "id 必填");
|
||||
|
||||
validateInteger("id", 1, 2147483647, "id", "id 范围 1~2147483647");
|
||||
}
|
||||
|
||||
validateRequired("trucks", "trucks", "trucks 必填");
|
||||
|
||||
// 使用 model 更新时,model 不能只有主键有值
|
||||
// 这里用 getActionMethodName 写死,判断是 update 时,才做验证
|
||||
// 如果确实是需要将主键外的字段置为 null,可以在代码生成后删掉这段
|
||||
if ("edit".equals(getActionMethodName())) {
|
||||
validateUpdateModel(PrepayTruck.class, "", true); // 忽略不在model中的字段
|
||||
}
|
||||
}
|
||||
|
||||
protected void handleError(Controller c) {
|
||||
c.renderJson(Result.failed(getErrmsg()));
|
||||
}
|
||||
}
|
||||
|
|
@ -86,7 +86,7 @@ public class RefundDetailSyncService extends BaseSyncService {
|
|||
synctask.addSaveData(model);
|
||||
synctask.addSaveData(his);
|
||||
|
||||
return SyncTaskService.me.save(synctask)
|
||||
return SyncTaskService.me.save(synctask, model.getSupermarketId())
|
||||
&& ModifyLogService.me.save(model, null, Enums.DataOpType.SAVE.getId(), user);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ public class SyncTaskService {
|
|||
int[] ret = Db.batchSave(list, list.size());
|
||||
|
||||
for (int i : ret) {
|
||||
// 必须是每条 sql 修改一条记录
|
||||
if (i != 1) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -165,7 +166,7 @@ public class SyncTaskService {
|
|||
List<SyncTask> list = unsynclist();
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
log.debug("开始下发未同步完成的数据");
|
||||
log.debug("开始下发未同步完成的数据 " + list.size());
|
||||
}
|
||||
|
||||
for (SyncTask obj : list) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.cowr.common.utils.StrUtil;
|
|||
import com.cowr.common.validator.CrudParamValidator;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.jfinal.core.Controller;
|
||||
import com.jfinal.kit.StrKit;
|
||||
|
||||
public class RegisterUserValidator extends CrudParamValidator {
|
||||
@Override
|
||||
|
|
@ -13,12 +14,22 @@ public class RegisterUserValidator extends CrudParamValidator {
|
|||
validateString("sysuser.password", 6, 20, "sysuser.password", "用户密码长度在6~20之间"); // 必填项,字段长度必须大于0,不能超过最大长度
|
||||
|
||||
validateString("customer.texpayer_name", 1, 255, "customer.texpayer_name", "公司名称的长度在1~255之间");
|
||||
validateString("customer.address", 1, 256, "customer.address", "公司地址的长度在1~255之间");
|
||||
validateString("customer.phone", 1, 20, "customer.phone", "开票电话格式不正确");
|
||||
validateString("customer.texpayer_num", 1, 20, "customer.texpayer_num", "纳税人识别号格式不正确");
|
||||
validateString("customer.bank_name", 1, 128, "customer.bank_name", "开户银行名称格式不正确");
|
||||
validateString("customer.bank_account", 1, 20, "customer.bank_account", "开户银行账号格式不正确");
|
||||
validateString("customer.memo", 0, 256, "customer.memo", "备注长度在0~256之间");
|
||||
validateInteger("customer.invoice_type", 0, 3, "invoice_type", "请选择是开具普票还是专票");
|
||||
|
||||
if(c.getInt("customer.invoice_type") == 2){
|
||||
validateString("customer.texpayer_num", 1, 20, "customer.texpayer_num", "开具专票必须录入有效纳税人识别号");
|
||||
validateString("customer.bank_name", 1, 128, "customer.bank_name", "开具专票必须录入有效开户行信息");
|
||||
validateString("customer.bank_account", 1, 20, "customer.bank_account", "开具专票必须录入有效开户行账号");
|
||||
validateString("customer.address", 1, 256, "customer.address", "公司地址的长度在1~255之间");
|
||||
validateString("customer.phone", 1, 20, "customer.phone", "开票电话格式不正确");
|
||||
}else{
|
||||
validateString("customer.texpayer_num", 0, 20, "customer.texpayer_num", "纳税人识别号格式不正确");
|
||||
validateString("customer.bank_name", 0, 128, "customer.bank_name", "开户银行名称格式不正确");
|
||||
validateString("customer.bank_account", 0, 20, "customer.bank_account", "开户银行账号格式不正确");
|
||||
validateString("customer.address", 0, 256, "customer.address", "公司地址的长度在1~255之间");
|
||||
validateString("customer.phone", 0, 20, "customer.phone", "开票电话格式不正确");
|
||||
}
|
||||
|
||||
validateString("receiver.name", 1, 128, "receiver.name", "收货人姓名在1~8之间");
|
||||
validateRegex("receiver.phone", StrUtil.regphone, "receiver.phone", "收货人手机号格式不正确");
|
||||
|
|
|
|||
|
|
@ -218,13 +218,6 @@ public class SysuserController extends Controller {
|
|||
Customer customer = getModel(Customer.class, "customer", true);
|
||||
CustomerReceiver receiver = getModel(CustomerReceiver.class, "receiver", true);
|
||||
|
||||
renderJson(CustomerRegisterService.me.save(sysuser, customer, receiver));
|
||||
}
|
||||
|
||||
@Clear(AuthInterceptor.class)
|
||||
public void checkRegister() {
|
||||
String sysuser_phone = get("sysuser_phone", "");
|
||||
|
||||
renderJson(CustomerRegisterService.me.checkRegister(sysuser_phone));
|
||||
renderJson(SysuserSyncService.me.register(sysuser, customer, receiver));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -682,4 +682,73 @@ public class SysuserSyncService extends BaseSyncService {
|
|||
|
||||
return Db.find("select * " + sqlbuf.toString(), paraList.toArray());
|
||||
}
|
||||
|
||||
public Result register(Sysuser sysuser, Customer customer, CustomerReceiver receiver){
|
||||
if(sysuser.checkDuplicate("phone")){
|
||||
return Result.failedstr("手机号 %s 已存在", sysuser.getPhone());
|
||||
}
|
||||
|
||||
customer.setName(customer.getTexpayerName());
|
||||
|
||||
if(customer.checkDuplicate("name")){
|
||||
return Result.failed("用户已存在");
|
||||
}
|
||||
|
||||
if(customer.checkDuplicate("texpayer_name")){
|
||||
return Result.failed("用户已存在");
|
||||
}
|
||||
|
||||
// 开专票的,必填验证
|
||||
if(customer.getInvoiceType() == 2){
|
||||
if(customer.checkDuplicate("texpayer_num")){
|
||||
return Result.failed("用户已存在");
|
||||
}
|
||||
|
||||
if(customer.checkDuplicate("bank_account")){
|
||||
return Result.failed("用户已存在");
|
||||
}
|
||||
}
|
||||
|
||||
sysuser.setType(UserTypeEnum.CUSTOMER.getTypeid());
|
||||
sysuser.setPassword(getPwdMD5(sysuser.getPhone(), sysuser.getPassword()));
|
||||
|
||||
boolean ret = Db.tx(new IAtom() {
|
||||
@Override
|
||||
public boolean run() {
|
||||
try{
|
||||
boolean ret = customer.save();
|
||||
|
||||
if(!ret){
|
||||
log.debug("客户信息保存失败");
|
||||
return false;
|
||||
}
|
||||
|
||||
sysuser.setEntityId(customer.getId());
|
||||
sysuser.setRole(RoleEnum.CUSTOMER.getRoleid());
|
||||
|
||||
receiver.setCustomerId(customer.getId());
|
||||
|
||||
ret = sysuser.save() && receiver.save();
|
||||
|
||||
if(!ret){
|
||||
log.debug("用户或者收获信息保存失败");
|
||||
return false;
|
||||
}
|
||||
|
||||
SyncTask synctask = new SyncTask();
|
||||
synctask.addSaveData(sysuser);
|
||||
synctask.addSaveData(customer);
|
||||
synctask.addSaveData(receiver);
|
||||
|
||||
return SyncTaskService.me.save(synctask);
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return ret ? Result.success("注册成功") : Result.failed("注册失败");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue