lisai17@sina.com 2020-08-30 23:07:12 +08:00
parent 6fb1bf253f
commit e355a82417
13 changed files with 113 additions and 93 deletions

View File

@ -43,7 +43,14 @@ public class OrderclusterService extends BaseService {
return Result.failed("登录用户和订单信息不匹配");
}
return Result.success(ordercluster);
Record record = ordercluster.toRecord();
List<OrderclusterTruck> trucks = OrderclusterTruck.dao.find("select * from ordercluster_truck t where t.ordercluster_id = ? ", record.getInt("id"));
record.set("truck_num", trucks.size());
record.set("trucks", trucks);
return Result.success(record);
}
public Page<Record> findTemp(PageParam pp,

View File

@ -2,6 +2,8 @@ package com.cowr.ssjygl.order.ordercluster.truck;
import com.cowr.common.Const;
import com.cowr.common.base.BaseService;
import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.utils.DateTimeUtil;
import com.cowr.common.view.PageParam;
import com.cowr.model.OrderclusterTruck;
import com.jfinal.kit.StrKit;
@ -9,6 +11,8 @@ import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
@ -45,4 +49,34 @@ public class OrderclusterTruckService extends BaseService {
public List<OrderclusterTruck> list() {
return OrderclusterTruck.dao.find("select * from ordercluster_truck");
}
public OrderclusterTruck checkValidLicense(int supermarket_id, String truck_license) {
if (StrKit.isBlank(truck_license)) {
return null;
}
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
c.set(Calendar.MILLISECOND,0);
Date start = c.getTime();
c.add(Calendar.HOUR_OF_DAY, 24);
Date end = c.getTime();
return OrderclusterTruck.dao.findFirst("select * from ordercluster_truck t\n" +
" left join ordercluster c on c.id = t.ordercluster_id \n" +
" where c.supermarket_id = ? \n" +
" and c.state < ?" +
" and c.cutoff_time >= ? \n" +
" and c.cutoff_time < ? \n" +
" and t.truck_license = ? \n" +
" limit 0,1",
supermarket_id,
OrderStateEnum.RECEIVED.getStateid(), // 只有未完成的订单才有效
start,
end,
truck_license);
}
}

View File

@ -9,6 +9,7 @@ import com.cowr.common.utils.DataUtil;
import com.cowr.common.view.PageParam;
import com.cowr.common.enums.OrderStateEnum;
import com.cowr.ssjygl.customer.receiver.CustomerReceiverService;
import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService;
import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService;
import com.jfinal.kit.StrKit;
import com.jfinal.log.Log;
@ -109,12 +110,7 @@ public class PrepayService {
return null;
}
OrderclusterTruck ot = OrderclusterTruck.dao.findFirst("select * from ordercluster_truck t \n" +
" where t.truck_license = ? \n" +
" and t.valid_date = ? ",
transport.getTruckLicense(),
DateTimeUtil.sdf.get().format(transport.getInTime())
);
OrderclusterTruck ot = OrderclusterTruckService.me.checkValidLicense(transport.getSupermarketId(), transport.getTruckLicense());
if (ot == null) {
return null;

View File

@ -41,7 +41,7 @@ public class PrepayDetailService extends BaseService {
}
};
public Page<Record> find(PageParam pp, String name, String stm, String etm, Integer state) {
public Page<Record> find(PageParam pp, Integer customer_id, String name, String stm, String etm, Integer state) {
String selectsql = "select t.*, c.name customer_name, c.address, c.texpayer_name, c.texpayer_num, c.memo, p.surplus";
String fromsql = " from prepay_detail t \n" +
" left join customer c on t.customer_id = c.id" +
@ -54,6 +54,11 @@ public class PrepayDetailService extends BaseService {
paraList.add("%" + name + "%");
}
if (customer_id != null) {
fromsql += " and c.id = ?";
paraList.add(customer_id);
}
if (StrKit.notBlank(stm)) {
fromsql += " and t.create_time >= ?";
paraList.add(stm);
@ -89,14 +94,14 @@ public class PrepayDetailService extends BaseService {
}
public List<Record> list(Integer customer_id, String stm, String etm) {
if(customer_id != null){
if (customer_id != null) {
return Db.find("select t.*, c.name customer_name from prepay_detail t \n" +
" left join customer c on c.id = t.customer_id" +
" where t.state = 2 \n" +
" and t.customer_id = ? \n" +
" and t.verify_time >= ? \n" +
" and t.verify_time <= ? ", customer_id, stm, etm);
}else{
} else {
return Db.find("select t.*, c.name customer_name from prepay_detail t \n" +
" left join customer c on c.id = t.customer_id" +
" where t.state = 2 \n" +

View File

@ -131,46 +131,4 @@ public class PrepayTruckService extends BaseService {
return Db.find(findSql, paraList.toArray());
}
/**
*
* @param supermarket_id
* @param truck_license
* @return
*/
public PrepayTruck checkTruckLicense(int supermarket_id, String truck_license) {
if (StrKit.isBlank(truck_license)) {
return null;
}
return PrepayTruck.dao.findFirst("select * from prepay_truck t \n" +
" where t.supermarket_id = ? \n" +
" and t.valid_date = ?" +
" and truck_license like ? \n" +
" limit 0,1",
supermarket_id,
sdfday.get().format(new Date()),
"%" + truck_license.substring(1));
}
/**
*
*
* @param supermarket_id
* @param truck_license
* @return
*/
public Record checkValidLicense(int supermarket_id, String truck_license) {
if (StrKit.isBlank(truck_license)) {
return null;
}
return Db.findFirst("select t.truck_license license, t.trans_co_id from prepay_truck t \n" +
" where t.supermarket_id = ? \n" +
" and t.valid_date = ? \n" +
" and t.truck_license = ? \n" +
" limit 0,1",
supermarket_id,
sdfday.get().format(new Date()),
truck_license);
}
}

View File

@ -384,19 +384,14 @@ public class OrderStatService {
*/
public Record monthgrid(String tm, Integer supermarket_id, Integer customer_id) {
// 使用实际支付金额统计
String sql = "select t.customer_id \n" +
", case \n" +
" when t.type = 1 then ifnull(t.customer_name, '民用') \n" +
" when t.type = 3 then case when isnull(t.customer_name) then '外销' else concat(t.customer_name, '(外销)') end \n" +
" end customer_name \n" +
" , t.supermarket_id, s.name supermarket_name, count(*) as cnt, sum(t.total_price) as total\n" +
String sql = "select t.customer_id, max(t.customer_name) customer_name, t.supermarket_id, max(s.name) supermarket_name, count(*) cnt, sum(t.total_price) total \n" +
" from (\n" +
" select t.customer_id, t.customer_name, t.supermarket_id, t.paid, t.total_price, 1 type \n" +
" select t.customer_id, ifnull(t.customer_name, '民用') customer_name, t.supermarket_id, t.paid, t.total_price, 1 type \n" +
" from order_sale t\n" +
" where t.state = ? \n" +
" and t.create_time like ?\n" +
" union all\n" +
" select t.customer_id, t.customer_name, t.supermarket_id, t.paid, t.total_price, 3 type \n" +
" select t.customer_id, case when isnull(t.customer_name) then '民用' else t.customer_name end customer_name , t.supermarket_id, t.paid, t.total_price, 3 type \n" +
" from order_temp t\n" +
" where t.state = ? \n" +
" and t.create_time like ?\n" +

View File

@ -1,10 +1,22 @@
package com.cowr.local.ssjygl.invoice.log;
import com.cowr.local.ssjygl.base.BaseSyncService;
import com.cowr.model.InvoiceReceive;
import com.jfinal.log.Log;
public class InvoiceLogSyncService extends BaseSyncService {
private static Log log = Log.getLog(InvoiceLogSyncService.class);
public static InvoiceLogSyncService me = new InvoiceLogSyncService();
public InvoiceReceive lastReceive(int supermarket_id) {
String sql = "select * from invoice_receive t\n" +
" where t.supermarket_id = ? \n" +
" and t.surplus > 0\n" +
" order by t.start_code asc\n" +
" limit 1";
InvoiceReceive receive = InvoiceReceive.dao.findFirst(sql, supermarket_id);
return receive;
}
}

View File

@ -96,8 +96,16 @@ public class OrderclusterController extends BaseController {
*/
@Before(OrderclusterPKValidator.class)
public void get() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
// 是客户账户
if (tokenuser == null) {
renderJson(Result.noauth());
return;
}
Ordercluster model = getModel(Ordercluster.class, "", true); // 忽略不在model中的字段
renderJson(OrderclusterService.me.findByPk(model));
renderJson(Result.object(OrderclusterService.me.get(model.getId(), tokenuser)));
}
@Before(SupermarketIdValidator.class)

View File

@ -36,12 +36,13 @@ public class PrepayDetailController extends Controller {
* prepay_detail -
*/
public void find(){
Integer customer_id = getInt("customer_id");
String name = get("name");
String stm = get("stm");
String etm = get("etm");
Integer state = getInt("state");
PageParam pp = getBean(PageParam.class, "", true);
renderJson(Result.object(PrepayDetailService.me.find(pp, name, stm, etm, state)));
renderJson(Result.object(PrepayDetailService.me.find(pp, customer_id, name, stm, etm, state)));
}
/**

View File

@ -17,6 +17,7 @@ import com.cowr.ssjygl.CacheData;
import com.cowr.ssjygl.authlicense.AuthLicenseService;
import com.cowr.ssjygl.blacklist.BlacklistService;
import com.cowr.ssjygl.modifylog.ModifyLogService;
import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService;
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckService;
import com.cowr.ssjygl.transport.TransportService;
import com.cowr.ssjygl.truck.TruckService;
@ -217,18 +218,14 @@ public class TransportSyncService {
// 从预付费车辆中找
// 单独用 pt 对象存储,是后面还要用是否有预付费,来判断订单类型
// 是预付则肯定是销售或者外销如果有物流公司id则肯定是销售否是外销
Record pt = PrepayTruckService.me.checkValidLicense(supermarket_id, result.getLicense());
OrderclusterTruck ot = OrderclusterTruckService.me.checkValidLicense(supermarket_id, result.getLicense());
Record lichisobj = new Record();
if (pt != null) {
lichisobj = pt;
} else {
lichisobj.set("license", result.getLicense());
}
TransportDeviceService.me.addLicenseHistory(lichisobj, which, lichisobj.get("trans_co_id") != null ? TruckRodState.state_2 : TruckRodState.state_1);
if (pt == null && !AuthLicenseService.me.isAuthLicense(result.getLicense())) {
if (ot == null && !AuthLicenseService.me.isAuthLicense(result.getLicense())) {
log.error("【%s】未授权可能是在黑名单中或者第一次入场", result.getLicense());
Config.socketio.pubMessage(new Record().set("truck_license", result.getLicense()).set("msg", result.getLicense() + " 未授权。可能是在黑名单中,或者第一次入场"));
return result;
@ -251,10 +248,8 @@ public class TransportSyncService {
transport.setState(OrderStateEnum.ENTERED.getStateid()); // 2入场
transport.setFirstPic(saveImg(file));
// 入场的时候,就可以根据是否预付车辆,确定类型
if (pt != null) {
transport.setType(pt.get("trans_co_id") != null ? OrderTypeEnum.SALE.getTypeid() : OrderTypeEnum.TEMP.getTypeid());
}
// 浠水只有外销
transport.setType(OrderTypeEnum.TEMP.getTypeid());
boolean ret = Db.tx(new IAtom() {
@Override
@ -339,9 +334,9 @@ public class TransportSyncService {
*/
private PostLicenseResult common(int supermarket_id, PostLicenseResult result, File file, String which) {
// 从预付费车辆中找
Record pt = PrepayTruckService.me.checkValidLicense(supermarket_id, result.getLicense());
OrderclusterTruck ot = OrderclusterTruckService.me.checkValidLicense(supermarket_id, result.getLicense());
if (pt == null && !AuthLicenseService.me.isAuthLicense(result.getLicense())) {
if (ot == null && !AuthLicenseService.me.isAuthLicense(result.getLicense())) {
log.error("车牌【%s】未授权可能是在黑名单中或者第一次入场", result.getLicense());
//TODO: 发消息到web端
return result;
@ -362,10 +357,8 @@ public class TransportSyncService {
transport.setState(OrderStateEnum.ENTERED.getStateid());
transport.setFirstPic(saveImg(file));
// 入场的时候,就可以根据是否预付车辆,确定类型
if (pt != null) {
transport.setType(pt.get("trans_co_id") != null ? OrderTypeEnum.SALE.getTypeid() : OrderTypeEnum.TEMP.getTypeid());
}
// 浠水只有外销
transport.setType(OrderTypeEnum.TEMP.getTypeid());
Transport finalTransport = transport;
ret = Db.tx(new IAtom() {
@ -644,9 +637,9 @@ public class TransportSyncService {
// 从预付费车辆中找
// 单独用 pt 对象存储,是后面还要用是否有预付费,来判断订单类型
// 是预付则肯定是销售或者外销如果有物流公司id则肯定是销售否是外销
Record pt = PrepayTruckService.me.checkValidLicense(supermarket_id, truck_license);
OrderclusterTruck ot = OrderclusterTruckService.me.checkValidLicense(supermarket_id, truck_license);
if (pt == null && !AuthLicenseService.me.isAuthLicense(truck_license)) {
if (ot == null && !AuthLicenseService.me.isAuthLicense(truck_license)) {
return Result.failedstr("车牌【%s】未授权或者第一次入场", truck_license);
}
@ -664,10 +657,8 @@ public class TransportSyncService {
transport.setInWhich(which);
transport.setState(OrderStateEnum.ENTERED.getStateid()); // 2入场
// 入场的时候,就可以根据是否预付车辆,确定类型
if (pt != null) {
transport.setType(pt.get("trans_co_id") != null ? OrderTypeEnum.SALE.getTypeid() : OrderTypeEnum.TEMP.getTypeid());
}
// 浠水只有外销
transport.setType(OrderTypeEnum.TEMP.getTypeid());
boolean ret = Db.tx(new IAtom() {
@Override

View File

@ -38,6 +38,7 @@ public class AuthInterceptor implements Interceptor {
add("/prepay/consumption");
add("/prepay/flow");
add("/prepay/prepaydetail");
add("/prepaydetail/find");
add("/orderclustertruck/find");
add("/orderclustertruck/save");

View File

@ -33,7 +33,7 @@ public class OrderclusterTruckSyncService extends BaseSyncService {
return Result.failed("关联集团订单信息错误,没有关联客户信息");
} else if (sysuser.getEntityId() == null) {
return Result.failed("当前登录用户不是客户账户");
} else if (sysuser.getEntityId().equals(ordercluster.getCustomerId())) {
} else if (!sysuser.getEntityId().equals(ordercluster.getCustomerId())) {
log.error("登录用户 entity_id: %s 和集团订单 customer_id: %s 不一致", sysuser.getEntityId(), ordercluster.getCustomerId());
return Result.failed("操作失败");
}

View File

@ -1,5 +1,6 @@
package com.cowr.service.ssjygl.prepay.prepaydetail;
import com.cowr.common.enums.UserTypeEnum;
import com.cowr.common.validator.CustomerIdValidator;
import com.cowr.common.validator.StartAndEndTimeValidator;
import com.cowr.common.view.ExcelRender;
@ -103,12 +104,23 @@ public class PrepayDetailController extends Controller {
* prepay_detail
*/
public void find(){
Integer customer_id = getInt("customer_id");
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
// 是客户账户
if (tokenuser == null) {
renderJson(Result.noauth());
return;
} else if (tokenuser.getType() == UserTypeEnum.CUSTOMER.getTypeid()) {
customer_id = tokenuser.getEntityId();
}
String name = get("name");
String stm = get("stm");
String etm = get("etm");
Integer state = getInt("state");
PageParam pp = getBean(PageParam.class, "", true);
renderJson(Result.object(PrepayDetailService.me.find(pp, name, stm, etm, state)));
renderJson(Result.object(PrepayDetailService.me.find(pp, customer_id, name, stm, etm, state)));
}
/**